Thornode - Docker
Setting up a fullnode with Docker
Prerequisites
Install all packages needed for running and configuring the THORNode container
apt install -y --no-install-recommends aria2 curl docker.io jq pvConfiguration
Work directory
Prepare work directory
mkdir -p /opt/thornode/.thornode/configGenesis
No manual step is required. On first start the container fetches the genesis file automatically from the network's seed nodes (discovered via the configured seed-nodes endpoint, then pulled from a peer's RPC). A successful genesis fetch is not by itself enough to join the network — you must also choose a sync method below, otherwise the node will attempt to initialize from the fetched genesis and fail.
Sync
A fullnode cannot replay the chain from genesis with a current binary; you must bootstrap from a recent state. Choose one of the following.
Option A — Automatic StateSync (self-contained)
Set THOR_AUTO_STATE_SYNC_ENABLED=true (included in the docker run below). The node determines a trust height from the default trusted RPC servers and restores recent state over P2P from StateSync peers.
Network StateSync is memory intensive — at the time of writing it requires roughly 80 GB of RAM. Ensure your server is sized accordingly.
Option B — Snapshot restore
Download a current snapshot and extract it into /opt/thornode/.thornode/data before starting the container (leave THOR_AUTO_STATE_SYNC_ENABLED unset in this case). For snapshot sources and the recovery procedure, see the upstream Thornode Snapshot Recovery and Storage Management doc.
Start
Use the image tag that matches the current network version (check /thorchain/version on a public node). At the time of writing this is mainnet-3.18.1.
Start the thornode container
Last updated
Was this helpful?