Skip to content

Commit 38e7043

Browse files
refactor: governance constification and deglobalization (#5572)
## Issue being fixed or feature implemented Some relatively simple refactoring; inspired by reviewing #5569; adds some constification and some deglobalization ## What was done? Partial deglobalization and constification ## How Has This Been Tested? Building ## Breaking Changes None ## Checklist: _Go over all the following points, and put an `x` in all the boxes that apply._ - [x] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have added or updated relevant unit/integration/functional/e2e tests - [ ] I have made corresponding changes to the documentation - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_
1 parent 13c1240 commit 38e7043

File tree

11 files changed

+61
-42
lines changed

11 files changed

+61
-42
lines changed

src/governance/classes.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,7 @@ std::vector<CSuperblock_sptr> CGovernanceTriggerManager::GetActiveTriggers()
209209

210210
// LOOK AT THESE OBJECTS AND COMPILE A VALID LIST OF TRIGGERS
211211
for (const auto& pair : mapTrigger) {
212-
const CGovernanceObject* pObj = governance->FindGovernanceObject(pair.first);
212+
const CGovernanceObject* pObj = governance->FindConstGovernanceObject(pair.first);
213213
if (pObj) {
214214
vecResults.push_back(pair.second);
215215
}

src/governance/governance.cpp

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -421,6 +421,16 @@ void CGovernanceManager::UpdateCachesAndClean()
421421
LogPrint(BCLog::GOBJECT, "CGovernanceManager::UpdateCachesAndClean -- %s\n", ToString());
422422
}
423423

424+
const CGovernanceObject* CGovernanceManager::FindConstGovernanceObject(const uint256& nHash) const
425+
{
426+
AssertLockHeld(cs);
427+
428+
auto it = mapObjects.find(nHash);
429+
if (it != mapObjects.end()) return &(it->second);
430+
431+
return nullptr;
432+
}
433+
424434
CGovernanceObject* CGovernanceManager::FindGovernanceObject(const uint256& nHash)
425435
{
426436
AssertLockHeld(cs);
@@ -1108,7 +1118,7 @@ void CGovernanceManager::CheckPostponedObjects(CConnman& connman)
11081118
}
11091119
}
11101120

