Recovery - Algorand Specifications
Keyboard shortcuts
Press ← or → to navigate between chapters
Press S or / to search in the book
Press ? to show this help
Press Esc to hide this help
- Auto
- Light
- Dark
Algorand Specifications
On observing a timeout event of
T=DeadlineTimeout(p) or
T=DeadlineTimeout(p)+2stλ+u where u∈[0,2stλ] sampled uniformly at random,
the player attempts to resynchronize and then broadcasts* Vote(I,r,p,nexth,v) where
v=σ(S,r,p) if vv is committable in (r,p),
v=v¯ if there does not exist a s0>cert such that Bundle(r,p−1,s0,⊥) was observed and there exists an s1>cert such that Bundle(r,p−1,s1,v¯) was observed,
and v=⊥ otherwise.
Important
IMPLEMENTATION:
Next vote issuance reference implementation.
Next vote timeout ranges computation reference implementation.
Call to next0 reference implementation.
Subsequent calls to nextst reference implementation.
Step increase in recovery step timeouts reference implementation.
For a detailed overview of how the recovery routine may be implemented, refer to the Algorand ABFT non-normative section.
In other words, if a proposal-value vv is committable in the current period,
N(S,L,t(T,p))=(S′,L,(…,Vote(I,r,p,nexth,v)));N(S,L,t(T,p))=(S′,L,(…,Vote(I,r,p,nexth,v)));
while in the second case,
N(S,L,t(T,p))=(S′,L,(…,Vote(I,r,p,nexth,v¯)));N(S,L,t(T,p))=(S′,L,(…,Vote(I,r,p,nexth,v¯));
and otherwise,
N(S,L,t(T,p))=(S′,L,(…,Vote(I,r,p,nexth,⊥))).N(S,L,t(T,p))=(S′,L,(…,Vote(I,r,p,nexth,⊥))).