PBTS: new minimal set of changes in consensus algorithm#369
PBTS: new minimal set of changes in consensus algorithm#369josef-widder merged 6 commits intomasterfrom
Conversation
josef-widder
left a comment
There was a problem hiding this comment.
Looks great, thanks!
I left a couple of minor changes and comments we might add before merging.
spec/consensus/proposer-based-timestamp/pbts-algorithm_002_draft.md
Outdated
Show resolved
Hide resolved
spec/consensus/proposer-based-timestamp/pbts-algorithm_002_draft.md
Outdated
Show resolved
Hide resolved
spec/consensus/proposer-based-timestamp/pbts-algorithm_002_draft.md
Outdated
Show resolved
Hide resolved
Co-authored-by: Josef Widder <44643235+josef-widder@users.noreply.github.com>
|
We merge this minimal version. Follow-up issues: #370, #371, tendermint/tendermint#7946 |
| In other words, we don't need to verify whether `v` is a timely proposal because at least `f + 1` processes judged `v` as `timely` in a previous round, | ||
| and because, since `v` was re-proposed as a `validValue` (line 16), `v.time` has not being updated from its original proposal. | ||
|
|
||
| **All other rules remains unchanged.** |
There was a problem hiding this comment.
If I'm understanding correctly, this means that we should not evaluate timely on line 36, even when validRound is -1. I think this is fine, since we're seeing the +2/3 prevotes, but it could get mention in this design.
There was a problem hiding this comment.
I think you meant "we should not evaluate timely on line 36", right?
There was a problem hiding this comment.
It is a good point. I didn't mention lines 36 (Prevote -> Precommit) and 49 (Precommit -> Commit) because I think we don't need any additional logic there. But indeed we are assuming that untimely proposals can be accepted, provided that justified by a proper quorum of Prevotes.
There was a problem hiding this comment.
sorry for the typo, thank you for the correction @josef-widder
There was a problem hiding this comment.
But indeed we are assuming that untimely proposals can be accepted, provided that justified by a proper quorum of Prevotes.
I am not sure what you mean. I guess if there is an untimely proposal that is justified by a proper quorum of prevotes that means we are outside the n>3f assumption, no? (or outside the synchrony assumption)
There was a problem hiding this comment.
Yes, not properly explained. We can accept a Proposal when it contains a v.time that, at the moment at which it was received, would not be considered timely. But we do that when the Proposal has a POLRound > 0, meaning that in a previous round (in the past), v.timewas considered timely once received by a correct process.
In other words, v.time may not be timely now, as several communication steps passed since when it was originally proposed, but it was considered timely when it was originally proposed by at least a correct process, which is attested by the Proof-of-Lock associated to the received Proposal.
|
This looks like a great change, thanks for putting this together. |
This new specification of changes required the consensus algorithm only addresses established points, already discussed between the participants of this project.
Other questions, such as adaptive synchronous parameters (
MSGDELAYin particular) and changes ontimeout_propose, will be addressed in issues.