Bitcoin Core
31.1.0
P2P Digital Currency
Toggle main menu visibility
Loading...
Searching...
No Matches
src
node
blockmanager_args.cpp
Go to the documentation of this file.
1
// Copyright (c) 2023-present The Bitcoin Core developers
2
// Distributed under the MIT software license, see the accompanying
3
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
4
5
#include <
node/blockmanager_args.h
>
6
7
#include <
common/args.h
>
8
#include <
node/blockstorage.h
>
9
#include <
node/database_args.h
>
10
#include <
tinyformat.h
>
11
#include <
util/result.h
>
12
#include <
util/translation.h
>
13
#include <validation.h>
14
15
#include <cstdint>
16
17
namespace
node
{
18
util::Result<void>
ApplyArgsManOptions
(
const
ArgsManager
&
args
,
BlockManager::Options
& opts)
19
{
20
if
(
auto
value{
args
.GetBoolArg(
"-blocksxor"
)}) opts.
use_xor
= *value;
21
// block pruning; get the amount of disk space (in MiB) to allot for block & undo files
22
int64_t nPruneArg{
args
.GetIntArg(
"-prune"
, opts.
prune_target
)};
23
if
(nPruneArg < 0) {
24
return
util::Error
{
_
(
"Prune cannot be configured with a negative value."
)};
25
}
26
uint64_t nPruneTarget{uint64_t(nPruneArg) * 1024 * 1024};
27
if
(nPruneArg == 1) {
// manual pruning: -prune=1
28
nPruneTarget =
BlockManager::PRUNE_TARGET_MANUAL
;
29
}
else
if
(nPruneTarget) {
30
if
(nPruneTarget <
MIN_DISK_SPACE_FOR_BLOCK_FILES
) {
31
return
util::Error
{
strprintf
(
_
(
"Prune configured below the minimum of %d MiB. Please use a higher number."
),
MIN_DISK_SPACE_FOR_BLOCK_FILES
/ 1024 / 1024)};
32
}
33
}
34
opts.
prune_target
= nPruneTarget;
35
36
if
(
auto
value{
args
.GetBoolArg(
"-fastprune"
)}) opts.
fast_prune
= *value;
37
38
ReadDatabaseArgs
(
args
, opts.
block_tree_db_params
.
options
);
39
40
return
{};
41
}
42
}
// namespace node
args.h
args
ArgsManager & args
Definition
bitcoind.cpp:277
blockmanager_args.h
blockstorage.h
ArgsManager
Definition
args.h:103
node::BlockManager::PRUNE_TARGET_MANUAL
static constexpr auto PRUNE_TARGET_MANUAL
Definition
blockstorage.h:408
node::BlockManager::Options
kernel::BlockManagerOpts Options
Definition
blockstorage.h:316
util::Result
Definition
result.h:36
database_args.h
node
Definition
messages.h:21
node::ApplyArgsManOptions
util::Result< void > ApplyArgsManOptions(const ArgsManager &args, BlockManager::Options &opts)
Definition
blockmanager_args.cpp:18
node::ReadDatabaseArgs
void ReadDatabaseArgs(const ArgsManager &args, DBOptions &options)
Definition
database_args.cpp:11
result.h
DBParams::options
DBOptions options
Passed-through options.
Definition
dbwrapper.h:46
kernel::BlockManagerOpts::prune_target
uint64_t prune_target
Definition
blockmanager_opts.h:27
kernel::BlockManagerOpts::block_tree_db_params
DBParams block_tree_db_params
Definition
blockmanager_opts.h:31
kernel::BlockManagerOpts::fast_prune
bool fast_prune
Definition
blockmanager_opts.h:28
kernel::BlockManagerOpts::use_xor
bool use_xor
Definition
blockmanager_opts.h:26
util::Error
Definition
result.h:15
tinyformat.h
strprintf
#define strprintf
Format arguments and return the string or write to given std::ostream (see tinyformat::format doc for...
Definition
tinyformat.h:1172
translation.h
_
consteval auto _(util::TranslatedLiteral str)
Definition
translation.h:79
MIN_DISK_SPACE_FOR_BLOCK_FILES
static const uint64_t MIN_DISK_SPACE_FOR_BLOCK_FILES
Definition
validation.h:87
Generated on
for Bitcoin Core by
1.17.0