Bundles - 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 receiving a bundle Bundle(rk,pk,sk,v) a player
Ignores* it if Bundle(rk,pk,sk,v) is malformed or trivially invalid.
Ignores it if
- rk≠rrk≠r or
- rk=rrk=r and pk+1<ppk+1<p.
Otherwise, observes the votes in Bundle(rk,pk,sk,v) in sequence. If there exists a vote that causes the player to observe some bundle Bundle(rk,pk,sk,v′) for some sk, then the player relays Bundle(rk,pk,sk,v′), and then executes any consequent action; if there does not, the player ignores it.
Specifically, if the player ignores the bundle without observing its votes, then
N(S,L,Bundle(rk,pk,sk,v))=(S,L,ϵ);N(S,L,Bundle(rk,pk,sk,v))=(S,L,ϵ);
while if a player ignores the bundle but observes its votes, then
N(S,L,Bundle(rk,pk,sk,v))=(S′∪Bundle(rk,pk,sk,v),L,ϵ);N(S,L,Bundle(rk,pk,sk,v))=(S′∪Bundle(rk,pk,sk,v),L,ϵ);
and if a player, on observing the votes in the bundle, observes a bundle for some value (not necessarily distinct from the bundle’s value), then
N(S,L,Bundle(rk,pk,sk,v))=(S′∪Bundle(rk,pk,sk,v),L′,(Bundle∗(r,pk,sk,v′),…)).N(S,L,Bundle(rk,pk,sk,v))=(S′∪Bundle(rk,pk,sk,v),L′,(Bundle∗(r,pk,sk,v′),…).