-
Notifications
You must be signed in to change notification settings - Fork 59
PBTS: association between timely predicate and timeout_commit #370
Comments
As mentioned in #371, Making then this conservative parameter as a minimum duration for |
@josef-widder @cason I'm not certain that this was resolved. If it was, can either of you post the outcome to this issue? As far as I can tell, we need to ensure that the validators wait at least as long as an honest proposer does, which would imply a relationship between
From this, I'm gathering that |
@cason, are you saying that if we decide on adaptive timeouts in #371 we will need to re-introduce the relation of message delay and timeout? |
@williambanfield, I don't consider it solved. I think that the previous specification does not solve the (possible) problem we have, as it does not embrace some of the considerations above. I also think that the absence of further changes, the timeout and timely mechanism would not interfere with each other. |
No, it should not. It is the maximum transmission end-to-end delay for a regular consensus message. Maybe I should reinforce it in the specification.
Yes, that's why I think they are essentially distinct. Maybe they are not independent, and this is the discussion I foresee for this issue. |
@josef-widder: the short answer is not, I don't plan to "reassociate" them. But if from this discussion emerges some relevant scenario that justify their association, I am open to reconsider it. |
Closing this issue as it seems established that these parameters should not be directly associated. Just as a last comment, when rewriting the problem statement I realized that while we can assume that the delivery of a Proposal occurs within |
With PBTS, proposed values (for the first time) can only be accepted when they are
timely
. This requires comparing the proposal time with the time at which the proposal is received by a validator. One of the rules, for rejecting proposal times too much in the past, assumes a maximum propagation delayMSGDELAY
forProposal
messages.In the original PBTS specification, the
MSGDELAY
parameter, together withACCURACY
, was also used to compute a minimum duration for the propose round step timeout. The rationale is that a validator should not timeout, thus prevotingnil
, while atimely
proposal could still be received.Several internal discussions occurred after this specification was compiled, and some preliminary decisions are not in line with this association between
timeout_propose
andMSGDELAY
parameters.A first reason is the decision to evaluate the
timely
predicate upon receiving aProposal
message, not upon receiving the full proposed value, carried byBlockPart
messages. While thetimeout_propose
duration should encompass the maximum delay for receiving the full proposed value/block,MSGDELAY
only considers the maximum delay for aProposal
message.A second reason is the fact that
MSGDELAY
is a parameter added to the proposaltime
field, i.e., its timestamp. So, the fact that a process enters a round before or after, in terms of real time, the proposer does that is not reflected by this parameter. But this lack of synchronization between processes should be taken into consideration when configuring thetimeout_propose
.So, in particular while we consider
MSGDELAY
a fixed parameter, that is not incremented when rounds of consensus fail, I propose to remove this association betweentimeout_propose
andMSGDELAY
.The text was updated successfully, but these errors were encountered: