24
24
namespace llmq
25
25
{
26
26
27
- CDKGSessionHandler::CDKGSessionHandler (CBLSWorker& _blsWorker, CChainState& chainstate, CConnman& _connman,
28
- CDeterministicMNManager& dmnman, CDKGDebugManager& _dkgDebugManager,
29
- CDKGSessionManager& _dkgManager, CMasternodeMetaMan& mn_metaman,
30
- CQuorumBlockProcessor& _quorumBlockProcessor,
27
+ CDKGSessionHandler::CDKGSessionHandler (CBLSWorker& _blsWorker, CChainState& chainstate, CDeterministicMNManager& dmnman,
28
+ CDKGDebugManager& _dkgDebugManager, CDKGSessionManager& _dkgManager,
29
+ CMasternodeMetaMan& mn_metaman, CQuorumBlockProcessor& _quorumBlockProcessor,
31
30
const CActiveMasternodeManager* const mn_activeman, const CSporkManager& sporkman,
32
31
const Consensus::LLMQParams& _params, int _quorumIndex) :
33
32
blsWorker (_blsWorker),
34
33
m_chainstate (chainstate),
35
- connman (_connman),
36
34
m_dmnman (dmnman),
37
35
dkgDebugManager (_dkgDebugManager),
38
36
dkgManager (_dkgManager),
@@ -42,8 +40,8 @@ CDKGSessionHandler::CDKGSessionHandler(CBLSWorker& _blsWorker, CChainState& chai
42
40
m_sporkman (sporkman),
43
41
params (_params),
44
42
quorumIndex (_quorumIndex),
45
- curSession (std::make_unique<CDKGSession>(nullptr , _params, _blsWorker, _connman, dmnman, _dkgManager,
46
- _dkgDebugManager, m_mn_metaman, m_mn_activeman, sporkman)),
43
+ curSession (std::make_unique<CDKGSession>(nullptr , _params, _blsWorker, dmnman, _dkgManager, _dkgDebugManager ,
44
+ m_mn_metaman, m_mn_activeman, sporkman)),
47
45
pendingContributions (
48
46
(size_t )_params.size * 2 ,
49
47
MSG_QUORUM_CONTRIB), // we allow size*2 messages as we need to make sure we see bad behavior (double messages)
@@ -165,15 +163,15 @@ void CDKGSessionHandler::ProcessMessage(const CNode& pfrom, PeerManager& peerman
165
163
}
166
164
}
167
165
168
- void CDKGSessionHandler::StartThread (PeerManager& peerman)
166
+ void CDKGSessionHandler::StartThread (CConnman& connman, PeerManager& peerman)
169
167
{
170
168
if (phaseHandlerThread.joinable ()) {
171
169
throw std::runtime_error (" Tried to start an already started CDKGSessionHandler thread." );
172
170
}
173
171
174
172
m_thread_name = strprintf (" llmq-%d-%d" , ToUnderlying (params.type ), quorumIndex);
175
173
phaseHandlerThread = std::thread (&util::TraceThread, m_thread_name.c_str (),
176
- [this , &peerman] { PhaseHandlerThread (peerman); });
174
+ [this , &connman, & peerman] { PhaseHandlerThread (connman, peerman); });
177
175
}
178
176
179
177
void CDKGSessionHandler::StopThread ()
@@ -190,7 +188,7 @@ bool CDKGSessionHandler::InitNewQuorum(const CBlockIndex* pQuorumBaseBlockIndex)
190
188
return false ;
191
189
}
192
190
193
- curSession = std::make_unique<CDKGSession>(pQuorumBaseBlockIndex, params, blsWorker, connman, m_dmnman, dkgManager,
191
+ curSession = std::make_unique<CDKGSession>(pQuorumBaseBlockIndex, params, blsWorker, m_dmnman, dkgManager,
194
192
dkgDebugManager, m_mn_metaman, m_mn_activeman, m_sporkman);
195
193
196
194
if (!curSession->Init (m_mn_activeman->GetProTxHash (), quorumIndex)) {
@@ -528,7 +526,7 @@ bool ProcessPendingMessageBatch(CConnman& connman, CDKGSession& session, CDKGPen
528
526
return true ;
529
527
}
530
528
531
- void CDKGSessionHandler::HandleDKGRound (PeerManager& peerman)
529
+ void CDKGSessionHandler::HandleDKGRound (CConnman& connman, PeerManager& peerman)
532
530
{
533
531
WaitForNextPhase (std::nullopt, QuorumPhase::Initialized);
534
532
@@ -562,31 +560,33 @@ void CDKGSessionHandler::HandleDKGRound(PeerManager& peerman)
562
560
563
561
// Contribute
564
562
auto fContributeStart = [this , &peerman]() { curSession->Contribute (pendingContributions, peerman); };
565
- auto fContributeWait = [this , &peerman] {
563
+ auto fContributeWait = [this , &connman, & peerman] {
566
564
return ProcessPendingMessageBatch<CDKGContribution, MSG_QUORUM_CONTRIB>(connman, *curSession,
567
565
pendingContributions, peerman, 8 );
568
566
};
569
567
HandlePhase (QuorumPhase::Contribute, QuorumPhase::Complain, curQuorumHash, 0.05 , fContributeStart , fContributeWait );
570
568
571
569
// Complain
572
- auto fComplainStart = [this , &peerman]() { curSession->VerifyAndComplain (pendingComplaints, peerman); };
573
- auto fComplainWait = [this , &peerman] {
570
+ auto fComplainStart = [this , &connman, &peerman]() {
571
+ curSession->VerifyAndComplain (connman, pendingComplaints, peerman);
572
+ };
573
+ auto fComplainWait = [this , &connman, &peerman] {
574
574
return ProcessPendingMessageBatch<CDKGComplaint, MSG_QUORUM_COMPLAINT>(connman, *curSession, pendingComplaints,
575
575
peerman, 8 );
576
576
};
577
577
HandlePhase (QuorumPhase::Complain, QuorumPhase::Justify, curQuorumHash, 0.05 , fComplainStart , fComplainWait );
578
578
579
579
// Justify
580
580
auto fJustifyStart = [this , &peerman]() { curSession->VerifyAndJustify (pendingJustifications, peerman); };
581
- auto fJustifyWait = [this , &peerman] {
581
+ auto fJustifyWait = [this , &connman, & peerman] {
582
582
return ProcessPendingMessageBatch<CDKGJustification, MSG_QUORUM_JUSTIFICATION>(connman, *curSession,
583
583
pendingJustifications, peerman, 8 );
584
584
};
585
585
HandlePhase (QuorumPhase::Justify, QuorumPhase::Commit, curQuorumHash, 0.05 , fJustifyStart , fJustifyWait );
586
586
587
587
// Commit
588
588
auto fCommitStart = [this , &peerman]() { curSession->VerifyAndCommit (pendingPrematureCommitments, peerman); };
589
- auto fCommitWait = [this , &peerman] {
589
+ auto fCommitWait = [this , &connman, & peerman] {
590
590
return ProcessPendingMessageBatch<CDKGPrematureCommitment, MSG_QUORUM_PREMATURE_COMMITMENT>(
591
591
connman, *curSession, pendingPrematureCommitments, peerman, 8 );
592
592
};
@@ -600,12 +600,12 @@ void CDKGSessionHandler::HandleDKGRound(PeerManager& peerman)
600
600
}
601
601
}
602
602
603
- void CDKGSessionHandler::PhaseHandlerThread (PeerManager& peerman)
603
+ void CDKGSessionHandler::PhaseHandlerThread (CConnman& connman, PeerManager& peerman)
604
604
{
605
605
while (!stopRequested) {
606
606
try {
607
607
LogPrint (BCLog::LLMQ_DKG, " CDKGSessionHandler::%s -- %s qi[%d] - starting HandleDKGRound\n " , __func__, params.name , quorumIndex);
608
- HandleDKGRound (peerman);
608
+ HandleDKGRound (connman, peerman);
609
609
} catch (AbortPhaseException& e) {
610
610
dkgDebugManager.UpdateLocalSessionStatus (params.type , quorumIndex, [&](CDKGDebugSessionStatus& status) {
611
611
status.statusBits .aborted = true ;
0 commit comments