1111#include < chainparams.h>
1212#include < consensus/validation.h>
1313#include < masternode/sync.h>
14- #include < net_processing.h>
1514#include < node/blockstorage.h>
1615#include < node/ui_interface.h>
1716#include < scheduler.h>
@@ -34,19 +33,18 @@ std::unique_ptr<CChainLocksHandler> chainLocksHandler;
3433
3534CChainLocksHandler::CChainLocksHandler (CChainState& chainstate, CQuorumManager& _qman, CSigningManager& _sigman,
3635 CSigSharesManager& _shareman, CSporkManager& sporkman, CTxMemPool& _mempool,
37- const CMasternodeSync& mn_sync, const std::unique_ptr<PeerManager>& peerman,
38- bool is_masternode) :
36+ const CMasternodeSync& mn_sync, bool is_masternode) :
3937 m_chainstate (chainstate),
4038 qman (_qman),
4139 sigman (_sigman),
4240 shareman (_shareman),
4341 spork_manager (sporkman),
4442 mempool (_mempool),
4543 m_mn_sync (mn_sync),
46- m_peerman (peerman),
4744 m_is_masternode{is_masternode},
4845 scheduler (std::make_unique<CScheduler>()),
49- scheduler_thread (std::make_unique<std::thread>(std::thread(util::TraceThread, " cl-schdlr" , [&] { scheduler->serviceQueue (); })))
46+ scheduler_thread (
47+ std::make_unique<std::thread>(std::thread(util::TraceThread, " cl-schdlr" , [&] { scheduler->serviceQueue (); })))
5048{
5149}
5250
@@ -98,31 +96,11 @@ CChainLockSig CChainLocksHandler::GetBestChainLock() const
9896 return bestChainLock;
9997}
10098
101- PeerMsgRet CChainLocksHandler::ProcessMessage (const CNode& pfrom, const std::string& msg_type, CDataStream& vRecv)
102- {
103- if (!AreChainLocksEnabled (spork_manager)) {
104- return {};
105- }
106-
107- if (msg_type == NetMsgType::CLSIG) {
108- CChainLockSig clsig;
109- vRecv >> clsig;
110-
111- return ProcessNewChainLock (pfrom.GetId (), clsig, ::SerializeHash (clsig));
112- }
113- return {};
114- }
115-
116- PeerMsgRet CChainLocksHandler::ProcessNewChainLock (const NodeId from, const llmq::CChainLockSig& clsig, const uint256& hash)
99+ MessageProcessingResult CChainLocksHandler::ProcessNewChainLock (const NodeId from, const llmq::CChainLockSig& clsig,
100+ const uint256& hash)
117101{
118102 CheckActiveState ();
119103
120- CInv clsigInv (MSG_CLSIG, hash);
121-
122- if (from != -1 ) {
123- WITH_LOCK (::cs_main, Assert (m_peerman)->EraseObjectRequest (from, clsigInv));
124- }
125-
126104 {
127105 LOCK (cs);
128106 if (!seenChainLocks.emplace (hash, GetTimeMillis ()).second ) {
@@ -138,7 +116,7 @@ PeerMsgRet CChainLocksHandler::ProcessNewChainLock(const NodeId from, const llmq
138116 if (const auto ret = VerifyChainLock (clsig); ret != VerifyRecSigStatus::Valid) {
139117 LogPrint (BCLog::CHAINLOCKS, " CChainLocksHandler::%s -- invalid CLSIG (%s), status=%d peer=%d\n " , __func__, clsig.ToString (), ToUnderlying (ret), from);
140118 if (from != -1 ) {
141- return tl::unexpected {10 };
119+ return MisbehavingError {10 };
142120 }
143121 return {};
144122 }
@@ -167,14 +145,12 @@ PeerMsgRet CChainLocksHandler::ProcessNewChainLock(const NodeId from, const llmq
167145 // Note: make sure to still relay clsig further.
168146 }
169147
170- // Note: do not hold cs while calling RelayInv
171- AssertLockNotHeld (cs);
172- Assert (m_peerman)->RelayInv (clsigInv);
148+ CInv clsigInv (MSG_CLSIG, hash);
173149
174150 if (pindex == nullptr ) {
175151 // we don't know the block/header for this CLSIG yet, so bail out for now
176152 // when the block or the header later comes in, we will enforce the correct chain
177- return {} ;
153+ return clsigInv ;
178154 }
179155
180156 scheduler->scheduleFromNow ([&]() {
@@ -184,7 +160,7 @@ PeerMsgRet CChainLocksHandler::ProcessNewChainLock(const NodeId from, const llmq
184160
185161 LogPrint (BCLog::CHAINLOCKS, " CChainLocksHandler::%s -- processed new CLSIG (%s), peer=%d\n " ,
186162 __func__, clsig.ToString (), from);
187- return {} ;
163+ return clsigInv ;
188164}
189165
190166void CChainLocksHandler::AcceptedBlockHeader (gsl::not_null<const CBlockIndex*> pindexNew)
@@ -547,8 +523,7 @@ MessageProcessingResult CChainLocksHandler::HandleNewRecoveredSig(const llmq::CR
547523
548524 clsig = CChainLockSig (lastSignedHeight, lastSignedMsgHash, recoveredSig.sig .Get ());
549525 }
550- ProcessNewChainLock (-1 , clsig, ::SerializeHash (clsig));
551- return {};
526+ return ProcessNewChainLock (-1 , clsig, ::SerializeHash (clsig));
552527}
553528
554529bool CChainLocksHandler::HasChainLock (int nHeight, const uint256& blockHash) const
0 commit comments