Skip to content

feat(devnet): migrate from op-node to base-consensus#933

Merged
danyalprout merged 6 commits intomainfrom
danyal/devnet-base-consensus-cli
Feb 28, 2026
Merged

feat(devnet): migrate from op-node to base-consensus#933
danyalprout merged 6 commits intomainfrom
danyal/devnet-base-consensus-cli

Conversation

@danyalprout
Copy link
Collaborator

@danyalprout danyalprout commented Feb 28, 2026

Description

  • Setup base consensus on the local devnet
  • Make several fixes to dockerfiles / setup
just devnet-status
./etc/scripts/devnet/status.sh

Component    | Unsafe     | Safe
-------------+------------+-----------
L1           | 25         | -
L2 Builder   | 39         | 25
L2 Client    | 39         | 25
L2 Ingress   | not running | -

@danyalprout danyalprout force-pushed the danyal/devnet-base-consensus-cli branch from 1f3021a to 66646b5 Compare February 28, 2026 09:45
@base base deleted a comment from github-actions bot Feb 28, 2026
@danyalprout danyalprout marked this pull request as ready for review February 28, 2026 09:47
@danyalprout danyalprout requested a review from refcell February 28, 2026 09:48
@danyalprout danyalprout force-pushed the danyal/drop-lazy-static-once-cell branch from 5227181 to 8f5972c Compare February 28, 2026 16:48
@danyalprout danyalprout force-pushed the danyal/devnet-base-consensus-cli branch from 66646b5 to fc84eac Compare February 28, 2026 16:49
danyalprout and others added 5 commits February 28, 2026 11:47
…n errors

The `useradd -r` flag skips home directory creation, causing reth-based
binaries to panic when trying to create log directories under ~/.cache/.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…chain

The check-no-std.sh script forced `cargo +stable` which uses whatever
stable toolchain is installed, but the workspace requires rust-version
1.93 (pinned via rust-toolchain.toml). Removing the override lets cargo
use the project's toolchain.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@danyalprout danyalprout force-pushed the danyal/drop-lazy-static-once-cell branch from 8f5972c to 31bc96b Compare February 28, 2026 17:47
@danyalprout danyalprout force-pushed the danyal/devnet-base-consensus-cli branch from 180139f to 2860e59 Compare February 28, 2026 17:47
@danyalprout danyalprout changed the base branch from danyal/drop-lazy-static-once-cell to main February 28, 2026 17:47
@cb-heimdall
Copy link
Collaborator

cb-heimdall commented Feb 28, 2026

✅ Heimdall Review Status

Requirement Status More Info
Reviews 2/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

@cb-heimdall
Copy link
Collaborator

🟡 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

The no-std job was installing the riscv target on the `stable` toolchain
via dtolnay/rust-toolchain, but cargo uses `1.93.1` from rust-toolchain.toml.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@github-actions
Copy link
Contributor

Review Summary

This PR migrates the devnet from op-node to base-consensus for both builder-cl and client-cl services, adds a new Dockerfile.consensus, simplifies the enclave Dockerfile by removing cargo-chef, and makes several infrastructure improvements across Dockerfiles.

No new issues found. The changes are straightforward and consistent with existing patterns in the codebase:

  • Dockerfile.consensus: Follows the same structure as other Rust Dockerfiles (builder, client, proposer, etc.). PROFILE handling with the dev -> debug directory mapping is consistent across all Dockerfiles.
  • Dockerfile.enclave simplification: Removing cargo-chef in favor of BuildKit mount caches is a valid approach. The cp to copy the binary out of the cache mount before it's unmounted is correctly handled.
  • docker-compose.yml: The CLI flag migration from op-node to base-consensus looks correct. The builder-cl correctly specifies --mode Sequencer, and the client-cl omits --mode which defaults to Validator — appropriate for a follower node. The --p2p.advertise.ip accepts hostnames via resolve_host() in crates/client/cli/src/p2p.rs, so passing Docker service names is valid.
  • Enode ID update: Both devnet/src/setup/container.rs and etc/docker/devnet-env are updated to the same new value (3255458e...), keeping them in sync.
  • useradd -m across Dockerfiles: Adding -m (create home directory) to all runtime images is a reasonable fix — some programs expect $HOME to exist.
  • CI no-std change: Removing +stable from cargo invocation is safe since rust-toolchain.toml pins to 1.93.1 (stable).
  • setup-l1.sh: Extracting .config from the genesis JSON via jq to produce chain-config.json is correct for the --l1-config-file flag that base-consensus expects.

Note: Previous inline review comments from an earlier run appear to be stale (e.g., flagging a jq install in Dockerfile.consensus that doesn't exist, and an enode ID mismatch that was actually fixed in this PR).

Copy link
Contributor

@refcell refcell left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Amazing ty

@danyalprout danyalprout added this pull request to the merge queue Feb 28, 2026
Merged via the queue into main with commit 990d9b9 Feb 28, 2026
22 of 23 checks passed
@danyalprout danyalprout deleted the danyal/devnet-base-consensus-cli branch February 28, 2026 19:38
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.

4 participants