-
Notifications
You must be signed in to change notification settings - Fork 38
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
BFT-466: LeaderPrepare wait for previous block deadlock (#128)
## What ❔ - [x] Create a test to artificially create a situation in which some nodes have the proposal payload but not the CommitQC that would finalize it and allow it to be gossiped, while others have the HighQC received as part of a new proposal, but they don't have the previous payload and wait for it to be gossiped to them, creating a deadlock and stalling consensus. - [x] The solution is to timeout waiting for the block to appear in the store and move on to the new view, broadcast the HighQC as part of the ReplicaPrepare, which should allow the others to finalise the block. ## Why ❔ To deal with the loss of liveness caused by multiple leaders who owned both the payload and the CommitQC going down, and further replicas stop participating in consensus until they have the previous payload which never comes.
- Loading branch information
Showing
5 changed files
with
275 additions
and
75 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.