Skip to content

Document op-reth as the primary execution client#2202

Open
palango wants to merge 12 commits into
mainfrom
palango/reth-migration-docs
Open

Document op-reth as the primary execution client#2202
palango wants to merge 12 commits into
mainfrom
palango/reth-migration-docs

Conversation

@palango

@palango palango commented Jun 19, 2026

Copy link
Copy Markdown
Contributor

Updates the node-operator docs for the op-geth → op-reth execution-client migration, based on the exact config in celo-l2-node-docker-compose#96.

op-reth is now the primary documented client. op-geth is kept but demoted into collapsed "Still running op-geth?" accordions and clearly-labeled legacy notes, so operators still on the old setup until their switch date are covered.

Key content changes

  • No snap sync — op-reth syncs by executing every block. Documents the two fresh-start paths: snapshot bootstrap (OP_RETH__SNAPSHOT=true, from snapshots.celo.org) or sync-from-scratch, both from an empty datadir.
  • Geth-format datadirs can't be reused — surfaced prominently in run-node, configuration, and maintenance; the L1-migration guide is reframed as a legacy op-geth path.
  • OP_GETH__*/PORT__OP_GETH_*OP_RETH__*, corrected NAT value list (publicip, no pmp), --l2.enginekind=reth, op-reth Prometheus metrics (replacing op-geth's InfluxDB push), op-reth container image, and relabeled execution-client bootnodes.

Files changed (12)

overview, architecture, run-node, archive-node, configuration, network-config, public-rpc-node, monitoring, maintenance, troubleshooting, migrate-node, and the op-geth-deprecation notice.

Verification

Two reviewer passes: one verified every env var, flag, port, and default against PR #96 (no invented details — op-reth sync-log wording was deliberately generalized because reth's exact log strings couldn't be confirmed); one checked consistency, op-geth demotion, and Mintlify/link correctness. Both findings were fixed, including a real one: the relabeled Celo Sepolia bootnode list was showing only 4 of the 6 OP_RETH__BOOTNODES.

Todos / follow-ups

  • Base branch: this branch is stacked on palango/op-reth-switch-dates (the PR targets it). That branch should merge first, or the two should land together.
  • RC image tag: network-config lists the PR's default op-reth image celo-v0.0.1-rc.1 (an RC). Bump it once a stable tag ships.
  • Sync-log wording: op-reth's sync progress is described generically ("executing blocks toward the chain tip") rather than with exact log strings — worth tightening against real reth logs if we want concrete examples.
  • Depends on celo-l2-node-docker-compose#96 being merged before these docs go live.

Closes https://github.com/celo-org/celo-blockchain-planning/issues/1392

palango added 7 commits June 19, 2026 13:35
The op-geth to op-reth migration is driven by Celo, not the Ethereum
Glamsterdam hardfork. Add the per-network switch dates to the deprecation
notice (Celo Sepolia June 24, 2026; Mainnet late July 2026) and remove
Glamsterdam references from the notice and operator guides.
Rewrite the core node-operator guides (run-node, archive-node,
configuration, overview, architecture) around op-reth: empty-datadir
start with optional snapshot bootstrap (OP_RETH__SNAPSHOT), no snap
sync, OP_RETH__* variables and ports, and --l2.enginekind=reth. The
op-geth flow is preserved in collapsed 'Still running op-geth?'
accordions for operators on the old setup until their switch date.
Network config (op-reth image + snapshots, execution-client bootnodes),
public RPC, troubleshooting, monitoring (Prometheus metrics, not the
InfluxDB push op-geth used), and maintenance (empty-datadir re-sync via
snapshot) now describe op-reth, with op-geth kept only as the legacy
path.
…ration legacy

The op-reth release is out, so the deprecation notice now links to the
op-reth run-node/archive/configuration guides instead of promising them.
Flag the L1-migration guide as a legacy op-geth path, since op-reth
cannot reuse a migrated (geth-format) datadir.
- migrate-node: drop op-geth 'snap sync' framing from the fresh-node
  pointer and refresh the stale post-hardfork snapshot promise
- network-config: list all six Celo Sepolia op-reth bootnodes (the
  relabeled list was showing only the four trusted peers)
op-reth has no sync-mode 'full', so the note distinguishing it from a
full node type no longer applies.
@palango palango requested a review from a team as a code owner June 19, 2026 13:19
@palango palango requested review from karlb and piersy and removed request for a team June 19, 2026 13:19
palango added 5 commits June 19, 2026 15:25
Drop the 'no snap sync' framing in favor of describing how op-reth syncs.
Fix the archive-node bootstrap text: NODE_TYPE=archive controls how much
historical state is retained, independent of the snapshot, which only
speeds up the initial sync.
Mainnet needs a snapshot for the pre-L2 (Celo L1) history op-reth cannot
re-execute; Celo Sepolia has no pre-L2 history and can sync from genesis.
Also link the Optimism op-reth config reference and drop the redundant
'current Celo setup' aside.
Restore the explicit sequencer flag in the transactions-not-executing
section, using op-reth's --rollup.sequencer (op-geth used
--rollup.sequencerhttp, which reth does not have).
@palango palango requested a review from katen0ra June 19, 2026 13:40
Base automatically changed from palango/op-reth-switch-dates to main June 19, 2026 15:27
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