plasma/mainnet: vendor chain assets (genesis, non-validator.toml, validator keys/identities) [width-coverage] #40

Merged
rob merged 1 commits from width-plasma-mainnet into main 2026-07-13 16:53:29 +00:00
Collaborator

Why

Companion asset PR for the new Plasma mainnet chain family (chainid 9745). Pairs with vibe-node PR #1395both must merge or the generated compose will reference files that don't exist.

What this adds

plasma/mainnet/:

  • genesis.json — chain spec; consumed by both reth init --chain and plasma-cli init --chain
  • non-validator.toml — consensus config: engine API URL, shared JWT path, p2p (34070), API (35070), and the [validators.N] set
  • keys/bls12-381-public-key-*.hex — validator BLS public keys
  • identities/ec-secp256k1-validator-public-compressed-*.hex — validator secp256k1 identities

The CL mounts keys/ and identities/ (as /node/keys and /node/identities, per the toml) plus genesis.json. Without these the consensus client cannot verify the validator set and the node will not start.

Provenance (vendored, not hand-written)

All files are taken verbatim from Plasma's official node-operator repo:
PlasmaLaboratories/non-validator-templatesconfig/mainnet/

These are public keys and chain config only — no secrets. The node's own identity (secp256k1 keypair) and the engine JWT are generated at runtime by the initialize-openssl init container, not committed here.

Verification

./update.sh regenerated clean (0 errors), filtered (plasma.mainnet) and full. The rendered plasma/reth/plasma-mainnet-reth-pruned-trace.yml mounts all four asset paths.

branch SHA: ba410ba7f69255322b4975d6bfe0b35391d63984

## Why Companion **asset** PR for the new **Plasma mainnet** chain family (chainid **9745**). Pairs with **vibe-node PR #1395** — ***both must merge*** or the generated compose will reference files that don't exist. ## What this adds `plasma/mainnet/`: - **`genesis.json`** — chain spec; consumed by both `reth init --chain` and `plasma-cli init --chain` - **`non-validator.toml`** — consensus config: engine API URL, shared JWT path, p2p (34070), API (35070), and the `[validators.N]` set - **`keys/bls12-381-public-key-*.hex`** — validator BLS public keys - **`identities/ec-secp256k1-validator-public-compressed-*.hex`** — validator secp256k1 identities The CL mounts `keys/` and `identities/` (as `/node/keys` and `/node/identities`, per the toml) plus `genesis.json`. Without these the consensus client cannot verify the validator set and the node will not start. ## Provenance (vendored, not hand-written) All files are taken verbatim from Plasma's **official** node-operator repo: [`PlasmaLaboratories/non-validator-templates`](https://github.com/PlasmaLaboratories/non-validator-templates) → `config/mainnet/` These are **public keys and chain config only** — no secrets. The node's own identity (secp256k1 keypair) and the engine JWT are generated at runtime by the `initialize-openssl` init container, not committed here. ## Verification `./update.sh` regenerated **clean (0 errors)**, filtered (`plasma.mainnet`) and full. The rendered `plasma/reth/plasma-mainnet-reth-pruned-trace.yml` mounts all four asset paths. branch SHA: `ba410ba7f69255322b4975d6bfe0b35391d63984`
claude added 1 commit 2026-07-13 16:40:09 +00:00
rob merged commit ba410ba7f6 into main 2026-07-13 16:53:29 +00:00
rob deleted branch width-plasma-mainnet 2026-07-13 16:53:29 +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: StakeSquid/ethereum-rpc-docker#40