-
Notifications
You must be signed in to change notification settings - Fork 27
Verification sequence
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.