Changeset View
Changeset View
Standalone View
Standalone View
src/avalanche/processor.cpp
Show First 20 Lines • Show All 783 Lines • ▼ Show 20 Lines | bool Processor::isQuorumEstablished() { | ||||
uint32_t connectedPeersScore; | uint32_t connectedPeersScore; | ||||
{ | { | ||||
LOCK(cs_peerManager); | LOCK(cs_peerManager); | ||||
totalPeersScore = peerManager->getTotalPeersScore(); | totalPeersScore = peerManager->getTotalPeersScore(); | ||||
connectedPeersScore = peerManager->getConnectedPeersScore(); | connectedPeersScore = peerManager->getConnectedPeersScore(); | ||||
} | } | ||||
// If we have our own proof we need to consider its score in addition to our | |||||
// peers' scores. | |||||
ProofRef localProof = getLocalProof(); | |||||
if (localProof != nullptr) { | |||||
totalPeersScore += localProof->getScore(); | |||||
connectedPeersScore += localProof->getScore(); | |||||
} | |||||
// Ensure enough is being staked overall | // Ensure enough is being staked overall | ||||
if (totalPeersScore < minQuorumScore) { | if (totalPeersScore < minQuorumScore) { | ||||
return false; | return false; | ||||
} | } | ||||
// Ensure we have connected score for enough of the overall score | // Ensure we have connected score for enough of the overall score | ||||
uint32_t minConnectedScore = | uint32_t minConnectedScore = | ||||
std::round(double(totalPeersScore) * minQuorumConnectedScoreRatio); | std::round(double(totalPeersScore) * minQuorumConnectedScoreRatio); | ||||
Show All 14 Lines |