forked from MystenLabs/sui
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add a BlockSynchronizer command to fetch certificate digests with a s…
…tarting round (MystenLabs/narwhal#848) Part 1/n of MystenLabs/narwhal#740 This PR adds logic to `BlockSynchronizer` to broadcast a request to fetch certificate digests with a starting round, and collect valid certificate digests from the received responses. High level overview of the algorithm (as discussed with @huitseeker): 1. When a primary needs to sync a range of certificates, it first finds the last round of certificate it has. Then it broadcasts a requests to synchronize certificate from higher rounds (last round + 1). 2. Other primaries / authorities will reply with certificate digests at or above the requested round (to be implemented later). 3. The requesting primary will collect the responses until heard from all, or timeout. Then, certificate digests having collected stakes above the committee validity threshold (f + 1 stake) are considered valid. Valid digests are returned. Notably, this PR does not contain the logic to handle the range sync request on primary, or the logic to drive fetching certificates based on the valid digests. A unit test is added for the happy path.
- Loading branch information
Showing
16 changed files
with
541 additions
and
30 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
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.