$$ \newcommand \MaxTxTail {\mathrm{TxTail}_{\max}} \newcommand \App {\mathrm{App}} \newcommand \Box {\mathrm{Box}} $$
States
A Ledger (\( L \)) is a sequence of states which comprise the common information established by some instantiation of the Algorand protocol.
A Ledger is identified by a string called the genesis identifier, as well as a genesis hash that cryptographically commits to the starting state of the Ledger.
Each state consists of the following components:
-
The round of the state, which indexes into the Ledger’s sequence of states.
-
The genesis identifier and genesis hash, which identify the Ledger to which the state belongs.
-
The current protocol version and the upgrade state.
-
A timestamp, which is informational and identifies when the state was first proposed.
-
A seed, which is a source of randomness used to establish consensus on the next state.
-
The current reward state, which describes the policy at which incentives are distributed to participants.
-
The current account state, which holds account balances and participation keys for all stakeholding addresses.
- One component of this state is the transaction tail, which caches the transaction sets (see below) in the last \( \MaxTxTail \) blocks.
-
The current box state, which holds mappings from (\( \App_{ID} \), \( \Box_{ID} \)) tuples to box contents of arbitrary bytes.