hyperledger-labs / SmartBFT

Implementation of the SmartBFT consensus library (https://arxiv.org/abs/2107.06922)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

View change awareness in case of no decisions in last view

yacovm opened this issue · comments

In case there has been a view change and no further decisions were made in that view, all followers that are behind that view will never move to the new view with the help of Sync(), because Sync only replicates decision, and not the view change messages (particularly, the NewView message).

What I suggest is that when we get a heartbeat timeout from a leader and we see that the heartbeats from that leader contain a view number that is a higher view than us, we will ask for a NewView message.

After we receive and verify the new view message we will call sync, and after the sync ends - we will use that NewView message information to construct the new view and notify the view changer about that new view as well.