@@ -1153,9 +1153,10 @@ static bool BlockRequestAllowed(const CBlockIndex* pindex, const Consensus::Para
1153
1153
(GetBlockProofEquivalentTime (*pindexBestHeader, *pindex, *pindexBestHeader, consensusParams) < STALE_RELAY_AGE_LIMIT);
1154
1154
}
1155
1155
1156
- PeerLogicValidation::PeerLogicValidation (CConnman* connmanIn, BanMan* banman, CScheduler& scheduler, CTxMemPool& pool)
1156
+ PeerLogicValidation::PeerLogicValidation (CConnman* connmanIn, BanMan* banman, CScheduler& scheduler, ChainstateManager& chainman, CTxMemPool& pool)
1157
1157
: connman(connmanIn),
1158
1158
m_banman(banman),
1159
+ m_chainman(chainman),
1159
1160
m_mempool(pool),
1160
1161
m_stale_tip_check_time(0 )
1161
1162
{
@@ -1738,7 +1739,7 @@ inline void static SendBlockTransactions(const CBlock& block, const BlockTransac
1738
1739
connman->PushMessage (pfrom, msgMaker.Make (nSendFlags, NetMsgType::BLOCKTXN, resp));
1739
1740
}
1740
1741
1741
- bool static ProcessHeadersMessage (CNode* pfrom, CConnman* connman, CTxMemPool& mempool, const std::vector<CBlockHeader>& headers, const CChainParams& chainparams, bool via_compact_block)
1742
+ bool static ProcessHeadersMessage (CNode* pfrom, CConnman* connman, ChainstateManager& chainman, CTxMemPool& mempool, const std::vector<CBlockHeader>& headers, const CChainParams& chainparams, bool via_compact_block)
1742
1743
{
1743
1744
const CNetMsgMaker msgMaker (pfrom->GetSendVersion ());
1744
1745
size_t nCount = headers.size ();
@@ -1798,7 +1799,7 @@ bool static ProcessHeadersMessage(CNode* pfrom, CConnman* connman, CTxMemPool& m
1798
1799
}
1799
1800
1800
1801
BlockValidationState state;
1801
- if (!ProcessNewBlockHeaders (headers, state, chainparams, &pindexLast)) {
1802
+ if (!chainman. ProcessNewBlockHeaders (headers, state, chainparams, &pindexLast)) {
1802
1803
if (state.IsInvalid ()) {
1803
1804
MaybePunishNodeForBlock (pfrom->GetId (), state, via_compact_block, " invalid header received" );
1804
1805
return false ;
@@ -2081,7 +2082,7 @@ static void ProcessGetCFCheckPt(CNode* pfrom, CDataStream& vRecv, const CChainPa
2081
2082
connman->PushMessage (pfrom, std::move (msg));
2082
2083
}
2083
2084
2084
- 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)
2085
+ 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)
2085
2086
{
2086
2087
LogPrint (BCLog::NET, " received: %s (%u bytes) peer=%d\n " , SanitizeString (msg_type), vRecv.size (), pfrom->GetId ());
2087
2088
if (gArgs .IsArgSet (" -dropmessagestest" ) && GetRand (gArgs .GetArg (" -dropmessagestest" , 0 )) == 0 )
@@ -2848,7 +2849,7 @@ bool ProcessMessage(CNode* pfrom, const std::string& msg_type, CDataStream& vRec
2848
2849
2849
2850
const CBlockIndex *pindex = nullptr ;
2850
2851
BlockValidationState state;
2851
- if (!ProcessNewBlockHeaders ({cmpctblock.header }, state, chainparams, &pindex)) {
2852
+ if (!chainman. ProcessNewBlockHeaders ({cmpctblock.header }, state, chainparams, &pindex)) {
2852
2853
if (state.IsInvalid ()) {
2853
2854
MaybePunishNodeForBlock (pfrom->GetId (), state, /* via_compact_block*/ true , " invalid header via cmpctblock" );
2854
2855
return true ;
@@ -2992,15 +2993,15 @@ bool ProcessMessage(CNode* pfrom, const std::string& msg_type, CDataStream& vRec
2992
2993
} // cs_main
2993
2994
2994
2995
if (fProcessBLOCKTXN )
2995
- return ProcessMessage (pfrom, NetMsgType::BLOCKTXN, blockTxnMsg, nTimeReceived, chainparams, mempool, connman, banman, interruptMsgProc);
2996
+ return ProcessMessage (pfrom, NetMsgType::BLOCKTXN, blockTxnMsg, nTimeReceived, chainparams, chainman, mempool, connman, banman, interruptMsgProc);
2996
2997
2997
2998
if (fRevertToHeaderProcessing ) {
2998
2999
// Headers received from HB compact block peers are permitted to be
2999
3000
// relayed before full validation (see BIP 152), so we don't want to disconnect
3000
3001
// the peer if the header turns out to be for an invalid block.
3001
3002
// Note that if a peer tries to build on an invalid chain, that
3002
3003
// will be detected and the peer will be banned.
3003
- return ProcessHeadersMessage (pfrom, connman, mempool, {cmpctblock.header }, chainparams, /* via_compact_block=*/ true );
3004
+ return ProcessHeadersMessage (pfrom, connman, chainman, mempool, {cmpctblock.header }, chainparams, /* via_compact_block=*/ true );
3004
3005
}
3005
3006
3006
3007
if (fBlockReconstructed ) {
@@ -3020,7 +3021,7 @@ bool ProcessMessage(CNode* pfrom, const std::string& msg_type, CDataStream& vRec
3020
3021
// we have a chain with at least nMinimumChainWork), and we ignore
3021
3022
// compact blocks with less work than our tip, it is safe to treat
3022
3023
// reconstructed compact blocks as having been requested.
3023
- ProcessNewBlock (chainparams, pblock, /* fForceProcessing=*/ true , &fNewBlock );
3024
+ chainman. ProcessNewBlock (chainparams, pblock, /* fForceProcessing=*/ true , &fNewBlock );
3024
3025
if (fNewBlock ) {
3025
3026
pfrom->nLastBlockTime = GetTime ();
3026
3027
} else {
@@ -3110,7 +3111,7 @@ bool ProcessMessage(CNode* pfrom, const std::string& msg_type, CDataStream& vRec
3110
3111
// disk-space attacks), but this should be safe due to the
3111
3112
// protections in the compact block handler -- see related comment
3112
3113
// in compact block optimistic reconstruction handling.
3113
- ProcessNewBlock (chainparams, pblock, /* fForceProcessing=*/ true , &fNewBlock );
3114
+ chainman. ProcessNewBlock (chainparams, pblock, /* fForceProcessing=*/ true , &fNewBlock );
3114
3115
if (fNewBlock ) {
3115
3116
pfrom->nLastBlockTime = GetTime ();
3116
3117
} else {
@@ -3144,7 +3145,7 @@ bool ProcessMessage(CNode* pfrom, const std::string& msg_type, CDataStream& vRec
3144
3145
ReadCompactSize (vRecv); // ignore tx count; assume it is 0.
3145
3146
}
3146
3147
3147
- return ProcessHeadersMessage (pfrom, connman, mempool, headers, chainparams, /* via_compact_block=*/ false );
3148
+ return ProcessHeadersMessage (pfrom, connman, chainman, mempool, headers, chainparams, /* via_compact_block=*/ false );
3148
3149
}
3149
3150
3150
3151
if (msg_type == NetMsgType::BLOCK)
@@ -3173,7 +3174,7 @@ bool ProcessMessage(CNode* pfrom, const std::string& msg_type, CDataStream& vRec
3173
3174
mapBlockSource.emplace (hash, std::make_pair (pfrom->GetId (), true ));
3174
3175
}
3175
3176
bool fNewBlock = false ;
3176
- ProcessNewBlock (chainparams, pblock, forceProcessing, &fNewBlock );
3177
+ chainman. ProcessNewBlock (chainparams, pblock, forceProcessing, &fNewBlock );
3177
3178
if (fNewBlock ) {
3178
3179
pfrom->nLastBlockTime = GetTime ();
3179
3180
} else {
@@ -3534,7 +3535,7 @@ bool PeerLogicValidation::ProcessMessages(CNode* pfrom, std::atomic<bool>& inter
3534
3535
bool fRet = false ;
3535
3536
try
3536
3537
{
3537
- fRet = ProcessMessage (pfrom, msg_type, vRecv, msg.m_time , chainparams, m_mempool, connman, m_banman, interruptMsgProc);
3538
+ fRet = ProcessMessage (pfrom, msg_type, vRecv, msg.m_time , chainparams, m_chainman, m_mempool, connman, m_banman, interruptMsgProc);
3538
3539
if (interruptMsgProc)
3539
3540
return false ;
3540
3541
if (!pfrom->vRecvGetData .empty ())
0 commit comments