Dynamic Filter Timeout - Algorand Specifications

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

Algorand Specifications

An adaptive algorithm computes the dynamic filter timeout (i.e., the timeout to trigger a call to SoftVoteSoftVote).

In regular conditions, the filtering timeout TSoftVoteTSoftVote tends to the minimum λ0minλ0min.

Whenever network conditions force the round advancement to stall, TSoftVoteTSoftVote will diverge towards the maximum of λ0maxλ0max.

See the formal definition of the filtering timeout parameters in the ABFT normative section.

Let CC be a circular array of size |C|, whose elements are rounds’ minimum credential arrival time, defined as the time (elapsed since the start of r) at which the highest priority proposal vote was observed for that round.

See the formal definition of the lowest credential priority function in the ABFT normative section.

We now define the credential round lag, as:

δlag=min{⌊2λλ0min⌋,8} to be the rounds’ lookback1 for CC.

The node tracks in CC the minimum credential arrival time for a certain number of rounds before r−δlag.

Every time a round r is “successfully” completed2, the node looks up the arrival time of the relevant credential for the round r−δlag, and pushes it into CC. If the circular array is full, the oldest entry is deleted).

It is worth noting that only rounds completed in the first attempt (p=0) are considered and relevant for CC. If the round is completed in later periods (p>0), that round is skipped and CC remains unchanged.

Important

IMPLEMENTATION:

Update credential arrival history reference implementation.

When computing the dynamic filter timeout, if a sufficient history of credentials is available (i.e., the node stored |C| past credential arrival times), the array holding this history is sorted in ascending order.

Then i∗-th element is selected as the filtering timeout value3.

Finally, a Tϵ extra time is added to the selected entry, for the final filter timeout to be returned as

TSoftVote=C[i∗]+Tϵ

Note that the filter timeout λ0min≤TSoftVote≤λ0max is clamped on the minimum and maximum bounds defined in the ABFT normative section.

NAME VALUE (seconds) DESCRIPTION
C
i∗ 3737 Entry of the (sorted) array CC. Set to represent the 95th percentile (according to
Tϵ 0.05 Filter extra time, atop the one calculated from CC.
  1. With current values for λ and λ0min, δlag=2. ↩

  2. A round is “successfully” completed if a certification bundle is observed and the proposal is already available, or if the proposal for an already present certification bundle is received. ↩

  3. With the current parametrization, this corresponds to the 95th percentile of the accumulated arrival times history. ↩