Skip to content

feat: switch consensus client from op-node to base-consensus#985

Draft
meyer9 wants to merge 6 commits intomainfrom
meyer9/switch-to-base-consensus
Draft

feat: switch consensus client from op-node to base-consensus#985
meyer9 wants to merge 6 commits intomainfrom
meyer9/switch-to-base-consensus

Conversation

@meyer9
Copy link
Contributor

@meyer9 meyer9 commented Mar 5, 2026

Summary

  • Replace op-node (Go, from ethereum-optimism/optimism) with base-consensus (Rust, from base/base) as the consensus client across all execution client Docker images (reth, geth, nethermind)
  • Migrate all OP_NODE_* environment variables to BASE_NODE_* equivalents; remove vars not supported by Kona (syncmode, beacon archiver, engine kind, RPC server, snapshot log)
  • Consolidate versions.env to use BASE_NODE_* naming since the base repo provides multiple binaries (base-reth-node + base-consensus)

Changes

Core

  • base-consensus-entrypoint (new) — replaces op-node-entrypoint, exec's ./base-consensus node with BASE_NODE_* env vars
  • supervisord.conf[program:op-node][program:base-consensus]
  • versions.envBASE_RETH_NODE_*BASE_NODE_*, removed OP_NODE_* vars

Dockerfiles

  • reth/Dockerfile — single Rust stage builds both base-reth-node and base-consensus from one clone, Go stage removed
  • geth/Dockerfile — Go op-node stage → Rust base-consensus stage
  • nethermind/Dockerfile — Go op-node stage → Rust base-consensus stage

Environment

  • .env.mainnet / .env.sepoliaOP_NODE_*BASE_NODE_*, added OP_GETH_OP_NETWORK / OP_NETHERMIND_NETWORK for clients needing string network names
  • .env.sepolia-alpha — new env for chain 11763072 (gitignored)
  • docker-compose.yml — updated entrypoint reference

Execution entrypoints

  • reth/reth-entrypoint, geth/geth-entrypoint, nethermind/nethermind-entrypoint — auth vars updated to BASE_NODE_*

Testing

  • Docker build verified for reth with sepolia-alpha config

meyer9 and others added 5 commits March 5, 2026 10:22
Switch consensus client from op-node (Go) to base-consensus (Rust)
from the base repo. Add new base-consensus-entrypoint that uses
BASE_NODE_* env vars, update supervisord to run base-consensus,
and rename versions.env vars from BASE_RETH_NODE_* to BASE_NODE_*
since the repo now provides multiple binaries.

Ultraworked with [Sisyphus](http://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Consolidate reth Dockerfile to build both base-reth-node and
base-consensus from a single git clone of the base repo, removing
the separate Go build stage for op-node. Update reth-entrypoint
to use BASE_NODE_* auth env vars.

Ultraworked with [Sisyphus](http://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Replace Go op-node build stage with Rust base-consensus stage.
Update geth-entrypoint to use BASE_NODE_* auth vars and
OP_GETH_OP_NETWORK for --op-network flag since BASE_NODE_NETWORK
is now a numeric chain ID.

Ultraworked with [Sisyphus](http://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
…p-node

Replace Go op-node build stage with Rust base-consensus stage.
Update nethermind-entrypoint to use BASE_NODE_* auth vars and
OP_NETHERMIND_NETWORK for --config flag.

Ultraworked with [Sisyphus](http://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Translate all OP_NODE_* consensus vars to BASE_NODE_* equivalents
across .env.mainnet and .env.sepolia. Remove syncmode (not supported
by Kona), beacon archiver, engine kind, RPC, and snapshot log vars.
Add OP_NETHERMIND_NETWORK and OP_GETH_OP_NETWORK for execution
clients that need string network names. Update docker-compose.yml
to use base-consensus-entrypoint. Add .env.sepolia-alpha to .gitignore.

Ultraworked with [Sisyphus](http://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
@cb-heimdall
Copy link
Collaborator

cb-heimdall commented Mar 5, 2026

🟡 Heimdall Review Status

Requirement Status More Info
Reviews 🟡 0/1
Denominator calculation
Show calculation
1 if user is bot 0
1 if user is external 0
2 if repo is sensitive 0
From .codeflow.yml 1
Additional review requirements
Show calculation
Max 0
0
From CODEOWNERS 0
Global minimum 0
Max 1
1
1 if commit is unverified 1
Sum 2

Add BASE_NODE_P2P_BOOTNODES to .env.mainnet and .env.sepolia with
the same ENR bootnode records previously under OP_NODE_P2P_BOOTNODES.

Ultraworked with [Sisyphus](http://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
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.

3 participants