optimism: Can not start new node with `./bin/op-node` command
Describe the bug I’m following the offical docs. but I’m stucking at this step
To Reproduce I used command following:
./bin/op-node \ ✔ ⬢ 16.19.1 1.20.2 16:07:49
--l2=http://localhost:8551 \
--l2.jwt-secret=./jwt.txt \
--sequencer.enabled \
--sequencer.l1-confs=3 \
--verifier.l1-confs=3 \
--rollup.config=./rollup.json \
--rpc.addr=0.0.0.0 \
--rpc.port=8547 \
--p2p.listen.ip=0.0.0.0 \
--p2p.listen.tcp=9003 \
--p2p.listen.udp=9003 \
--rpc.enable-admin \
--p2p.sequencer.key="my_sequencer_key" \
--l1="https://endpoints.omniatech.io/v1/eth/goerli/public" \
--l1.rpckind="alchemy"
Then I get the following errors:
ERROR[03-09|16:07:56.953] failed to fetch runtime config data err="failed to fetch unsafe block signing address from system config: failed to verify retrieved proof against state root: value 0 in storage proof does not match proven value at key 0x65a7ed542fb37fe237fdfbdd70b31598523fe5b32879e307bae27a0bd9581c08 (path 31a88f3936348d602f3078126bdcd162c575cb17fb9bbfe2dab00b167bd295c3)"
Screenshots
If applicable, add screenshots to help explain your problem.
System Specs:
- OS: MacOS 13.2.1
- Chip M1
Additional Context
I found 0x65a7ed542fb37fe237fdfbdd70b31598523fe5b32879e307bae27a0bd9581c08
and 31a88f3936348d602f3078126bdcd162c575cb17fb9bbfe2dab00b167bd295c3
from the ERROR above are hardcoded in the source code, so am I making a mistake at some step?
About this issue
- Original URL
- State: closed
- Created a year ago
- Comments: 18 (6 by maintainers)
The header-fetch error happens when running old op-node software that didn’t support the L1 ethereum Shanghai/Capella upgrade yet, and thus fails to verify the blocks past that upgrade (upgrade was March 14 for Goerli L1).
The signing-address fetch error (with the “failed to verify retrieved proof”) is unrelated, and happens when the L1 RPC does not fully support
eth_getProof
(common, happens with Erigon and node providers that use Erigon), or if theSystemConfig
is not present on the L1 (if you are trying to run an alt op-chain this may be the case). A work-around is to use the--l1.trustrpc
flag, to fallback to direct retrieval of the system configuration data, and not verify with a proof. If you trust the RPC you use for L1, that’s a valid way to load system configuration. If you do not trust the L1 RPC, and they do not provide support foreth_getProof
, you should switch to a different RPC provider.@protolambda I’m getting the same error as reported by OP (no pun intended) in the issue.
The contracts are successfully deployed to Polygon (although I went into that timeout issue and had to do manual txs using MetaMask rather than “cast”), as expected for an EVM-native chain. Deployer/Admin: https://polygonscan.com/address/0x53d44EbC95990fF2bDd2Fd427C4E9AEE8e76CB0c
So, L1’s network ID is 137 and L2’s ID is 133.
I don’t know if I can call it a “custom L2” as I didn’t change - beyond the necessary customizations guided by the OP Stack Docs - the codebase , available here and here.
@danimesq and where/how is the L2 deployed? Is it a custom L2? Optimism Bedrock does not officially support Polygon as L1. You may have to change the block-header and/or state-proof verification to be compatible with Polygon.