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

$$ \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.