-
Notifications
You must be signed in to change notification settings - Fork 27
Home
Consensus
is the controller. It receives clients' requests, calls a Timeouter
on each request and keeps it in the RequestPool
. If the current View
indicates that this process is the leader then the Consensus
batches requests with the Batcher
, making sure first to check if the VerificationSequence
has changed and if so it verifies each request. Then with the help of the Assembler
it builds a new Proposal
which is then proposed to the current view.
The View
runs all three phases of the normal path, prePrepare, prepare, and commit. If it finished successfully it delivers the decision by calling the Decider
. The View
and the Timeouter
may complain to the ViewChanger
by sending a view change message.
The ViewChanger
runs the view change protocol and informs the Consensus
about the new view. The Consensus
then aborts the current View
and uses the ViewBuilder
to start a new one.
The Synchronizer
is used for replication when a node has been restarted.