Skip to content

Commit

Permalink
llmq: Adjust GetQuorumRecoveryStartOffset to use all MNs
Browse files Browse the repository at this point in the history
  • Loading branch information
xdustinface committed Mar 9, 2021
1 parent 6bf7f2e commit 5fc7a01
Showing 1 changed file with 8 additions and 16 deletions.
24 changes: 8 additions & 16 deletions src/llmq/quorums.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -514,23 +514,15 @@ CQuorumCPtr CQuorumManager::GetQuorum(Consensus::LLMQType llmqType, const CBlock

size_t CQuorumManager::GetQuorumRecoveryStartOffset(const CQuorumCPtr pQuorum, const CBlockIndex* pIndex) const
{
const size_t nActiveQuorums = pQuorum->params.signingActiveQuorumCount + 1;
const std::vector<CQuorumCPtr> vecQuorums = ScanQuorums(pQuorum->params.type, pIndex, nActiveQuorums);
assert(vecQuorums.size() > 0);
std::set<uint256> setAllTypeMembers;
for (auto& q : vecQuorums) {
auto& vecValid = q->qc.validMembers;
for (size_t i = 0; i < vecValid.size(); ++i) {
if (vecValid[i]) {
setAllTypeMembers.emplace(q->members[i]->proTxHash);
}
}
}
std::vector<uint256> vecAllTypeMembers{setAllTypeMembers.begin(), setAllTypeMembers.end()};
std::sort(vecAllTypeMembers.begin(), vecAllTypeMembers.end());
auto mns = deterministicMNManager->GetListForBlock(pIndex);
std::vector<uint256> vecProTxHashes;
mns.ForEachMN(false, [&](const CDeterministicMNCPtr& pMasternode) {
vecProTxHashes.emplace_back(pMasternode->proTxHash);
});
std::sort(vecProTxHashes.begin(), vecProTxHashes.end());
size_t nIndex{0};
for (size_t i = 0; i < vecAllTypeMembers.size(); ++i) {
if (activeMasternodeInfo.proTxHash == vecAllTypeMembers[i]) {
for (size_t i = 0; i < vecProTxHashes.size(); ++i) {
if (activeMasternodeInfo.proTxHash == vecProTxHashes[i]) {
nIndex = i;
break;
}
Expand Down

0 comments on commit 5fc7a01

Please sign in to comment.