1111-
void CGovernanceManager::RequestGovernanceObject(CNode* pfrom, const uint256& nHash, CConnman& connman, bool fUseFilter)
1121+
void CGovernanceManager::RequestGovernanceObject(CNode* pfrom, const uint256& nHash, CConnman& connman, bool fUseFilter) const
11121122
{
11131123
if (!pfrom) {
11141124
return;
@@ -1123,7 +1133,7 @@ void CGovernanceManager::RequestGovernanceObject(CNode* pfrom, const uint256& nH
11231133
size_t nVoteCount = 0;
11241134
if (fUseFilter) {
11251135
LOCK(cs);
1126-
const CGovernanceObject* pObj = FindGovernanceObject(nHash);
1136+
const CGovernanceObject* pObj = FindConstGovernanceObject(nHash);
11271137

11281138
if (pObj) {
11291139
filter = CBloomFilter(Params().GetConsensus().nGovernanceFilterElements, GOVERNANCE_FILTER_FP_RATE, GetRandInt(999999), BLOOM_UPDATE_ALL);
@@ -1139,13 +1149,13 @@ void CGovernanceManager::RequestGovernanceObject(CNode* pfrom, const uint256& nH
11391149
connman.PushMessage(pfrom, msgMaker.Make(NetMsgType::MNGOVERNANCESYNC, nHash, filter));
11401150
}
11411151

1142-
int CGovernanceManager::RequestGovernanceObjectVotes(CNode& peer, CConnman& connman)
1152+
int CGovernanceManager::RequestGovernanceObjectVotes(CNode& peer, CConnman& connman) const
11431153
{
11441154
std::array<CNode*, 1> nodeCopy{&peer};
11451155
return RequestGovernanceObjectVotes(nodeCopy, connman);
11461156
}
11471157

1148-
int CGovernanceManager::RequestGovernanceObjectVotes(Span<CNode*> vNodesCopy, CConnman& connman)
1158+
int CGovernanceManager::RequestGovernanceObjectVotes(Span<CNode*> vNodesCopy, CConnman& connman) const
11491159
{
11501160
static std::map<uint256, std::map<CService, int64_t> > mapAskedRecently;
11511161

src/governance/governance.h

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -248,6 +248,7 @@ class CGovernanceManager
248248

249249
void DoMaintenance(CConnman& connman);
250250

251+
const CGovernanceObject* FindConstGovernanceObject(const uint256& nHash) const EXCLUSIVE_LOCKS_REQUIRED(cs);
251252
CGovernanceObject* FindGovernanceObject(const uint256& nHash) EXCLUSIVE_LOCKS_REQUIRED(cs);
252253
CGovernanceObject* FindGovernanceObjectByDataHash(const uint256& nDataHash) EXCLUSIVE_LOCKS_REQUIRED(cs);
253254
void DeleteGovernanceObject(const uint256& nHash);
@@ -359,11 +360,11 @@ class CGovernanceManager
359360

360361
void InitOnLoad();
361362

362-
int RequestGovernanceObjectVotes(CNode& peer, CConnman& connman);
363-
int RequestGovernanceObjectVotes(Span<CNode*> vNodesCopy, CConnman& connman);
363+
int RequestGovernanceObjectVotes(CNode& peer, CConnman& connman) const;
364+
int RequestGovernanceObjectVotes(Span<CNode*> vNodesCopy, CConnman& connman) const;
364365

365366
private:
366-
void RequestGovernanceObject(CNode* pfrom, const uint256& nHash, CConnman& connman, bool fUseFilter = false);
367+
void RequestGovernanceObject(CNode* pfrom, const uint256& nHash, CConnman& connman, bool fUseFilter = false) const;
367368

368369
void AddInvalidVote(const CGovernanceVote& vote)
369370
{

src/init.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1694,15 +1694,16 @@ bool AppInitMain(const CoreContext& context, NodeContext& node, interfaces::Bloc
16941694
node.chainman = &g_chainman;
16951695
ChainstateManager& chainman = *Assert(node.chainman);
16961696

1697+
::governance = std::make_unique<CGovernanceManager>();
1698+
16971699
assert(!node.peerman);
16981700
node.peerman = PeerManager::make(chainparams, *node.connman, *node.addrman, node.banman.get(),
1699-
*node.scheduler, chainman, *node.mempool, node.llmq_ctx, ignores_incoming_txs);
1701+
*node.scheduler, chainman, *node.mempool, node.llmq_ctx, *::governance, ignores_incoming_txs);
17001702
RegisterValidationInterface(node.peerman.get());
17011703

1702-
::governance = std::make_unique<CGovernanceManager>();
17031704
assert(!::sporkManager);
17041705
::sporkManager = std::make_unique<CSporkManager>();
1705-
::masternodeSync = std::make_unique<CMasternodeSync>(*node.connman);
1706+
::masternodeSync = std::make_unique<CMasternodeSync>(*node.connman, *::governance);
17061707

17071708
std::vector<std::string> vSporkAddresses;
17081709
if (args.IsArgSet("-sporkaddr")) {

src/masternode/sync.cpp

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,11 @@
1616
class CMasternodeSync;
1717
std::unique_ptr<CMasternodeSync> masternodeSync;
1818

19-
CMasternodeSync::CMasternodeSync(CConnman& _connman) :
19+
CMasternodeSync::CMasternodeSync(CConnman& _connman, const CGovernanceManager& govman) :
2020
nTimeAssetSyncStarted(GetTime()),
2121
nTimeLastBumped(GetTime()),
22-
connman(_connman)
22+
connman(_connman),
23+
m_govman(govman)
2324
{
2425
}
2526

@@ -138,7 +139,7 @@ void CMasternodeSync::ProcessTick()
138139

139140
// gradually request the rest of the votes after sync finished
140141
if(IsSynced()) {
141-
governance->RequestGovernanceObjectVotes(vNodesCopy, connman);
142+
m_govman.RequestGovernanceObjectVotes(vNodesCopy, connman);
142143
connman.ReleaseNodeVector(vNodesCopy);
143144
return;
144145
}
@@ -262,7 +263,7 @@ void CMasternodeSync::ProcessTick()
262263
if(!netfulfilledman.HasFulfilledRequest(pnode->addr, "governance-sync")) {
263264
continue; // to early for this node
264265
}
265-
int nObjsLeftToAsk = governance->RequestGovernanceObjectVotes(*pnode, connman);
266+
int nObjsLeftToAsk = m_govman.RequestGovernanceObjectVotes(*pnode, connman);
266267
// check for data
267268
if(nObjsLeftToAsk == 0) {
268269
static int64_t nTimeNoObjectsLeft = 0;
@@ -275,7 +276,7 @@ void CMasternodeSync::ProcessTick()
275276
// make sure the condition below is checked only once per tick
276277
if(nLastTick == nTick) continue;
277278
if(GetTime() - nTimeNoObjectsLeft > MASTERNODE_SYNC_TIMEOUT_SECONDS &&
278-
governance->GetVoteCount() - nLastVotes < std::max(int(0.0001 * nLastVotes), MASTERNODE_SYNC_TICK_SECONDS)
279+
m_govman.GetVoteCount() - nLastVotes < std::max(int(0.0001 * nLastVotes), MASTERNODE_SYNC_TICK_SECONDS)
279280
) {
280281
// We already asked for all objects, waited for MASTERNODE_SYNC_TIMEOUT_SECONDS
281282
// after that and less then 0.01% or MASTERNODE_SYNC_TICK_SECONDS
@@ -289,15 +290,15 @@ void CMasternodeSync::ProcessTick()
289290
return;
290291
}
291292
nLastTick = nTick;
292-
nLastVotes = governance->GetVoteCount();
293+
nLastVotes = m_govman.GetVoteCount();
293294
}
294295
}
295296

296297
// looped through all nodes, release them
297298
connman.ReleaseNodeVector(vNodesCopy);
298299
}
299300

300-
void CMasternodeSync::SendGovernanceSyncRequest(CNode* pnode)
301+
void CMasternodeSync::SendGovernanceSyncRequest(CNode* pnode) const
301302
{
302303
CNetMsgMaker msgMaker(pnode->GetSendVersion());
303304

src/masternode/sync.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ class CBlockIndex;
1313
class CConnman;
1414
class CNode;
1515
class CDataStream;
16+
class CGovernanceManager;
1617

1718
static constexpr int MASTERNODE_SYNC_BLOCKCHAIN = 1;
1819
static constexpr int MASTERNODE_SYNC_GOVERNANCE = 4;
@@ -49,11 +50,12 @@ class CMasternodeSync
4950
std::atomic<int64_t> nTimeLastUpdateBlockTip{0};
5051

5152
CConnman& connman;
53+
const CGovernanceManager& m_govman;
5254

5355
public:
54-
explicit CMasternodeSync(CConnman& _connman);
56+
explicit CMasternodeSync(CConnman& _connman, const CGovernanceManager& govman);
5557

56-
void SendGovernanceSyncRequest(CNode* pnode);
58+
void SendGovernanceSyncRequest(CNode* pnode) const;
5759

5860
bool IsBlockchainSynced() const { return nCurrentAsset > MASTERNODE_SYNC_BLOCKCHAIN; }
5961
bool IsSynced() const { return nCurrentAsset == MASTERNODE_SYNC_FINISHED; }

src/net_processing.cpp

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -220,7 +220,7 @@ class PeerManagerImpl final : public PeerManager
220220
public:
221221
PeerManagerImpl(const CChainParams& chainparams, CConnman& connman, CAddrMan& addrman,
222222
BanMan* banman, CScheduler &scheduler, ChainstateManager& chainman,
223-
CTxMemPool& pool, const std::unique_ptr<LLMQContext>& llmq_ctx, bool ignore_incoming_txs);
223+
CTxMemPool& pool, const std::unique_ptr<LLMQContext>& llmq_ctx, CGovernanceManager& govman, bool ignore_incoming_txs);
224224

225225
/** Overridden from CValidationInterface. */
226226
void BlockConnected(const std::shared_ptr<const CBlock>& pblock, const CBlockIndex* pindexConnected) override;
@@ -310,6 +310,7 @@ class PeerManagerImpl final : public PeerManager
310310
ChainstateManager& m_chainman;
311311
CTxMemPool& m_mempool;
312312
const std::unique_ptr<LLMQContext>& m_llmq_ctx;
313+
CGovernanceManager& m_govman;
313314

314315
/** The height of the best chain */
315316
std::atomic<int> m_best_height{-1};
@@ -1542,21 +1543,22 @@ bool PeerManagerImpl::BlockRequestAllowed(const CBlockIndex* pindex, const Conse
15421543

15431544
std::unique_ptr<PeerManager> PeerManager::make(const CChainParams& chainparams, CConnman& connman, CAddrMan& addrman, BanMan* banman,
15441545
CScheduler &scheduler, ChainstateManager& chainman, CTxMemPool& pool,
1545-
const std::unique_ptr<LLMQContext>& llmq_ctx, bool ignore_incoming_txs)
1546+
const std::unique_ptr<LLMQContext>& llmq_ctx, CGovernanceManager& govman, bool ignore_incoming_txs)
15461547
{
1547-
return std::make_unique<PeerManagerImpl>(chainparams, connman, addrman, banman, scheduler, chainman, pool, llmq_ctx, ignore_incoming_txs);
1548+
return std::make_unique<PeerManagerImpl>(chainparams, connman, addrman, banman, scheduler, chainman, pool, llmq_ctx, govman, ignore_incoming_txs);
15481549
}
15491550

15501551
PeerManagerImpl::PeerManagerImpl(const CChainParams& chainparams, CConnman& connman, CAddrMan& addrman, BanMan* banman,
15511552
CScheduler &scheduler, ChainstateManager& chainman, CTxMemPool& pool,
1552-
const std::unique_ptr<LLMQContext>& llmq_ctx, bool ignore_incoming_txs)
1553+
const std::unique_ptr<LLMQContext>& llmq_ctx, CGovernanceManager& govman, bool ignore_incoming_txs)
15531554
: m_chainparams(chainparams),
15541555
m_connman(connman),
15551556
m_addrman(addrman),
15561557
m_banman(banman),
15571558
m_chainman(chainman),
15581559
m_mempool(pool),
15591560
m_llmq_ctx(llmq_ctx),
1561+
m_govman(govman),
15601562
m_stale_tip_check_time(0),
15611563
m_ignore_incoming_txs(ignore_incoming_txs)
15621564
{
@@ -1858,7 +1860,7 @@ bool PeerManagerImpl::AlreadyHave(const CInv& inv)
18581860

18591861
case MSG_GOVERNANCE_OBJECT:
18601862
case MSG_GOVERNANCE_OBJECT_VOTE:
1861-
return ! governance->ConfirmInventoryRequest(inv);
1863+
return !m_govman.ConfirmInventoryRequest(inv);
18621864

18631865
case MSG_QUORUM_FINAL_COMMITMENT:
18641866
return m_llmq_ctx->quorum_block_processor->HasMineableCommitment(inv.hash);
@@ -2166,9 +2168,9 @@ void PeerManagerImpl::ProcessGetData(CNode& pfrom, Peer& peer, const std::atomic
21662168
if (!push && inv.type == MSG_GOVERNANCE_OBJECT) {
21672169
CDataStream ss(SER_NETWORK, pfrom.GetSendVersion());
21682170
bool topush = false;
2169-
if (governance->HaveObjectForHash(inv.hash)) {
2171+
if (m_govman.HaveObjectForHash(inv.hash)) {
21702172
ss.reserve(1000);
2171-
if (governance->SerializeObjectForHash(inv.hash, ss)) {
2173+
if (m_govman.SerializeObjectForHash(inv.hash, ss)) {
21722174
topush = true;
21732175
}
21742176
}
@@ -2181,9 +2183,9 @@ void PeerManagerImpl::ProcessGetData(CNode& pfrom, Peer& peer, const std::atomic
21812183
if (!push && inv.type == MSG_GOVERNANCE_OBJECT_VOTE) {
21822184
CDataStream ss(SER_NETWORK, pfrom.GetSendVersion());
21832185
bool topush = false;
2184-
if (governance->HaveVoteForHash(inv.hash)) {
2186+
if (m_govman.HaveVoteForHash(inv.hash)) {
21852187
ss.reserve(1000);
2186-
if (governance->SerializeVoteForHash(inv.hash, ss)) {
2188+
if (m_govman.SerializeVoteForHash(inv.hash, ss)) {
21872189
topush = true;
21882190
}
21892191
}
@@ -4319,7 +4321,7 @@ void PeerManagerImpl::ProcessMessage(
43194321
coinJoinServer->ProcessMessage(pfrom, *this, msg_type, vRecv);
43204322
sporkManager->ProcessMessage(pfrom, *this, m_connman, msg_type, vRecv);
43214323
::masternodeSync->ProcessMessage(pfrom, msg_type, vRecv);
4322-
governance->ProcessMessage(pfrom, *this, m_connman, msg_type, vRecv);
4324+
m_govman.ProcessMessage(pfrom, *this, m_connman, msg_type, vRecv);
43234325
CMNAuth::ProcessMessage(pfrom, *this, m_connman, msg_type, vRecv);
43244326
m_llmq_ctx->quorum_block_processor->ProcessMessage(pfrom, msg_type, vRecv);
43254327
m_llmq_ctx->qdkgsman->ProcessMessage(pfrom, *m_llmq_ctx->qman, msg_type, vRecv);

src/net_processing.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ class CAddrMan;
1616
class CTxMemPool;
1717
class ChainstateManager;
1818
struct LLMQContext;
19+
class CGovernanceManager;
1920

2021
extern RecursiveMutex cs_main;
2122
extern RecursiveMutex g_cs_orphans;
@@ -39,7 +40,7 @@ class PeerManager : public CValidationInterface, public NetEventsInterface
3940
public:
4041
static std::unique_ptr<PeerManager> make(const CChainParams& chainparams, CConnman& connman, CAddrMan& addrman,
4142
BanMan* banman, CScheduler &scheduler, ChainstateManager& chainman,
42-
CTxMemPool& pool, const std::unique_ptr<LLMQContext>& llmq_ctx, bool ignore_incoming_txs);
43+
CTxMemPool& pool, const std::unique_ptr<LLMQContext>& llmq_ctx, CGovernanceManager& govman, bool ignore_incoming_txs);
4344
virtual ~PeerManager() { }
4445

4546
/** Get statistics from node state */

src/rpc/governance.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -398,7 +398,7 @@ static UniValue VoteWithMasternodes(const JSONRPCRequest& request, const std::ma
398398
const NodeContext& node = EnsureAnyNodeContext(request.context);
399399
{
400400
LOCK(governance->cs);
401-
CGovernanceObject *pGovObj = governance->FindGovernanceObject(hash);
401+
const CGovernanceObject *pGovObj = governance->FindConstGovernanceObject(hash);
402402
if (!pGovObj) {
403403
throw JSONRPCError(RPC_INVALID_PARAMETER, "Governance object not found");
404404
}
@@ -731,7 +731,7 @@ static UniValue gobject_get(const JSONRPCRequest& request)
731731

732732
// FIND THE GOVERNANCE OBJECT THE USER IS LOOKING FOR
733733
LOCK2(cs_main, governance->cs);
734-
CGovernanceObject* pGovObj = governance->FindGovernanceObject(hash);
734+
const CGovernanceObject* pGovObj = governance->FindConstGovernanceObject(hash);
735735

736736
if (pGovObj == nullptr) {
737737
throw JSONRPCError(RPC_INVALID_PARAMETER, "Unknown governance object");
@@ -829,7 +829,7 @@ static UniValue gobject_getcurrentvotes(const JSONRPCRequest& request)
829829

830830
LOCK(governance->cs);
831831

832-
CGovernanceObject* pGovObj = governance->FindGovernanceObject(hash);
832+
const CGovernanceObject* pGovObj = governance->FindConstGovernanceObject(hash);
833833

834834
if (pGovObj == nullptr) {
835835
throw JSONRPCError(RPC_INVALID_PARAMETER, "Unknown governance-hash");
@@ -966,7 +966,7 @@ static UniValue voteraw(const JSONRPCRequest& request)
966966

967967
GovernanceObject govObjType = WITH_LOCK(governance->cs, return [&](){
968968
AssertLockHeld(governance->cs);
969-
CGovernanceObject *pGovObj = governance->FindGovernanceObject(hashGovObj);
969+
const CGovernanceObject *pGovObj = governance->FindConstGovernanceObject(hashGovObj);
970970
if (!pGovObj) {
971971
throw JSONRPCError(RPC_INVALID_PARAMETER, "Governance object not found");
972972
}

src/test/denialofservice_tests.cpp

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
#include <util/system.h>
1919
#include <util/time.h>
2020
#include <validation.h>
21+
#include <governance/governance.h>
2122

2223
#include <test/util/setup_common.h>
2324

@@ -80,7 +81,7 @@ BOOST_AUTO_TEST_CASE(outbound_slow_chain_eviction)
8081
const CChainParams& chainparams = Params();
8182
auto connman = std::make_unique<CConnman>(0x1337, 0x1337, *m_node.addrman);
8283
auto peerLogic = PeerManager::make(chainparams, *connman, *m_node.addrman, nullptr, *m_node.scheduler,
83-
*m_node.chainman, *m_node.mempool, m_node.llmq_ctx, false);
84+
*m_node.chainman, *m_node.mempool, m_node.llmq_ctx, *governance, false);
8485

8586
// Mock an outbound peer
8687
CAddress addr1(ip(0xa0b0c001), NODE_NONE);
@@ -152,7 +153,7 @@ BOOST_AUTO_TEST_CASE(stale_tip_peer_management)
152153
const CChainParams& chainparams = Params();
153154
auto connman = std::make_unique<CConnmanTest>(0x1337, 0x1337, *m_node.addrman);
154155
auto peerLogic = PeerManager::make(chainparams, *connman, *m_node.addrman, nullptr, *m_node.scheduler,
155-
*m_node.chainman, *m_node.mempool, m_node.llmq_ctx, false);
156+
*m_node.chainman, *m_node.mempool, m_node.llmq_ctx, *governance, false);
156157

157158
const Consensus::Params& consensusParams = Params().GetConsensus();
158159
constexpr int max_outbound_full_relay = MAX_OUTBOUND_FULL_RELAY_CONNECTIONS;
@@ -226,7 +227,7 @@ BOOST_AUTO_TEST_CASE(DoS_banning)
226227
auto banman = std::make_unique<BanMan>(GetDataDir() / "banlist.dat", nullptr, DEFAULT_MISBEHAVING_BANTIME);
227228
auto connman = std::make_unique<CConnman>(0x1337, 0x1337, *m_node.addrman);
228229
auto peerLogic = PeerManager::make(chainparams, *connman, *m_node.addrman, banman.get(), *m_node.scheduler,
229-
*m_node.chainman, *m_node.mempool, m_node.llmq_ctx, false);
230+
*m_node.chainman, *m_node.mempool, m_node.llmq_ctx, *governance, false);
230231

231232
banman->ClearBanned();
232233
CAddress addr1(ip(0xa0b0c001), NODE_NONE);
@@ -273,7 +274,7 @@ BOOST_AUTO_TEST_CASE(DoS_banscore)
273274
auto banman = std::make_unique<BanMan>(GetDataDir() / "banlist.dat", nullptr, DEFAULT_MISBEHAVING_BANTIME);
274275
auto connman = std::make_unique<CConnman>(0x1337, 0x1337, *m_node.addrman);
275276
auto peerLogic = PeerManager::make(chainparams, *connman, *m_node.addrman, banman.get(), *m_node.scheduler,
276-
*m_node.chainman, *m_node.mempool, m_node.llmq_ctx, false);
277+
*m_node.chainman, *m_node.mempool, m_node.llmq_ctx, *governance, false);
277278

278279
banman->ClearBanned();
279280
gArgs.ForceSetArg("-banscore", "111"); // because 11 is my favorite number
@@ -318,7 +319,7 @@ BOOST_AUTO_TEST_CASE(DoS_bantime)
318319
auto banman = std::make_unique<BanMan>(GetDataDir() / "banlist.dat", nullptr, DEFAULT_MISBEHAVING_BANTIME);
319320
auto connman = std::make_unique<CConnman>(0x1337, 0x1337, *m_node.addrman);
320321
auto peerLogic = PeerManager::make(chainparams, *connman, *m_node.addrman, banman.get(), *m_node.scheduler,
321-
*m_node.chainman, *m_node.mempool, m_node.llmq_ctx, false);
322+
*m_node.chainman, *m_node.mempool, m_node.llmq_ctx, *governance, false);
322323

323324
banman->ClearBanned();
324325
int64_t nStartTime = GetTime();

0 commit comments

Comments
 (0)