You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
HagarMeir edited this page May 22, 2019
·
3 revisions
We assume the application using this library verifies clients' requests before submitting for consensus.
However, the application may change its request verification process according to the current state.
Therefore, the leader, before batching requests for a new proposal, must check if a verification is required by calling VerificationSequence() and comparing its results to the last known verification sequence.
If the verification sequence has changed then the leader must reverify all clients' requests collected in the RequestPool.
Followers run VerifyProposal() on the leader's proposal included in the prePrepare message, to identify byzantine behavior.
In addition, after recovereing from a failuer or a disconnection, nodes may participate in consensus only if their current verfication sequence matches the one written in the current proposal. Otherwise, the node must wait for the Synchronizer to bring its verfication sequence up to date.