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
- Auto
- Light
- Dark
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:
From the Genesis Block: this synchronization process minimizes the trust model, reducing it just to the Genesis Block, but it is slower and requires a longer sync time.
From a Ledger Catchpoint: this light synchronization process, also known as Fast Catchup is based on a recent snapshot of the Algorand Ledger, so it has a shorter sync time, but it requires trust in the Catchpoint file provider.
The degree of trust in the block validation process can be tuned with the
CatchupBlockValidateModeconfiguration 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:
Catchpoint Labels can be generated even by Non-Archival Nodes by setting
CatchpointTracking: 1: in the node configuration,Catchpoint Files can be generated by Archival Nodes by setting
CatchpointTracking: 2in the node configuration.
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 thealgodCLI: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.