Skip to content

Commit c7a5c46

Browse files
committed
node/chainstate: Decouple from ArgsManager
...instead pass in only the necessary information
1 parent ae9121f commit c7a5c46

File tree

3 files changed

+12
-10
lines changed

3 files changed

+12
-10
lines changed

src/init.cpp

+3-2
Original file line numberDiff line numberDiff line change
@@ -1424,11 +1424,12 @@ bool AppInitMain(NodeContext& node, interfaces::BlockAndHeaderTipInfo* tip_info)
14241424
node,
14251425
fPruneMode,
14261426
chainparams,
1427-
args,
14281427
fReindexChainState,
14291428
nBlockTreeDBCache,
14301429
nCoinDBCache,
1431-
nCoinCacheUsage);
1430+
nCoinCacheUsage,
1431+
args.GetIntArg("-checkblocks", DEFAULT_CHECKBLOCKS),
1432+
args.GetIntArg("-checklevel", DEFAULT_CHECKLEVEL));
14321433
if (rv.has_value()) {
14331434
switch (rv.value()) {
14341435
case ChainstateLoadingError::ERROR_LOADING_BLOCK_DB:

src/node/chainstate.cpp

+6-5
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,12 @@ std::optional<ChainstateLoadingError> LoadChainstate(bool fReset,
1818
NodeContext& node,
1919
bool fPruneMode,
2020
const CChainParams& chainparams,
21-
const ArgsManager& args,
2221
bool fReindexChainState,
2322
int64_t nBlockTreeDBCache,
2423
int64_t nCoinDBCache,
25-
int64_t nCoinCacheUsage)
24+
int64_t nCoinCacheUsage,
25+
unsigned int check_blocks,
26+
unsigned int check_level)
2627
{
2728
auto is_coinsview_empty = [&](CChainState* chainstate) EXCLUSIVE_LOCKS_REQUIRED(::cs_main) {
2829
return fReset || fReindexChainState || chainstate->CoinsTip().GetBestBlock().IsNull();
@@ -140,7 +141,7 @@ std::optional<ChainstateLoadingError> LoadChainstate(bool fReset,
140141
for (CChainState* chainstate : chainman.GetAll()) {
141142
if (!is_coinsview_empty(chainstate)) {
142143
uiInterface.InitMessage(_("Verifying blocks…").translated);
143-
if (fHavePruned && args.GetIntArg("-checkblocks", DEFAULT_CHECKBLOCKS) > MIN_BLOCKS_TO_KEEP) {
144+
if (fHavePruned && check_blocks > MIN_BLOCKS_TO_KEEP) {
144145
LogPrintf("Prune: pruned datadir may not have more than %d blocks; only checking available blocks\n",
145146
MIN_BLOCKS_TO_KEEP);
146147
}
@@ -153,8 +154,8 @@ std::optional<ChainstateLoadingError> LoadChainstate(bool fReset,
153154

154155
if (!CVerifyDB().VerifyDB(
155156
*chainstate, chainparams, chainstate->CoinsDB(),
156-
args.GetIntArg("-checklevel", DEFAULT_CHECKLEVEL),
157-
args.GetIntArg("-checkblocks", DEFAULT_CHECKBLOCKS))) {
157+
check_level,
158+
check_blocks)) {
158159
return ChainstateLoadingError::ERROR_CORRUPTED_BLOCK_DB;
159160
}
160161
}

src/node/chainstate.h

+3-3
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
#include <cstdint> // for int64_t
99
#include <optional> // for std::optional
1010

11-
class ArgsManager;
1211
class CChainParams;
1312
class ChainstateManager;
1413
struct NodeContext;
@@ -59,10 +58,11 @@ std::optional<ChainstateLoadingError> LoadChainstate(bool fReset,
5958
NodeContext& node,
6059
bool fPruneMode,
6160
const CChainParams& chainparams,
62-
const ArgsManager& args,
6361
bool fReindexChainState,
6462
int64_t nBlockTreeDBCache,
6563
int64_t nCoinDBCache,
66-
int64_t nCoinCacheUsage);
64+
int64_t nCoinCacheUsage,
65+
unsigned int check_blocks,
66+
unsigned int check_level);
6767

6868
#endif // BITCOIN_NODE_CHAINSTATE_H

0 commit comments

Comments
 (0)