Skip to content

feat: commit staging-mainnet chain spec from v0.11.0-rocket-fuel - #691

Merged
n13 merged 1 commit into
mainfrom
genesis/staging_mainnet/v0.11.0-rocket-fuel
Sep 1, 2026
Merged

feat: commit staging-mainnet chain spec from v0.11.0-rocket-fuel#691
n13 merged 1 commit into
mainfrom
genesis/staging_mainnet/v0.11.0-rocket-fuel

Conversation

@n13

@n13 n13 commented Sep 1, 2026

Copy link
Copy Markdown
Collaborator

Adding Staging mainnet chainspec as json

Step 2 of the staging-mainnet launch plan: the committed raw JSON that --chain staging_mainnet will load, so every operator runs byte-identical genesis.

What is here

  • node/src/chain-specs/staging-mainnet.json — generated by ./scripts/genesis_generate_spec.sh v0.11.0-rocket-fuel staging_mainnet
  • node/src/command.rs — the "staging_mainnet" arm in load_spec (replaces the placeholder comment that anticipated it)
  • docs/STAGING_MAINNET_LAUNCH.md — records the genesis hash, which the doc asked for but had no slot for

Genesis hash

0xb0e90ed9f291a9194f79bf90dce39ad7e5ea88f1bf6a9db5f268f309d305e30d
state root 0x8f3f…fc50

Verification

:code is the srtool artifact from the release, not a local cargo build — that is the point of generating from a tag:

release quantus-runtime-v148.compact.compressed.wasm b7ef66d86ce6a215bdc57fc9d28886da5e9322a3a5f6d3500b418df631152cfb
:code in this spec b7ef66d86ce6a215bdc57fc9d28886da5e9322a3a5f6d3500b418df631152cfb

./scripts/genesis_verification.sh --release-tag v0.11.0-rocket-fuel --node-url http://localhost:9944 against a node booted on this spec: SUCCESS, genesis runtime matches the release artifact.

Spot checks against the launch plan: treasury 6-of-10 nonce 1 → qzpjP5r4NSeWDrbHvboYcychsmCCaJrbRixvghVjnaRzjRb5i (as predicted); tech collective seeded with the same ten; difficulty 4,000,000; QUAN / 12 decimals / SS58 189; bootNodes: [] with no 127.0.0.1 injected.

Notes

  • bootNodes is empty by design. It lives outside genesis, so filling it in after the first miner publishes its PeerID does not change the hash (plan step 5 → v0.11.2 hotfix).
  • Rehearsal vesting runs on fixed wall-clock dates (2026-09-01 14:00 UTC start, 14:05 cliff, 09-11 end), matching how mainnet TGE will work. The cliff will likely have passed before genesis, so the pre-cliff locked state is not exercisable on staging — accepted knowingly; test that path on Heisenberg or --dev.

Before merging

Step 0 of the plan still has "confirm the 10 staging signer keys are in the treasurers' wallets" unchecked. Those ten set both the treasury multisig address and the tech-collective seed, so they are baked into the hash above. If a treasurer cannot actually sign with their key, fixing it after this merges means regenerating the spec against a new runtime-upgrade tag and re-releasing the node.

Generated with scripts/genesis_generate_spec.sh from tags/v0.11.0-rocket-fuel,
so genesis state comes from the tagged source and :code is the srtool artifact
quantus-runtime-v148.compact.compressed.wasm (sha256 b7ef66d8...) rather than a
local build. Verified with genesis_verification.sh against a running node.

Genesis hash 0xb0e90ed9f291a9194f79bf90dce39ad7e5ea88f1bf6a9db5f268f309d305e30d.
bootNodes is empty by design; it sits outside genesis and is filled in after the
first miner publishes its PeerID, leaving the hash unchanged.

@n13 n13 left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Verdict: HOLD — do not merge yet.

I found no incorrect serialized chain-spec values. The remaining blocker is the launch plan merge gate: confirm that all 10 exact staging signer keys are present in the treasurers wallets, and record that confirmation here. Those keys are baked into both the 6-of-10 nonce-1 treasury and the rank-0 tech collective; replacing one after merge requires a new runtime-upgrade release and regenerated genesis.

Value-by-value audit passed:

  • The PR-head binary loads --chain staging_mainnet, and the embedded JSON round-trips exactly. Name/id/type/protocol, telemetry, QUAN / 12 decimals / SS58 189, empty bootNodes, empty codeSubstitutes, absent fork/bad-block data, and empty child storage all match the launch plan.
  • Independently regenerated tagged raw state is exactly equal to the committed state after excluding only :code, which is intentionally spliced from the release. The committed :code SHA-256 is b7ef66d86ce6a215bdc57fc9d28886da5e9322a3a5f6d3500b418df631152cfb, byte-matching the published v0.11.0-rocket-fuel runtime-v148 asset.
  • Treasury is 6-of-10, nonce 1, qzpjP5r4NSeWDrbHvboYcychsmCCaJrbRixvghVjnaRzjRb5i; the 10 configured signers are also the 10 seeded tech-collective members.
  • Genesis balances are exactly 10 signers x 31.4547 QUAN, 20 rehearsal accounts x 1 QUAN, and the vesting pot at 3,100,000.001 QUAN. Total issuance is exactly 3,100,334.548 QUAN; the treasury itself has no liquid endowment.
  • Vesting has exactly 23 schedules totaling 3,100,000 QUAN: dummy team 1.5M, backer 1.0M, ecosystem 0.5M, plus the 20 distinct rehearsal grants totaling 100k. Rehearsal time is exactly 2026-09-01 14:00 UTC, cliff +5 minutes, end +10 days, matching the explicit accepted-date decision in the plan.
  • Genesis difficulty is 4,000,000; fee multiplier is 1. Runtime RPC reports spec 148, transaction 6; runtime target block time is 12 seconds.
  • A temporary PR-head node initialized state root 0x8f3f16aff106e674caf730572b178018cab2289b079461b4dcfdeb968f07fc50 and genesis hash 0xb0e90ed9f291a9194f79bf90dce39ad7e5ea88f1bf6a9db5f268f309d305e30d.
  • Release build, embedded-spec comparison, git diff --check, and all 12 genesis-preset invariant tests pass.

Non-blocking follow-ups: the in-tree statements that eventual mainnet differs only by nonce are superseded by the launch plan and must be corrected before a mainnet preset is added. The companion workbook also still has the superseded Aug 22 rehearsal dates; the markdown decision, tagged runtime, and this JSON consistently use Sep 1 14:00 UTC.

@n13

n13 commented Sep 1, 2026

Copy link
Copy Markdown
Collaborator Author

Yeah signers have been verified

@n13
n13 merged commit 2441d82 into main Sep 1, 2026
6 checks passed
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