-
Notifications
You must be signed in to change notification settings - Fork 27
View change
The view change protocol is inspired by the Synchronization Phase in this BFT-SMaRt paper (illustrated in the attached figure taken from the BFT-SMaRt paper).
The view change protocol is comprised of three messages: ViewChange
, ViewData
, and NewView
(Stop
, StopData
, and Sync
in BFT-SMaRt).
The ViewChange
message (the first message) is sent to all nodes by some node who suspects the leader is faulty. This message is very lightweight and includes only the next view sequence number.
After receiving f+1
ViewChange
messages, with the same view sequence number, the receiving node is convinced that at least one correct node is asking for a view change and so it helps it by sending the same ViewChange
messages.
Once receiving 2f+1
ViewChange
messages the nodes will send a ViewData
message to the next view's leader.
The ViewData
message is similar to the ViewChange message suggested by PBFT. It is signed, as it will serve as proof in the next phase. The message contains the last checkpoint (last decided proposal) and the next proposal, if it exists, with its state (proposed or prepared).
However, as opposed to the PBFT ViewChange message, the ViewData
message is sent only to the next leader.
The new leader, after receiving 2f+1
ViewData
messages, sends a NewView
message to all nodes. This message is similar to the NewView message suggested by PBFT.
It includes a proof of the validity of the new view, the 2f+1
ViewData
signed messages.
The nodes check if they need to catch up with the last decision or if they need to agree on the next proposal, all contained in the NewView message.