Run an archive node
This guide explains what an archive node is, why you might need one, and how to set it up for the Atleta Network.
Introduction: What is an Archive Node?
While a standard full node (like a validator) keeps all block headers, it prunes old block states to save disk space, typically retaining only the last 256 blocks. This is efficient for validating the chain and checking recent transactions.
An archive node is different. It's a full node that keeps the entire history of the blockchain, including every state for every block since genesis.
Why would you need an archive node?
Historical Data Analysis: You need to query the balance of an account at a specific block in the distant past.
Blockchain Explorers: Services like block explorers need to look up any transaction or event that has ever occurred.
dApp Backends: Applications that need to reconstruct past events or states rely on the complete data set provided by an archive node.
Running an archive node is a significant commitment due to its substantial resource requirements, especially storage.
Minimum Hardware Requirements
Archive nodes demand significantly more storage than validator nodes. The other requirements are similar but having more RAM is beneficial.
CPU
x86-64/amd64; 4+ physical cores @ 3.4 GHz+; SMT (Hyper-Threading) disabled.
Storage
A high-speed NVMe SSD with at least 1 TB of space. This will grow continuously.
Memory
32 GB DDR4 ECC RAM (16 GB is the absolute minimum, but more is better for performance).
Network
A stable, symmetric connection of at least 100 Mbit/s.
⚠️ Important: The blockchain database for an archive node can grow to be very large (hundreds of gigabytes or even terabytes over time). Ensure you have a storage solution that can scale.
Step 1: System Prerequisites
The prerequisites are the same as for a validator node. You will need curl and jq installed on your system, and if you are using Linux, your system clock must be synchronized using NTP.
Step 2: Run the Archive Node
The process is very similar to running a standard node, but with one critical change in the command-line flags to prevent the pruning of historical states.
Using Docker (Recommended)
1. Download the Chain Specification
As before, download the appropriate chain specification file for the network you wish to join.
Example for Mainnet:
curl \
-o chain-spec.mainnet.json \
https://raw.githubusercontent.com/Atleta-network/atleta/refs/heads/mainnet/chainspecs/chain-spec.mainnet.json2. Run the Node with Archive Pruning
The key difference is the --pruning=archive flag. This tells the node to keep all historical states.
Bash
docker run -it --rm \
-v "/path/to/your/archive-data":"/chain-data" \
-v "./chain-spec.mainnet.json":"/chainspec.json" \
-p 9944:9944 \
-p 9933:9933 \
atletanetwork/atleta-node:mainnet-latest \
--base-path /chain-data \
--chain /chainspec.json \
--rpc-cors all \
--unsafe-rpc-external \
--rpc-methods=Unsafe \
--pruning=archiveKey Command-Line Flags for an Archive Node:
--pruning=archive: This is the most important flag. It instructs the node not to discard any historical block states. If you start a node without this and it syncs, you cannot switch to archive mode later without purging the database and starting over.--rpc-methods=Unsafe: Archive nodes are often used for extensive queries. Setting this toUnsafeenables a wider range of RPC calls. Ensure your node is protected by a firewall and not publicly exposed.-v "/path/to/your/archive-data":"/chain-data": Make sure this path points to a directory on a drive with a very large amount of free space.
Syncing the Chain
The syncing process for an archive node is identical to a full node but will take significantly longer and consume much more disk space as it downloads and stores the entire history of the Atleta Network.
You can monitor the logs to watch its progress. The sync is complete when you see a steady stream of imported blocks without the "Syncing..." message. Once synced, your archive node is ready to serve historical data requests.
Last updated