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 following constants:

Time Constants

These values represent durations of time.

SYMBOLVALUE (seconds)DESCRIPTION
\( \lambda \)\( 2.00 \)Time for small message (e.g., a vote) propagation in ideal network conditions
\( \lambda_{0min} \)\( 0.25 \)Minimum amount of time for small message propagation in good network conditions, for \( p = 0 \)
\( \lambda_{0max} \)\( 1.50 \)Maximum amount of time for small message propagation in good network conditions, for \( p = 0 \)
\( \lambda_f \)\( 300.00 \)Frequency at which the protocol fast recovery steps are repeated
\( \Lambda \)\( 17.00 \)Time for big message (e.g., a block) propagation in ideal network conditions
\( \Lambda_0 \)\( 4.00 \)Time for big message propagation in good network conditions, 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”).

Timeouts

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

  • If \( p = 0 \) the \( \FilterTimeout(p) \) is calculated dynamically based on the lower 95th percentile of the observed lowest credentials per round arrival time:

    • \( 2\lambda_{0min} \leq \FilterTimeout(p) \leq 2\lambda_{0max} \)

Refer to the non-normative section for details about the implementation of the dynamic filtering mechanism.

  • If \( p \ne 0 \):

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

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

  • If \( p = 0 \):

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

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

⚙️ IMPLEMENTATION

\( \DeadlineTimeout \) reference implementation.