Skip to content

reth-bench-compare tool fails on --chain ... #38

@Vui-Chee

Description

@Vui-Chee

Describe the bug

reth-bench-compare expects an integer (chain id) or string (canonical chain name) when comparing 2 branches in the reth codebase. Since xlayer-testnet is not part of alloy-chains NamedChain enum, we have to pass in an integer for our custom chain ID when executing reth-bench-compare.

However, this integer chain ID is then passed as an argument into reth node, causing the node to fail before any real benchmarking test can begin, since it expects some canonical chain name to be passed in.

It should be noted that reth-bench-compare is AI generated. See here

op-reth node --help
...
--chain <CHAIN_OR_PATH>
          The chain this node is running.
          Possible values are either a built-in chain or the path to a chain specification file.

          Built-in chains:
              optimism, optimism_sepolia, optimism-sepolia, base, base_sepolia, base-sepolia, xlayer-mainnet, xlayer-testnet, arena-z, arena-z-sepolia, automata, base-devnet-0-sepolia-dev-0, bob, boba-sepolia, boba, camp-sepolia, celo, creator-chain-testnet-sepolia, cyber, cyber-sepolia, ethernity, ethernity-sepolia, fraxtal, funki, funki-sepolia, hashkeychain, ink, ink-sepolia, lisk, lisk-sepolia, lyra, metal, metal-sepolia, mint, mode, mode-sepolia, oplabs-devnet-0-sepolia-dev-0, orderly, ozean-sepolia, pivotal-sepolia, polynomial, race, race-sepolia, radius_testnet-sepolia, redstone, rehearsal-0-bn-0-rehearsal-0-bn, rehearsal-0-bn-1-rehearsal-0-bn, settlus-mainnet, settlus-sepolia-sepolia, shape, shape-sepolia, silent-data-mainnet, snax, soneium, soneium-minato-sepolia, sseed, swan, swell, tbn, tbn-sepolia, unichain, unichain-sepolia, worldchain, worldchain-sepolia, xterio-eth, zora, zora-sepolia, dev

          [default: optimism]

Steps to reproduce

# Actual chain ID is masked
cargo r -p reth-bench-compare -- --baseline-ref dev --feature-ref $FEATURE_BRANCH
--datadir /data/op-reth --rpc-url $RPC_URL --blocks 10 --chain 123

results in error:

2025-11-13T09:28:28.508234Z  INFO reth_bench_compare::node: Starting reth node...
2025-11-13T09:28:28.508255Z DEBUG reth_bench_compare::node: Executing reth command: Command { std: "./reth-bench-compare/bin/op-reth_e5f19c3c" "node" "--chain" "123" "--datadir" "/Users/siewvuichee/Downloads/data/op-reth" "--engine.accept-execution-requests-hash" "--metrics" "0.0.0.0:5005" "--http" "--http.api" "eth" "--disable-discovery" 
"--trusted-only" "--debug.startup-sync-state-idle", kill_on_drop: false }
2025-11-13T09:28:28.509524Z  INFO reth_bench_compare::node: Reth node started with PID: 90582 (binary: ./reth-bench-compare/bin/op-reth_e5f19c3c)
2025-11-13T09:28:28.509840Z  INFO reth_bench_compare::node: Reth node logs will be saved to: "./reth-bench-compare/results/20251113_092058/warmup/reth_node.log"
2025-11-13T09:28:29.891944Z DEBUG reth_bench_compare::node: [RETH] error: Invalid value '123' for --chain <CHAIN_OR_PATH>: No such file or directory (os error 2).
2025-11-13T09:28:29.892662Z DEBUG reth_bench_compare::node: [RETH]     [possible values: optimism,optimism_sepolia,optimism-sepolia,base,base_sepolia,base-sepolia,xlayer-mainnet,xlayer-testnet,arena-z,arena-z-sepolia,automata,base-devnet-0-sepolia-dev-0,bob,boba-sepolia,boba,camp-sepolia,celo,creator-chain-testnet-sepolia,cyber,cyber-sepolia,ethernity,ethernity-sepolia,fraxtal,funki,funki-sepolia,hashkeychain,ink,ink-sepolia,lisk,lisk-sepolia,lyra,metal,metal-sepolia,mint,mode,mode-sepolia,oplabs-devnet-0-sepolia-dev-0,orderly,ozean-sepolia,pivotal-sepolia,polynomial,race,race-sepolia,radius_testnet-sepolia,redstone,rehearsal-0-bn-0-rehearsal-0-bn,rehearsal-0-bn-1-rehearsal-0-bn,settlus-mainnet,settlus-sepolia-sepolia,shape,shape-sepolia,silent-data-mainnet,snax,soneium,soneium-minato-sepolia,sseed,swan,swell,tbn,tbn-sepolia,unichain,unichain-sepolia,worldchain,worldchain-sepolia,xterio-eth,zora,zora-sepolia,dev]
2025-11-13T09:28:33.510803Z  INFO reth_bench_compare::node: Waiting for node to be ready and synced...

Platform(s)

Mac (Apple Silicon)

Container Type

Not running in a container

What version/commit are you on?

e5f19c3 (dev)

What database version are you on?

Current database version: 2
Local database version: 2

Which chain / network are you on?

xlayer-testnet

What type of node are you running?

samply record target/profiling/op-reth node \
    --datadir=/data/op-reth \ # testnet historical data
    --chain=xlayer-testnet \
    --http \
    --http.corsdomain=\* \
    --http.port=8545 \
    --http.addr=0.0.0.0 \
    --http.api=web3,debug,eth,txpool,net,miner,admin \
    --ws \
    --ws.addr=0.0.0.0 \
    --ws.port=7546 \
    --ws.origins=\* \
    --ws.api=web3,debug,eth,txpool,net,miner,admin \
    --disable-discovery \
    --max-outbound-peers=2 \
    --max-inbound-peers=2 \
    --authrpc.addr=0.0.0.0 \
    --authrpc.port=8551 \
    --authrpc.jwtsecret=./jwt.txt -vvv

What prune config do you use, if any?

No response

If you've built Reth from source, provide the full command you used

No response

Code of Conduct

  • I agree to follow the Code of Conduct

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions