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

consensus: NilQuorum is inaccurate #1181

Closed
fed-franz opened this issue Dec 5, 2023 · 1 comment · Fixed by #1191
Closed

consensus: NilQuorum is inaccurate #1181

fed-franz opened this issue Dec 5, 2023 · 1 comment · Fixed by #1191
Assignees
Labels
module:consensus Issues related to consensus module

Comments

@fed-franz
Copy link
Contributor

Summary

Currently, NilQuorum is defined as 1f64 - CONSENSUS_QUORUM_THRESHOLD + 0.01 (ie, as of now, 0.34).
While this works fine with a committee size of 64, it can lead to the NilQuorum to be 1-unit greater than the necessary.

For instance, with a commitee of 120 provisioners, we would have:

  • Quorum: 120 * 0.67 = 80.4, which is rounded up to 81
  • NilQuorum: 120 * 0.34 = 40.8, which is rounded up to 41

Now, with a Quorum of 81 a NilQuorum should be 40, so we're requiring one vote more than the necessary.

Possible Solution

Set NilQuorum to NilQuorum = COMMITTEE_SIZE - Quorum + 1

@fed-franz fed-franz added the module:consensus Issues related to consensus module label Dec 5, 2023
@herr-seppia herr-seppia self-assigned this Dec 6, 2023
@autholykos
Copy link
Member

See #1184

herr-seppia added a commit that referenced this issue Dec 6, 2023
herr-seppia added a commit that referenced this issue Dec 7, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
module:consensus Issues related to consensus module
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants