-
Notifications
You must be signed in to change notification settings - Fork 97
Description
Summary
When using op-node:v1.16.1 with optimism-package (commit 7bef190d7c0b9f619438ed08b17bd5e5f51e72ff), the op-node service fails to start with the error:
failed to setup: unable to create the rollup node config: failed to read chain spec: open : no such file or directory
Environment
- optimism-package version:
7bef190d7c0b9f619438ed08b17bd5e5f51e72ff - op-node version:
v1.16.1 - op-deployer version:
v0.5.0-rc.2 - Kurtosis version: Latest
Steps to Reproduce
-
Configure
network-config.yamlwithop-node:v1.16.1:chains: op-rollup-l2: participants: sequencer-1: cl: image: "us-docker.pkg.dev/oplabs-tools-artifacts/images/op-node:v1.16.1"
-
Run the devnet:
kurtosis run --enclave op-devnet "github.com/ethpandaops/optimism-package@7bef190d7c0b9f619438ed08b17bd5e5f51e72ff" --args-file network-config.yaml -
Observe that
op-nodefails to start during the CL launch phase.
Here is network-config.yaml.
Note that I'm currently facing this issue - ethereum-optimism/optimism#18222 regarding op-deployer and op-contracts.
So, the local artifacts are specified in op_contract_deployer_params.l1_artifacts_locator/l2_artifacts_locator.
Expected Behavior
The op-node service should start successfully and connect to the L2 execution layer.
Actual Behavior
The op-node container fails immediately with:
t=2025-11-08T08:27:50+0000 lvl=crit msg="Application failed" message="failed to setup: unable to create the rollup node config: failed to read chain spec: open : no such file or directory"
Root Cause Analysis
Starting with op-node:v1.16.1, the binary requires an explicit L1 chain configuration file to be provided via the --rollup.l1-chain-config flag. This is necessary for the node to read the L1 b
lob schedule configuration.
However, the current optimism-package Starlark code (specifically src/cl/op-node/launcher.star) does not:
- Include the
--rollup.l1-chain-configflag in theop-nodecommand - Copy the L1 chainspec file (
chainspec.jsonfromel_cl_genesis_data) into theop-deployer-configsfiles artifact - Set the
l1ChainConfigPathfield in the generatedrollup-12345.jsonfile
When op-node tries to read the chain spec, it attempts to open an empty path (""), resulting in the "no such file or directory" error.
Evidence
-
op-node flags.go (from op-node source):
L1ChainConfig = &cli.PathFlag{ Name: "rollup.l1-chain-config", Usage: "Path to .json file with the chain configuration for the L1...", }
-
op-node service.go (from op-node source, line 330):
return nil, fmt.Errorf("failed to read chain spec: %w", err)
-
optimism-package launcher.star (line 168):
Theop-nodecommand construction does not include--rollup.l1-chain-config. -
Generated rollup-12345.json:
The file does not containchainSpecPathorl1ChainConfigPathfields.