@@ -1171,8 +1171,8 @@ static bool BlockRequestAllowed(const CBlockIndex* pindex, const Consensus::Para
11711171 (GetBlockProofEquivalentTime (*pindexBestHeader, *pindex, *pindexBestHeader, consensusParams) < STALE_RELAY_AGE_LIMIT);
11721172}
11731173
1174- PeerLogicValidation::PeerLogicValidation (CConnman* connmanIn, BanMan* banman, CScheduler &scheduler, CTxMemPool& pool, bool enable_bip61)
1175- : connman(connmanIn), m_banman(banman), m_mempool(pool), m_stale_tip_check_time(0 ), m_enable_bip61(enable_bip61) {
1174+ PeerLogicValidation::PeerLogicValidation (CConnman* connmanIn, BanMan* banman, CScheduler &scheduler, ChainstateManager& chainman, CTxMemPool& pool, bool enable_bip61)
1175+ : connman(connmanIn), m_banman(banman), m_chainman(chainman), m_mempool(pool), m_stale_tip_check_time(0 ), m_enable_bip61(enable_bip61) {
11761176 // Initialize global variables that cannot be constructed at startup.
11771177 recentRejects.reset (new CRollingBloomFilter (120000 , 0.000001 ));
11781178
@@ -1873,7 +1873,7 @@ inline void static SendBlockTransactions(const CBlock& block, const BlockTransac
18731873 connman->PushMessage (pfrom, msgMaker.Make (NetMsgType::BLOCKTXN, resp));
18741874}
18751875
1876- bool static ProcessHeadersMessage (CNode *pfrom, CConnman *connman, CTxMemPool& mempool, const std::vector<CBlockHeader>& headers, const CChainParams& chainparams, bool punish_duplicate_invalid)
1876+ bool static ProcessHeadersMessage (CNode *pfrom, CConnman *connman, ChainstateManager& chainman, CTxMemPool& mempool, const std::vector<CBlockHeader>& headers, const CChainParams& chainparams, bool punish_duplicate_invalid)
18771877{
18781878 const CNetMsgMaker msgMaker (pfrom->GetSendVersion ());
18791879 size_t nCount = headers.size ();
@@ -1936,7 +1936,7 @@ bool static ProcessHeadersMessage(CNode *pfrom, CConnman *connman, CTxMemPool& m
19361936
19371937 CValidationState state;
19381938 CBlockHeader first_invalid_header;
1939- if (!ProcessNewBlockHeaders (headers, state, chainparams, &pindexLast, &first_invalid_header)) {
1939+ if (!chainman. ProcessNewBlockHeaders (headers, state, chainparams, &pindexLast, &first_invalid_header)) {
19401940 int nDoS;
19411941 if (state.IsInvalid (nDoS)) {
19421942 LOCK (cs_main);
@@ -2437,7 +2437,7 @@ std::pair<bool /*ret*/, bool /*do_return*/> static ValidateDSTX(CCoinJoinBroadca
24372437 return {true , false };
24382438}
24392439
2440- bool ProcessMessage (CNode* pfrom, const std::string& msg_type, CDataStream& vRecv, int64_t nTimeReceived, const CChainParams& chainparams, CTxMemPool& mempool, CConnman* connman, BanMan* banman, const std::atomic<bool >& interruptMsgProc, bool enable_bip61)
2440+ bool ProcessMessage (CNode* pfrom, const std::string& msg_type, CDataStream& vRecv, int64_t nTimeReceived, const CChainParams& chainparams, ChainstateManager& chainman, CTxMemPool& mempool, CConnman* connman, BanMan* banman, const std::atomic<bool >& interruptMsgProc, bool enable_bip61)
24412441{
24422442 LogPrint (BCLog::NET, " received: %s (%u bytes) peer=%d\n " , SanitizeString (msg_type), vRecv.size (), pfrom->GetId ());
24432443 statsClient.inc (" message.received." + SanitizeString (msg_type), 1 .0f );
@@ -3391,7 +3391,7 @@ bool ProcessMessage(CNode* pfrom, const std::string& msg_type, CDataStream& vRec
33913391
33923392 const CBlockIndex *pindex = nullptr ;
33933393 CValidationState state;
3394- if (!ProcessNewBlockHeaders ({cmpctblock.header }, state, chainparams, &pindex)) {
3394+ if (!chainman. ProcessNewBlockHeaders ({cmpctblock.header }, state, chainparams, &pindex)) {
33953395 int nDoS;
33963396 if (state.IsInvalid (nDoS)) {
33973397 if (nDoS > 0 ) {
@@ -3535,15 +3535,15 @@ bool ProcessMessage(CNode* pfrom, const std::string& msg_type, CDataStream& vRec
35353535 } // cs_main
35363536
35373537 if (fProcessBLOCKTXN )
3538- return ProcessMessage (pfrom, NetMsgType::BLOCKTXN, blockTxnMsg, nTimeReceived, chainparams, mempool, connman, banman, interruptMsgProc, enable_bip61);
3538+ return ProcessMessage (pfrom, NetMsgType::BLOCKTXN, blockTxnMsg, nTimeReceived, chainparams, chainman, mempool, connman, banman, interruptMsgProc, enable_bip61);
35393539
35403540 if (fRevertToHeaderProcessing ) {
35413541 // Headers received from HB compact block peers are permitted to be
35423542 // relayed before full validation (see BIP 152), so we don't want to disconnect
35433543 // the peer if the header turns out to be for an invalid block.
35443544 // Note that if a peer tries to build on an invalid chain, that
35453545 // will be detected and the peer will be banned.
3546- return ProcessHeadersMessage (pfrom, connman, mempool, {cmpctblock.header }, chainparams, /* punish_duplicate_invalid=*/ false );
3546+ return ProcessHeadersMessage (pfrom, connman, chainman, mempool, {cmpctblock.header }, chainparams, /* punish_duplicate_invalid=*/ false );
35473547 }
35483548
35493549 if (fBlockReconstructed ) {
@@ -3563,7 +3563,7 @@ bool ProcessMessage(CNode* pfrom, const std::string& msg_type, CDataStream& vRec
35633563 // we have a chain with at least nMinimumChainWork), and we ignore
35643564 // compact blocks with less work than our tip, it is safe to treat
35653565 // reconstructed compact blocks as having been requested.
3566- ProcessNewBlock (chainparams, pblock, /* fForceProcessing=*/ true , &fNewBlock );
3566+ chainman. ProcessNewBlock (chainparams, pblock, /* fForceProcessing=*/ true , &fNewBlock );
35673567 if (fNewBlock ) {
35683568 pfrom->nLastBlockTime = GetTime ();
35693569 } else {
@@ -3652,7 +3652,7 @@ bool ProcessMessage(CNode* pfrom, const std::string& msg_type, CDataStream& vRec
36523652 // disk-space attacks), but this should be safe due to the
36533653 // protections in the compact block handler -- see related comment
36543654 // in compact block optimistic reconstruction handling.
3655- ProcessNewBlock (chainparams, pblock, /* fForceProcessing=*/ true , &fNewBlock );
3655+ chainman. ProcessNewBlock (chainparams, pblock, /* fForceProcessing=*/ true , &fNewBlock );
36563656 if (fNewBlock ) {
36573657 pfrom->nLastBlockTime = GetTime ();
36583658 } else {
@@ -3701,7 +3701,7 @@ bool ProcessMessage(CNode* pfrom, const std::string& msg_type, CDataStream& vRec
37013701 // disconnect the peer if it is using one of our outbound connection
37023702 // slots.
37033703 bool should_punish = !pfrom->fInbound && !pfrom->m_manual_connection ;
3704- return ProcessHeadersMessage (pfrom, connman, mempool, headers, chainparams, should_punish);
3704+ return ProcessHeadersMessage (pfrom, connman, chainman, mempool, headers, chainparams, should_punish);
37053705 }
37063706
37073707 if (msg_type == NetMsgType::BLOCK)
@@ -3729,7 +3729,7 @@ bool ProcessMessage(CNode* pfrom, const std::string& msg_type, CDataStream& vRec
37293729 mapBlockSource.emplace (hash, std::make_pair (pfrom->GetId (), true ));
37303730 }
37313731 bool fNewBlock = false ;
3732- ProcessNewBlock (chainparams, pblock, forceProcessing, &fNewBlock );
3732+ chainman. ProcessNewBlock (chainparams, pblock, forceProcessing, &fNewBlock );
37333733 if (fNewBlock ) {
37343734 pfrom->nLastBlockTime = GetTime ();
37353735 } else {
@@ -4163,7 +4163,7 @@ bool PeerLogicValidation::ProcessMessages(CNode* pfrom, std::atomic<bool>& inter
41634163 bool fRet = false ;
41644164 try
41654165 {
4166- fRet = ProcessMessage (pfrom, msg_type, vRecv, msg.m_time , chainparams, m_mempool, connman, m_banman, interruptMsgProc, m_enable_bip61);
4166+ fRet = ProcessMessage (pfrom, msg_type, vRecv, msg.m_time , chainparams, m_chainman, m_mempool, connman, m_banman, interruptMsgProc, m_enable_bip61);
41674167 if (interruptMsgProc)
41684168 return false ;
41694169 if (!pfrom->vRecvGetData .empty ())
0 commit comments