Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Hotstuff 2 #3877

Merged
merged 25 commits into from
Nov 15, 2024
Merged

Hotstuff 2 #3877

merged 25 commits into from
Nov 15, 2024

Conversation

bfish713
Copy link
Collaborator

@bfish713 bfish713 commented Nov 11, 2024

Closes #<ISSUE_NUMBER>

This PR:

This PR introduces the Hotstuff 2 consensus rules. Hotstuff 2 is has some notable changes over the original. These are:

  • The decide rule goes from a 3 chain to a 2 chain
  • The leader must wait for a QC from the last view (like before) or for a set timeout to collect the highest QC from all other replicas. The leader proposes with the highest QC it's received
  • Nodes send the highest QC they've seen to the next leader when a view finishes.
  • The locked QC becomes the what was before the "high qc"
    • In other words replicas will not vote for any proposal with a justify QC from a lesser view than any justify QC they previously saw.

This PR does not:

Key places to review:

@bfish713 bfish713 marked this pull request as ready for review November 14, 2024 03:18
@bfish713 bfish713 changed the title [WIP] Hotstuff 2 Hotstuff 2 Nov 14, 2024
Copy link
Contributor

@lukaszrzasik lukaszrzasik left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd just like to clarify two things before merging. Other than these two doubts I think it's good to go.

crates/task-impls/src/quorum_proposal/handlers.rs Outdated Show resolved Hide resolved
crates/types/src/consensus.rs Outdated Show resolved Hide resolved
@bfish713 bfish713 merged commit 3a326ee into main Nov 15, 2024
16 checks passed
@bfish713 bfish713 deleted the bf/hs2 branch November 15, 2024 15:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants