Restore a node
For a Monad mainnet full node that is already installed and configured the official way. One command replaces its state with the latest snapshot and brings it back to the head. It runs the Monad Foundation's own scripts — only the download comes from this mirror.
Before you start
- the
monadpackage installed, keys,node.tomland/home/monad/.envin place — set up by the official guide ↗ /dev/triedbpointing at the TrieDB drive- root, and ~100 GB free in
/home/monad/monad-bftfor the download and its unpacked copy
A restore erases the node's TrieDB and ledger. That is what a snapshot restore is. It never touches your keys.
One command
First, if you like, only check the download — the node is not touched:
Then restore:
read the script ↗ — 130 lines, most of them messages.
What happens
- Manifest. Reads
/manifests/mainnet/latest.json: which official snapshot, its block, size and sha256. - Stop and reset. Stops
monad-bft,monad-execution,monad-rpcand runs the package's/opt/monad/scripts/reset-workspace.sh. - Official restore, our download. Fetches
restore-from-snapshot.shfrombucket.monadinfra.com, prints its sha256 and changes exactly one line —HOST— to this mirror. If that line is not where the script expects it, it stops rather than patch blindly. The official script then downloads, runssha256sum -con the official checksum, picks the TrieDB mode for MIP-8 and imports withmonad-cli --load-binary-snapshot. - Forkpoint. Runs the official
download-forkpoint.sh, retrying for a couple of minutes — Monad publishes one a minute. - Start. Starts the services and prints the node's height against
rpc.monad.xyzuntil it is within ten blocks of the head.
If something goes wrong
Everything after step 2 is the official procedure, so the official troubleshooting applies. The services' logs: journalctl -u monad-bft -u monad-execution -n 100. To restore straight from the Monad Foundation instead of this mirror, run the unmodified restore-from-snapshot.sh — the files are identical, byte for byte.