Sync the chain
A fresh node has no blocks. On first startup it performs an initial block download (IBD): connect to peers, download headers, then bodies, validating along the way.
Start syncing
exfer node --datadir ~/.exfer --rpc-bind 127.0.0.1:9334
Peers are discovered automatically via DNS (seed.exfer.org) and a
hardcoded fallback list — no --peers needed. To pin manual peers:
exfer node --datadir ~/.exfer --peers 82.221.100.201:9333 --peers 89.127.232.155:9333
What you'll see in the log
INFO exfer: Node starting on 0.0.0.0:9333
INFO exfer: P2P listener bound
INFO exfer: Sync manager: cold-bootstrap IBD complete
INFO exfer: IBD complete at height 559300
After IBD complete, the node tracks the tip and accepts new blocks live
(~one every 10 s).
Watch progress
From another terminal:
curl -s -X POST http://127.0.0.1:9334 \
-H 'content-type: application/json' \
-d '{"jsonrpc":"2.0","method":"get_block_height","params":{},"id":1}'
Compare the returned height against a community node (or
the dashboard on this site). When they match within a block or two, you
are synced.
Speeding up the first sync
By default, blocks at or below the hardcoded checkpoint height (130 000) skip Argon2id PoW verification during IBD. This dramatically cuts cold sync time. All other validation (block linkage, signatures, UTXO accounting, state root, coinbase rules, timestamps) is still performed for every block.
The trust assumption is the binary author, not your peers — the checkpoint hash guarantees the canonical chain. If the block at the checkpoint height does not match, the chain is rejected.
To opt out:
exfer node --datadir ~/.exfer --no-assume-valid
# or to also re-verify every replayed block:
exfer node --datadir ~/.exfer --verify-all
--verify-all is for paranoid scenarios (suspected database corruption,
hardware faults). It implies --no-assume-valid.
How long does a cold sync take?
Order of magnitude — varies by disk speed, network, and host CPU:
| Phase | Approx. duration on a typical VPS |
|---|---|
| Header chain | a few minutes |
| Pre-checkpoint blocks (assume-valid) | tens of minutes |
| Post-checkpoint blocks (full PoW verify) | growing with tip height |
If you can copy a recent ~/.exfer/chain/ and ~/.exfer/state/ from a
trusted machine, you can skip most of this — see
Backup & recovery for the cautions.
Stay in sync after the first run
The node stays running and follows the tip. To restart cleanly after a reboot, use a system service — see Run as a service.
If the node falls behind (network outage, host suspended), it automatically catches up on the next start; no special command needed.
Common sync issues
See Troubleshooting. The most frequent ones:
- Stuck at one height for minutes — usually a slow peer; the sync manager rotates to a different peer after a timeout.
- Address already in use on 9333 — another
exferinstance is running, or that port is taken. See Troubleshooting. Permissions on node_identity.key are too open— pass--repair-permsto auto-fix.