Skip to content

fix(docs): repair Docker fullnode guide (stale image, genesis, statesync)#117

Open
cbarraford wants to merge 1 commit into
masterfrom
odin/docker-fullnode-docs-fixes
Open

fix(docs): repair Docker fullnode guide (stale image, genesis, statesync)#117
cbarraford wants to merge 1 commit into
masterfrom
odin/docker-fullnode-docs-fixes

Conversation

@cbarraford

Copy link
Copy Markdown

Summary

The Thornode on Docker fullnode page (thornodes/fullnode/thornode-docker.md) does not produce a working node as written. I verified this by actually running the documented procedure; this PR fixes it.

What I found (empirically)

  • Documented image mainnet-2.135.1 crash-loops. Its baked-in seed source is the decommissioned Nine Realms host (api.ninerealms.com/thorchain/seeds), which no longer resolves → no seeds → genesis self-fetch is skipped → couldn't read GenesisDoc file ... no such file → restart loop.
  • Genesis is fetched automatically from seed peers (/genesis_chunked) by current binaries — the manual "get genesis from node-launcher" instruction is non-actionable, and a successful genesis fetch alone is not enough to join.
  • A current binary cannot init from the fetched genesis. With a current image (mainnet-3.18.1) the genesis self-fetch succeeds (40 MB state-export), but InitChain then panics: panic: invalid address in x/bank InitGenesis → crash loop.
  • StateSync is the working bootstrap path, but it is off by default and undocumented here. Setting THOR_AUTO_STATE_SYNC_ENABLED=true changes the outcome: the node sets a trust height from the default RPC servers and reaches Discovering snapshots with 0 restarts and no panic (verified). Completing a statesync needs substantial RAM (~80 GB per node-launcher).
  • The linked node-launcher snapshot doc is Kubernetes/Helm make-based with no docker-compatible procedure.
  • The published image is amd64-only; arm64 hosts need --platform linux/amd64.

Changes

  • Bump the example image tag to a current version and tell operators to track the network version.
  • Rewrite the Genesis section: it's automatic; no manual step.
  • Rewrite the Sync section: document StateSync (THOR_AUTO_STATE_SYNC_ENABLED=true, with RAM caveat) and a snapshot-restore alternative (noting the linked doc is k8s/make-based).
  • Add the StateSync env var to the docker run example and an arm64 --platform note.

Not fully verified

A complete statesync was not run to tip (requires ~80 GB RAM / large disk); verification reached Discovering snapshots. Maintainers may prefer a different pinned image tag than mainnet-3.18.1.

🤖 Generated with Claude Code

…ync)

The Docker fullnode page does not produce a working node as written. Verified
by running the documented steps:

- Documented image `mainnet-2.135.1` crash-loops: its baked-in Nine Realms seed
  URL no longer resolves, so it can't self-fetch genesis and fails to start.
  Bumped to a current tag and added guidance to track the network version.
- Genesis is fetched automatically from seed peers; the manual "get genesis from
  node-launcher" step was non-actionable. Clarified, and noted a genesis fetch
  alone is insufficient.
- A current binary cannot replay from genesis (InitChain panics). Added the
  StateSync bootstrap path (`THOR_AUTO_STATE_SYNC_ENABLED=true`, verified to
  reach snapshot discovery) with its RAM requirement, plus a snapshot-restore
  alternative noting the linked node-launcher doc is Kubernetes/make-based.
- Added `--platform linux/amd64` note for arm64 hosts (image is amd64-only).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant