Changeset View
Changeset View
Standalone View
Standalone View
src/avalanche/peermanager.cpp
Show First 20 Lines • Show All 189 Lines • ▼ Show 20 Lines | bool PeerManager::updateNextPossibleConflictTime( | ||||
peers.modify(it, [&](Peer &p) { | peers.modify(it, [&](Peer &p) { | ||||
p.nextPossibleConflictTime = | p.nextPossibleConflictTime = | ||||
std::max(p.nextPossibleConflictTime, nextTime); | std::max(p.nextPossibleConflictTime, nextTime); | ||||
}); | }); | ||||
return it->nextPossibleConflictTime == nextTime; | return it->nextPossibleConflictTime == nextTime; | ||||
} | } | ||||
bool PeerManager::setFinalized(PeerId peerid) { | |||||
auto it = peers.find(peerid); | |||||
if (it == peers.end()) { | |||||
// No such peer | |||||
return false; | |||||
} | |||||
peers.modify(it, [&](Peer &p) { p.hasFinalized = true; }); | |||||
return true; | |||||
} | |||||
template <typename ProofContainer> | template <typename ProofContainer> | ||||
void PeerManager::moveToConflictingPool(const ProofContainer &proofs) { | void PeerManager::moveToConflictingPool(const ProofContainer &proofs) { | ||||
auto &peersView = peers.get<by_proofid>(); | auto &peersView = peers.get<by_proofid>(); | ||||
for (const ProofRef &proof : proofs) { | for (const ProofRef &proof : proofs) { | ||||
auto it = peersView.find(proof->getId()); | auto it = peersView.find(proof->getId()); | ||||
if (it != peersView.end()) { | if (it != peersView.end()) { | ||||
removePeer(it->peerid); | removePeer(it->peerid); | ||||
} | } | ||||
▲ Show 20 Lines • Show All 612 Lines • Show Last 20 Lines |