feat: commit staging-mainnet chain spec from v0.11.0-rocket-fuel - #691
Conversation
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
left a comment
There was a problem hiding this comment.
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, emptybootNodes, emptycodeSubstitutes, 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:codeSHA-256 isb7ef66d86ce6a215bdc57fc9d28886da5e9322a3a5f6d3500b418df631152cfb, byte-matching the publishedv0.11.0-rocket-fuelruntime-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
0x8f3f16aff106e674caf730572b178018cab2289b079461b4dcfdeb968f07fc50and genesis hash0xb0e90ed9f291a9194f79bf90dce39ad7e5ea88f1bf6a9db5f268f309d305e30d. - 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.
|
Yeah signers have been verified |
Adding Staging mainnet chainspec as json
Step 2 of the staging-mainnet launch plan: the committed raw JSON that
--chain staging_mainnetwill 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_mainnetnode/src/command.rs— the"staging_mainnet"arm inload_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 forGenesis hash
Verification
:codeis the srtool artifact from the release, not a localcargobuild — that is the point of generating from a tag:quantus-runtime-v148.compact.compressed.wasmb7ef66d86ce6a215bdc57fc9d28886da5e9322a3a5f6d3500b418df631152cfb:codein this specb7ef66d86ce6a215bdc57fc9d28886da5e9322a3a5f6d3500b418df631152cfb./scripts/genesis_verification.sh --release-tag v0.11.0-rocket-fuel --node-url http://localhost:9944against 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 no127.0.0.1injected.Notes
bootNodesis 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).--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.