deploy: node from a chain spec file with genesis assertion, bootnodes as reserved peers, raised peer limits #24

Merged
grenade merged 1 commits from launch/chainspec-deploy into main 2026-09-09 05:05:35 +00:00
Owner

Launch preparation for 2026-09-10 09:09 UTC.

  • Chain spec file. CHAINSPEC_URL env or the chainspec_url dispatch input downloads the spec in fetch, validates it, extracts its id, and the node runs with --chain /etc/quantus-node/chainspec.json. Without it the built-in CHAIN name is used as before.
  • Genesis assertion. EXPECTED_GENESIS / expected_genesis is required with a spec; validate reads chain_getBlockHash(0) from the node's loopback RPC and fails the deploy (rollback) on mismatch. The chain name and genesis go into the step summary on every run.
  • Chain id for the miner deploy. Validate asserts the miner credentials exist under chains/<spec id>/ and prints the id, which is the chain input quantus/miner's deploy takes (quantus/miner PR alongside).
  • Bootnodes. BOOTNODES / bootnodes: each multiaddr is passed as --bootnodes and --reserved-nodes (not reserved-only), so the link to the foundation's nodes is never evicted.
  • Peer limits. --out-peers 32 --in-peers 64; bob sits at the default cap of 40 today.
  • Sudoers: the runner may rsync /etc/quantus-node/chainspec.json; applied to bob with infra-setup today.

Merging deploys to planck with no spec, no genesis and no bootnodes, which exercises the new validate path and soaks the peer limits overnight. Cutover tomorrow is one dispatch: node_version, chainspec_url, expected_genesis, bootnodes.

🤖 Generated with Claude Code

https://claude.ai/code/session_01CBgs2nSi4H2mdh8kD8vMX5

Launch preparation for 2026-09-10 09:09 UTC. - **Chain spec file.** `CHAINSPEC_URL` env or the `chainspec_url` dispatch input downloads the spec in `fetch`, validates it, extracts its `id`, and the node runs with `--chain /etc/quantus-node/chainspec.json`. Without it the built-in `CHAIN` name is used as before. - **Genesis assertion.** `EXPECTED_GENESIS` / `expected_genesis` is required with a spec; validate reads `chain_getBlockHash(0)` from the node's loopback RPC and fails the deploy (rollback) on mismatch. The chain name and genesis go into the step summary on every run. - **Chain id for the miner deploy.** Validate asserts the miner credentials exist under `chains/<spec id>/` and prints the id, which is the `chain` input quantus/miner's deploy takes (quantus/miner PR alongside). - **Bootnodes.** `BOOTNODES` / `bootnodes`: each multiaddr is passed as `--bootnodes` and `--reserved-nodes` (not reserved-only), so the link to the foundation's nodes is never evicted. - **Peer limits.** `--out-peers 32 --in-peers 64`; bob sits at the default cap of 40 today. - **Sudoers**: the runner may rsync `/etc/quantus-node/chainspec.json`; applied to bob with infra-setup today. Merging deploys to planck with no spec, no genesis and no bootnodes, which exercises the new validate path and soaks the peer limits overnight. Cutover tomorrow is one dispatch: node_version, chainspec_url, expected_genesis, bootnodes. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01CBgs2nSi4H2mdh8kD8vMX5
grenade added 1 commit 2026-09-09 05:05:20 +00:00
Mainnet launches 2026-09-10 09:09 UTC with the chain spec published as a
file before any binary embeds it. The node deploy can now run from
/etc/quantus-node/chainspec.json (CHAINSPEC_URL or the chainspec_url
input), asserts the started node's block-0 hash against EXPECTED_GENESIS
(required with a spec: it is the only defence against a look-alike), and
prints the spec id, which names <base-path>/chains/<id>/ and is what the
miner deploy must be pointed at; validate checks the miner credentials
exist under it. BOOTNODES are dialled and held as reserved peers.

The unit raises --out-peers to 32 and --in-peers to 64: bob sits at the
default cap of 40 peers today, and launch is a propagation race
(quantus/chain#1). infra-setup grants the runner the chain spec path
(applied to bob 2026-09-09).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CBgs2nSi4H2mdh8kD8vMX5
grenade merged commit 7a7090b28b into main 2026-09-09 05:05:35 +00:00
grenade deleted branch launch/chainspec-deploy 2026-09-09 05:05:36 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: lair/quantus#24