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

Fix View 2 Timeouts #1442

Merged
merged 3 commits into from
May 9, 2024
Merged

Fix View 2 Timeouts #1442

merged 3 commits into from
May 9, 2024

Conversation

bfish713
Copy link
Contributor

@bfish713 bfish713 commented May 9, 2024

Closes #<ISSUE_NUMBER>

This PR:

This fixes the cause of the timeouts in view 2 (really view 1). Consensus is supposed to be started at the genesis view if it is starting at genesis. In Hotshot we trigger getting a block and sending a DA proposal when we get a view change for the view before we are the leader. What was happening was that the first leader (of view 1) was never getting a block, proposing for DA, calculating VID share, or proposing. Meanwhile all replicas believed they were in view 1 and thus are waiting for a proposal for view 2. The proposer for view 2 never proposes because it gets not votes for QC or timeout. All replicas time out and send their timeout votes to the leader of view 3 (because they expected the view 2 leader to propose). This means the sequencer was effectively starting in view 3 with a timeout certificate and the genesis QC.

This PR fixes the issue by simply starting from view 0 when we are not loading up some saved consensus state.

This PR does not:

Key places to review:

@jbearer jbearer enabled auto-merge May 9, 2024 12:49
@jbearer jbearer merged commit 864f791 into main May 9, 2024
13 of 14 checks passed
@jbearer jbearer deleted the bf/fix-genesis branch May 9, 2024 13:45
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.

2 participants