mirror of
https://github.com/XRPLF/rippled.git
synced 2025-12-06 17:27:55 +00:00
Be more robust about storing/replaying proposals:
Store a proposal even if it arrives outside a round. Make sure we catch up on any missed proposals as we start a round.
This commit is contained in:
@@ -300,6 +300,14 @@ LedgerConsensusImp::LedgerConsensusImp (
|
||||
// update the network status table as to whether we're
|
||||
// proposing/validating
|
||||
consensus_.setProposing (mProposing, mValidating);
|
||||
|
||||
playbackProposals ();
|
||||
if (mPeerPositions.size() > (mPreviousProposers / 2))
|
||||
{
|
||||
// We may be falling behind, don't wait for the timer
|
||||
// consider closing the ledger immediately
|
||||
timerEntry ();
|
||||
}
|
||||
}
|
||||
|
||||
Json::Value LedgerConsensusImp::getJson (bool full)
|
||||
@@ -974,8 +982,6 @@ void LedgerConsensusImp::accept (std::shared_ptr<SHAMap> set)
|
||||
consensus_.takePosition (mPreviousLedger->info().seq, set);
|
||||
|
||||
assert (set->getHash () == mOurPosition->getCurrentHash ());
|
||||
// these are now obsolete
|
||||
consensus_.peekStoredProposals ().clear ();
|
||||
}
|
||||
|
||||
auto closeTime = mOurPosition->getCloseTime ();
|
||||
|
||||
Reference in New Issue
Block a user