- Update dbis_core, cross-chain-pmm-lps, explorer-monorepo, metamask-integration, pr-workspace/chains - Omit embedded publish git dirs and empty placeholders from index Made-with: Cursor
8.1 KiB
OP Stack Standard Rollup — Ethereum mainnet E2E (Superchain)
Last updated: 2026-04-01
Purpose: Operator end-to-end path for a greenfield OP Stack L2 on Ethereum mainnet targeting Standard Rollup status (superchain_level = 2) in superchain-registry. Runs in parallel to Besu Chain 138; see OP_STACK_L2_AND_BESU138_BRIDGE_NOTES.md.
Scaffolding: config/op-stack-superchain/ · Scripts: scripts/op-stack/README.md
Official references:
- Deploy the OP Stack
- Blockspace and Standard Rollup Charters
- superchain-registry
- op-deployer
- Adding a chain (registry ops)
- Standard Rollup Charter
Phase 0 — Prerequisites (before mainnet)
-
Freeze governance inputs
- Run
bash scripts/op-stack/fetch-standard-mainnet-toml.shand diff against prior cache. - Record pins in
config/op-stack-superchain/pinned-versions.manifest.example.yaml→ copy todeployed/pinned-versions.manifest.yaml(gitignored).
- Run
-
L2 chain ID
- Choose a unique L2 chain ID distinct from Besu
138unless you explicitly accept tooling collision. Document in the manifest.
- Choose a unique L2 chain ID distinct from Besu
-
Keys and roles
- Complete
config/op-stack-superchain/key-custody-checklist.example.mdinternally. - Align admin/upgrade roles with standard-config-roles-mainnet.toml.
- Complete
-
Capacity
- L1 ETH for deployment, batch posting, proposals, challenger assumptions.
- HA capacity for sequencer pair, batcher, proposer, challenger, replicas.
-
Standard Rollup constraints (summary)
- Ethereum canonical DA (not alt-DA).
- No custom modified system contracts for Standard status.
- OP Stack version / bytecode must match governance-approved standard-versions-mainnet.toml.
Recommended operator landing zone (Proxmox)
To keep deployment/runtime work off an operator workstation, provision the dedicated OP Stack CTs on r630-02 using thin5:
- 5751
op-stack-deployer-1—192.168.11.69—op-deployer,op-validator, manifest and artifact handling - 5752
op-stack-ops-1—192.168.11.70— sequencer/runtime bootstrap, service envs, systemd staging
Create and bootstrap them with:
bash scripts/deployment/provision-op-stack-operator-lxcs.sh
That script installs baseline tooling, enables SSH for opuser, and copies the repo's OP Stack scaffolding into /opt/op-stack-bootstrap/ inside each CT.
Live landing-zone state as of 2026-04-01:
- 5751
op-stack-deployer-1is provisioned onr630-02(192.168.11.12) at192.168.11.69 - 5752
op-stack-ops-1is provisioned onr630-02(192.168.11.12) at192.168.11.70 - the bootstrap cache is already seeded inside
/opt/op-stack-bootstrap/config/op-stack-superchain/cache/, so a rerun does not need to re-fetch TOMLs unlessOP_STACK_REFRESH_TOMLS=1
Phase 1 — Sepolia rehearsal (gate before mainnet)
Use the same op-deployer / contract release you intend for mainnet.
-
Install tooling per Optimism chain operator docs (
op-deployer,op-node,op-reth,op-batcher,op-proposer,op-challenger,op-validator— exact packages follow your pinned version). Keepop-gethonly as a temporary legacy fallback. -
Deploy L1 system contracts + L2 genesis on Sepolia via
op-deployer(follow current CLI in upstream docs). -
Run
op-validatoragainst generated artifacts; fix until clean. -
Start sequencer (
op-node+op-reth), op-batcher, op-proposer, op-challenger. -
E2E on test L2: deposit / withdraw, failover drill (sequencer or batcher), 24–72h soak.
-
Exit gate: signed-off validator output, soak logs, frozen version manifest committed to CMDB.
Checklist: bash scripts/op-stack/print-sepolia-rehearsal-checklist.sh
Phase 2 — Mainnet deploy
-
Verify manifest pins still match mainnet
standard-versions-mainnet.toml. -
Run
op-deployeragainst Ethereum mainnet; capture all L1 addresses and L2 genesis / rollup config. -
Run
op-validatoron mainnet artifacts before registry PR. -
Record non-secret outputs under
config/op-stack-superchain/deployed/(seedeployed/README.md).
Checklist: bash scripts/op-stack/print-mainnet-deploy-checklist.sh
Phase 3 — Mainnet operations
-
Start sequencer (HA as required), batcher, proposer, challenger.
-
Expose replica RPC (and optional WS) with rate limits and monitoring: sync lag, L1 gas, batch submission, proposals, challenger health.
-
Mainnet E2E: small production deposit/withdraw; document comms and rollback posture.
Checklist: bash scripts/op-stack/print-mainnet-ops-checklist.sh
- systemd templates:
op-stack-op-reth.example.service(preferred execution),op-stack-sequencer.example.service(legacyop-gethfallback),op-stack-op-node.example.service(consensus),op-stack-batcher.example.service,op-stack-proposer.example.service,op-stack-challenger.example.service— adjustUser,WorkingDirectory,EnvironmentFile, and binary paths to match your install.
Phase 4 — Superchain registry (Standard status)
-
Follow Adding a chain: local validation, then PR to superchain-registry.
-
Complete Optimism Foundation off-chain checks (unique chain ID, security configuration, governance authenticity) per charter / docs.
-
Target
superchain_level = 2only after automated + governance promotion. -
After merge, use
--network/--op-networkflags per registry hard-fork inheritance docs.
Checklist script: bash scripts/op-stack/registry-pr-checklist.sh
Phase 5 — Besu Chain 138 (optional)
Not required for Standard Rollup. See OP_STACK_L2_AND_BESU138_BRIDGE_NOTES.md. XDC-Zero remains CHAIN138_XDC_ZERO_BRIDGE_RUNBOOK.md (XDC ↔ Besu 138).
E2E completion table
| Gate | Evidence |
|---|---|
| Sepolia | op-validator OK, soak logs, frozen manifest |
| Mainnet L1/L2 | Address list + rollup/genesis artifacts |
| Live stack | Sequencer, batcher, proposer, challenger healthy |
| Mainnet validate | op-validator on mainnet configs |
| Registry | PR merged; superchain_level = 2 when promoted |
| Ops | Runbooks, monitoring, incident contacts |
Related repo docs
| Topic | Doc |
|---|---|
| Besu Chain 138 + XDC | CHAIN138_XDC_ZERO_BRIDGE_RUNBOOK.md |
| CCIP (138 ↔ public L1/L2s) | ../07-ccip/, smom-dbis-138 deployment runbooks |