Replies: 4 comments
-
|
@josef-widder, is there a way to update the model with this change and verify it everything works as previously? |
Beta Was this translation helpful? Give feedback.
-
|
If I understand correctly, the I am not in favor of the change, because
So if the requirement on the |
Beta Was this translation helpful? Give feedback.
-
|
The only role of There are no changes in the update of |
Beta Was this translation helpful? Give feedback.
-
|
Just want to bring this discussion back in the context of the analysis of liveness of Tendermint. While it clearly does not solve the problem, as shown in the problematic run discussed in #956, in practice it would allow a faster converge on having new proposers re-proposing a value once it gets locked by someone. I think the changes in the algorithm are minimal. I understand that we may have multiple updates of Notice also that for liveness purposes we need I discussed this with @nenadmilosevic95, I know he has some concerns, but I really don't see why we need to be so strict when updating this field. I mean, if a round |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
The logic of line 36 of the arXiv paper updates the
validValue_pandvalidRound_pupon receiving, for the first time, a valuevand 2f + 1Prevotes forid(v)in current roundround_p. If, in addition, the validator has not yet issued aPrecommit, we also updatelockedValue_pandlockedRound_paPrecommitforid(v).While the logic is restrictive in the paper, in my opinion because the same logic is used to update valid and locked values and rounds, there should be no objection to state the logic as following:
This means, in few words, that when a node is already in round
round_p = 2but it receives2f + 1 〈PREVOTE, hp, 1 , id(v)〉for a full valuevthe node knows, it would update valid round tor = 1and value value tov. I don't think we can do that for messages from future rounds, for instance, ifr = 3, but I don't see any restricting for doing that for previous rounds.What is the goal? The goal is to produce
ValidValueevents even when a node only realizes that a value has became valid after the round where this has happened, due to asynchrony mostly. When a value becomes valid we are pretty sure that this is the value that must be decided on that height, except for some particular corner case. In particular, this is a value that we should retain, as it is very likely to be the end decision value for the height.Beta Was this translation helpful? Give feedback.
All reactions