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.