Skip to main content

RoundTimeoutGrowth

Trait RoundTimeoutGrowth 

Source
pub trait RoundTimeoutGrowth { }
Expand description

Assumption (Round timeouts eventually exceed the round trip). The round timeout grows without bound over successive rounds, so that eventually a round lasts longer than the time a correct leader needs to complete it after GST.

This is what ChainOwnership::round_timeout implements for the rounds that matter: for SingleLeader(r) and Validator(r) it returns base_timeout + timeout_increment · r, which is unbounded in r as long as TimeoutConfig::timeout_increment is non-zero. With timeout_increment set to zero the assumption fails, and a deployment whose round trip exceeds base_timeout can advance rounds forever without any of them lasting long enough to finish — the classic livelock this growth exists to prevent.

Implementors§