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 \FilterTimeout {\mathrm{FilterTimeout}} \newcommand \DeadlineTimeout {\mathrm{DeadlineTimeout}} $$

Parameters

The Algorand protocol is parameterized by the constants described in this section.

For agreement round \( r \), the player SHALL use the consensus parameters \( \mathrm{Parameters}(L, \max(r - 2, 0)) \) recorded in the Ledger \( L \).

Time Constants

These values represent durations of time.

SYMBOLVALUE (s)DESCRIPTION
\( \lambda \)\( 2.00 \)Time for small message (e.g., a vote) propagation in ideal network conditions
\( \lambda_{0min} \)\( 2.50 \)Minimum filtering time, for \( p = 0 \)
\( \lambda_{0max} \)\( 3.00 \)Maximum filtering time, for \( p = 0 \)
\( \lambda_f \)\( 300.00 \)Frequency at which the protocol fast recovery steps are repeated
\( \Lambda \)\( 15.00 \)Time for big message (e.g., a block) propagation in ideal network conditions
\( \Lambda_0 \)\( 4.00 \)Propagation deadline, for \( p = 0 \)

Round Constants

These are positive integers that represent an amount of protocol rounds.

SYMBOLVALUE (rounds)DESCRIPTION
\( \delta_s \)\( 2 \)The “seed lookback”
\( \delta_r \)\( 80 \)The “seed refresh interval”

For convenience, we define:

  • \( \delta_b = 2\delta_s\delta_r \) (the “balance lookback”).

Every round or period lookback \( a - b \) refers to \( \max(a - b, 0) \).

Timeouts

We define \( \FilterTimeout(p) \) on a period \( p \) as follows:

  • If \( p = 0 \):

    • \( \lambda_{0min} \leq \FilterTimeout(p) \leq \lambda_{0max} \).
  • If \( p \ne 0 \):

    • \( \FilterTimeout(p) = 2\lambda \).

Note

In the reference implementation \( \FilterTimeout(0) \) is calculated dynamically based on the lower 95th percentile of the observed lowest credentials per round arrival time. Players may choose different values of \( \FilterTimeout(0) \) within its range. Agreement safety does not require equal values. An adaptive strategy is described in the non-normative section.

We define \( \DeadlineTimeout(p) \) on period \( p \) as follows:

  • If \( p = 0 \):

    • \( \DeadlineTimeout(p) = \Lambda_0 \)
  • If \( p \ne 0 \):

    • \( \DeadlineTimeout(p) = \Lambda + \lambda \)

Important

IMPLEMENTATION:

\( \DeadlineTimeout \) reference implementation.