Skip to content

Commit 69675ea

Browse files
committed
validation: add CChainParams to ChainstateManager
1 parent a8098f2 commit 69675ea

File tree

5 files changed

+18
-4
lines changed

5 files changed

+18
-4
lines changed

src/bitcoin-chainstate.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ int main(int argc, char* argv[])
7070

7171

7272
// SETUP: Chainstate
73-
ChainstateManager chainman;
73+
ChainstateManager chainman{chainparams};
7474

7575
auto rv = node::LoadChainstate(false,
7676
std::ref(chainman),

src/init.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1424,7 +1424,7 @@ bool AppInitMain(NodeContext& node, interfaces::BlockAndHeaderTipInfo* tip_info)
14241424
for (bool fLoaded = false; !fLoaded && !ShutdownRequested();) {
14251425
node.mempool = std::make_unique<CTxMemPool>(node.fee_estimator.get(), mempool_check_ratio);
14261426

1427-
node.chainman = std::make_unique<ChainstateManager>();
1427+
node.chainman = std::make_unique<ChainstateManager>(chainparams);
14281428
ChainstateManager& chainman = *node.chainman;
14291429

14301430
const bool fReset = fReindex;

src/test/util/setup_common.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,8 @@ BasicTestingSetup::~BasicTestingSetup()
151151
ChainTestingSetup::ChainTestingSetup(const std::string& chainName, const std::vector<const char*>& extra_args)
152152
: BasicTestingSetup(chainName, extra_args)
153153
{
154+
const CChainParams& chainparams = Params();
155+
154156
// We have to run a scheduler thread to prevent ActivateBestChain
155157
// from blocking due to queue overrun.
156158
m_node.scheduler = std::make_unique<CScheduler>();
@@ -162,7 +164,7 @@ ChainTestingSetup::ChainTestingSetup(const std::string& chainName, const std::ve
162164

163165
m_cache_sizes = CalculateCacheSizes(m_args);
164166

165-
m_node.chainman = std::make_unique<ChainstateManager>();
167+
m_node.chainman = std::make_unique<ChainstateManager>(chainparams);
166168
m_node.chainman->m_blockman.m_block_tree_db = std::make_unique<CBlockTreeDB>(m_cache_sizes.block_tree_db, true);
167169

168170
// Start script-checking threads. Set g_parallel_script_checks to true so they are used.

src/test/validation_chainstate_tests.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@ BOOST_FIXTURE_TEST_SUITE(validation_chainstate_tests, TestingSetup)
2222
//!
2323
BOOST_AUTO_TEST_CASE(validation_chainstate_resize_caches)
2424
{
25-
ChainstateManager manager;
25+
const CChainParams& chainparams = Params();
26+
ChainstateManager manager(chainparams);
2627
WITH_LOCK(::cs_main, manager.m_blockman.m_block_tree_db = std::make_unique<CBlockTreeDB>(1 << 20, true));
2728
CTxMemPool mempool;
2829

src/validation.h

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
#include <arith_uint256.h>
1414
#include <attributes.h>
1515
#include <chain.h>
16+
#include <chainparams.h>
1617
#include <consensus/amount.h>
1718
#include <fs.h>
1819
#include <node/blockstorage.h>
@@ -51,6 +52,9 @@ struct AssumeutxoData;
5152
namespace node {
5253
class SnapshotMetadata;
5354
} // namespace node
55+
namespace Consensus {
56+
struct Params;
57+
} // namespace Consensus
5458

5559
/** Default for -minrelaytxfee, minimum relay fee for transactions */
5660
static const unsigned int DEFAULT_MIN_RELAY_TX_FEE = 1000;
@@ -834,6 +838,8 @@ class ChainstateManager
834838

835839
CBlockIndex* m_best_invalid GUARDED_BY(::cs_main){nullptr};
836840

841+
const CChainParams& m_chainparams;
842+
837843
//! Internal helper for ActivateSnapshot().
838844
[[nodiscard]] bool PopulateAndValidateSnapshot(
839845
CChainState& snapshot_chainstate,
@@ -852,6 +858,11 @@ class ChainstateManager
852858
friend CChainState;
853859

854860
public:
861+
explicit ChainstateManager(const CChainParams& chainparams) : m_chainparams{chainparams} { }
862+
863+
const CChainParams& GetParams() const { return m_chainparams; }
864+
const Consensus::Params& GetConsensus() const { return m_chainparams.GetConsensus(); }
865+
855866
std::thread m_load_block;
856867
//! A single BlockManager instance is shared across each constructed
857868
//! chainstate to avoid duplicating block metadata.

0 commit comments

Comments
 (0)