diff options
author | Ryan Ofsky <ryan@ofsky.org> | 2022-01-13 07:57:54 -0500 |
---|---|---|
committer | Ryan Ofsky <ryan@ofsky.org> | 2022-07-18 13:39:55 -0500 |
commit | 33b4d48cfcdf145f49cb2283ac3e2936a4e23fff (patch) | |
tree | 482ca2545df1e67a06a7d027cc2275f89ae0cb75 /src/index/base.cpp | |
parent | a0b5b4ae5a24536d333cbce2ea584f2d935c651f (diff) | |
download | bitcoin-33b4d48cfcdf145f49cb2283ac3e2936a4e23fff.tar.xz |
indexes, refactor: Pass Chain interface instead of CChainState class to indexes
Passing abstract Chain interface will let indexes run in separate
processes.
This commit does not change behavior in any way.
Diffstat (limited to 'src/index/base.cpp')
-rw-r--r-- | src/index/base.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/index/base.cpp b/src/index/base.cpp index 323547900d..26b3653f7b 100644 --- a/src/index/base.cpp +++ b/src/index/base.cpp @@ -4,7 +4,9 @@ #include <chainparams.h> #include <index/base.h> +#include <interfaces/chain.h> #include <node/blockstorage.h> +#include <node/context.h> #include <node/interface_ui.h> #include <shutdown.h> #include <tinyformat.h> @@ -49,6 +51,9 @@ void BaseIndex::DB::WriteBestBlock(CDBBatch& batch, const CBlockLocator& locator batch.Write(DB_BEST_BLOCK, locator); } +BaseIndex::BaseIndex(std::unique_ptr<interfaces::Chain> chain) + : m_chain{std::move(chain)} {} + BaseIndex::~BaseIndex() { Interrupt(); @@ -346,9 +351,11 @@ void BaseIndex::Interrupt() m_interrupt(); } -bool BaseIndex::Start(CChainState& active_chainstate) +bool BaseIndex::Start() { - m_chainstate = &active_chainstate; + // m_chainstate member gives indexing code access to node internals. It is + // removed in followup https://github.com/bitcoin/bitcoin/pull/24230 + m_chainstate = &m_chain->context()->chainman->ActiveChainstate(); // Need to register this ValidationInterface before running Init(), so that // callbacks are not missed if Init sets m_synced to true. RegisterValidationInterface(this); |