$$ \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.
| SYMBOL | VALUE (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.
| SYMBOL | VALUE (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.