Synchronization - 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

Node synchronization is the process by which a node that has never connected to the Algorand Network, or has fallen behind the current blockchain state, synchronizes itself with the latest state of the Ledger.

Depending on the trade-off between node’s trust model and synchronization time, the synchronization process can be performed either:

The degree of trust in the block validation process can be tuned with the CatchupBlockValidateMode configuration parameter.

The Fast Catchup synchronization is done by downloading a Catchpoint, consisting of a Catchpoint Label and Catchpoint File, from a trusted source that maintains an up-to-date snapshot of the Algorand Ledger and applying a batch of catchup data.

This snapshot corresponds to a specific Ledger instance, defined by its Genesis (i.e., the initial block — see the Algorand Ledger specification).

Catchpoints default generation interval is 10,000 blocks:

Instead of replaying the entire transaction history from the Genesis Block, the Fast Catchup allows the node to skip ahead efficiently, becoming operational with minimal delay.

Important

EXAMPLE:

To generate Catchpoints “in-house”, users need an Archival Node, and override the gossip lookup to force it to download the Catchpoint File from their local server on the gossip port (usually 4160). Using the algod CLI:


goal node catchup <catchpoint label> -d data -p ip_of_user_server:gossip_port

Important

IMPLEMENTATION:

Catchup reference implementation.

Catchpoint Labels reference implementation.

Catchpoint Tracking Modes configuration.

The diagram below illustrates the Fast Catchup process and how it interacts with other node components, including the HTTP API and the internal Catchup Service.

Catchup ServiceNodeHTTP APIGoal CLICatchup ServiceNodeHTTP APIGoal CLILock nodeloop[Until finish,error orabort]Unlock nodePOST  /v2/catchup/Start CatchupStart CatchupHandle next stagereturns

This process ensures consistency and prevents interference from other operations while the node updates its internal state. Once catchup completes, the node can resume normal operations such as block processing and serving API requests.