Resynchronization Attempt - 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

The resynchronization is an auxiliary function used throughout the recovery steps.

A partial order relation is defined in the space of all observed bundles. We call this relation freshness.

A resynchronization attempt broadcasts the freshest observed bundle (if any).

Priority-wise, bundles’ freshness is defined as follows:

For a formal definition of this property, refer to the ABFT normative section.

Important

IMPLEMENTATION:

Bundle freshness reference implementation.

In the reference implementation, a resynchronization attempt is handled by the partitionPolicy function, as the network is assumed to be in a “partitioned state” due to the temporary inability to reach consensus. In this case, the function is only invoked when the current step s≥3s≥3 or when the current period p≥3p≥3 (that is, the player has gone through two full periods without reaching a consensus).