directory, plus a small set of secrets and the genesis file. This runbook
covers backing those up, restoring them, and the alternative of letting a node
rebuild state from a peer via fast-sync.
What to back up
The validator creates
directory on first run; you do not pre-create it.
Take a consistent snapshot
QMDB snapshots are internal and automatic — the storage layer records a state-sync checkpoint during block finalization. There is no operator command to “trigger a snapshot.” For a backup you want a filesystem-consistent copy, which means quiescing the node first:Restore
- Stop the validator.
- Restore
directory, the YAML (with its secrets), andgenesis.jsonto their original paths. - Start the validator. It resumes from the restored height and re-joins consensus; if it is behind the tip it catches up via fast-sync (below).
Fast-sync (rebuild from a peer)
A node with little or no local state rebuilds from a peer’s QMDB snapshot over two RPC endpoints (see the RPC API reference):GET /state/snapshot— returns the latest checkpoint metadata:height,range_start,op_count,ops_root(MMR root of the operations), andcanonical_root(the state root at that height). Returns 404 if the node has not recorded a snapshot yet.GET /state/operations?size=<n>&start=<i>&max=<m>— streams a binary (commonware-codec) batch of state operations plus an MMR range proof. The client loops, advancingstart, until it has replayed every operation up toop_count, verifying each batch againstops_root.
STATE_SYNC_RATE_PER_SEC). A syncing node is granted a 10× longer consensus
activity timeout so it isn’t dropped while catching up.
Watch block_height on /health/detailed rise toward the network tip to
confirm sync progress (there is no separate percent-complete field — see the
note on the synced flag).
