Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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
Round quorum before advancement #2897
Round quorum before advancement #2897
Changes from 4 commits
35a7416
e65b1d6
3ff7e91
f412ffe
8049d6e
ad551aa
3f9083f
aee7fe3
1591196
c8fff29
e53bdb0
ef446e9
10827d0
ab7094e
5c6ff28
File filter
Filter by extension
Conversations
Jump to
There are no files selected for viewing
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why doesn't this add the validator to
address_rounds
?There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The function is badly named, we are only updating because we saw a new round for this validator: ef446e9
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The committee being used here may changed based on the round you are checking.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think its fine to use the single given committee (from
get_previous_committee_for_round
) to update completely, because who cares whether old outdated committees have high rounds..Sidenote: if we were to only update by 1 round at a time based on the given committee, instead of always taking just
<quorum>
batch proposals to update to the correct round, we will then need<quorum> + i
batch proposals to increase our round byi
. If<quorum> > max_gc_rounds
, then we might never catch up...There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there any case where you won't ever be able to see quorum because the fixed committee you are using doesn't include newly bonded validators?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great question, it seems so yes... Because we use our old outdated round to determine the committee:
self.ledger.get_previous_committee_for_round(self.current_round())
.The only alternative I see now is to use the peer's advertised
batch_round
- but one question on that: is it possible that we don't know the committee yet for rounds far in the future so thatget_previous_committee_for_round(batch_round)?
will keep failing? Or do we expect that to succeed at some point?