op-replica icon indicating copy to clipboard operation
op-replica copied to clipboard

Nonce too high error.

Open jornx opened this issue 2 years ago • 8 comments

Starting today I suddenly keep getting this error when running my node.

l2geth-replica_1        | INFO [03-06|16:38:55.310] Syncing transaction range                start=4175326 end=4177162 backend=l2
l2geth-replica_1        | DEBUG[03-06|16:38:55.311] Applying transaction to tip              index=4175326 hash=0xd25d9918fe9d7927d6c14d41c5f925480c48dd985d0e3bb0377199caf226ee55 origin=sequencer
l2geth-replica_1        | DEBUG[03-06|16:38:55.312] Attempting to commit rollup transaction  hash=0xd25d9918fe9d7927d6c14d41c5f925480c48dd985d0e3bb0377199caf226ee55
l2geth-replica_1        | ERROR[03-06|16:38:55.312] Problem committing transaction           msg="nonce too high"
l2geth-replica_1        | ERROR[03-06|16:38:55.312] Got error waiting for transaction to be added to chain msg="nonce too high"
l2geth-replica_1        | ERROR[03-06|16:38:55.312] Could not verify                         error="Verifier cannot sync transactions with BackendL2: Verifier cannot sync transactions with backend l2: Cannot sync transactions with backend l2: Cannot apply transaction: nonce too high"
l2geth-replica_1        | DEBUG[03-06|16:38:55.755] Served eth_getBlockByNumber              conn=172.19.0.3:59580 reqid=863 t=132.468µs
l2geth-replica_1        | INFO [03-06|16:38:56.310] Syncing transaction range                start=4175326 end=4177163 backend=l2
l2geth-replica_1        | DEBUG[03-06|16:38:56.311] Applying transaction to tip              index=4175326 hash=0xd25d9918fe9d7927d6c14d41c5f925480c48dd985d0e3bb0377199caf226ee55 origin=sequencer
l2geth-replica_1        | DEBUG[03-06|16:38:56.311] Attempting to commit rollup transaction  hash=0xd25d9918fe9d7927d6c14d41c5f925480c48dd985d0e3bb0377199caf226ee55
l2geth-replica_1        | ERROR[03-06|16:38:56.312] Problem committing transaction           msg="nonce too high"
l2geth-replica_1        | ERROR[03-06|16:38:56.312] Got error waiting for transaction to be added to chain msg="nonce too high"
l2geth-replica_1        | ERROR[03-06|16:38:56.312] Could not verify                         error="Verifier cannot sync transactions with BackendL2: Verifier cannot sync transactions with backend l2: Cannot sync transactions with backend l2: Cannot apply transaction: nonce too high"
l2geth-replica_1        | DEBUG[03-06|16:38:56.760] Served eth_getBlockByNumber              conn=172.19.0.3:59582 reqid=864 t=171.777µs
l2geth-replica_1        | INFO [03-06|16:38:57.309] Syncing transaction range                start=4175326 end=4177163 backend=l2
l2geth-replica_1        | DEBUG[03-06|16:38:57.311] Applying transaction to tip              index=4175326 hash=0xd25d9918fe9d7927d6c14d41c5f925480c48dd985d0e3bb0377199caf226ee55 origin=sequencer
l2geth-replica_1        | DEBUG[03-06|16:38:57.311] Attempting to commit rollup transaction  hash=0xd25d9918fe9d7927d6c14d41c5f925480c48dd985d0e3bb0377199caf226ee55
l2geth-replica_1        | ERROR[03-06|16:38:57.312] Problem committing transaction           msg="nonce too high"
l2geth-replica_1        | ERROR[03-06|16:38:57.312] Got error waiting for transaction to be added to chain msg="nonce too high"
l2geth-replica_1        | ERROR[03-06|16:38:57.312] Could not verify                         error="Verifier cannot sync transactions with BackendL2: Verifier cannot sync transactions with backend l2: Cannot sync transactions with backend l2: Cannot apply transaction: nonce too high"
l2geth-replica_1        | DEBUG[03-06|16:38:57.764] Served eth_getBlockByNumber              conn=172.19.0.3:59584 reqid=865 t=165.284µs

I am running an Optimism replica node, cloned op-replica and everything worked fine for weeks, until suddenly today when I rebooted, I got all these error. Anyone any idea what could have gone wrong?

jornx avatar Mar 06 '22 16:03 jornx

Thanks for the report. Can you share the version of the data-transport-layer and l2geth containers? Also thens the containers are using 🙏

optimisticben avatar Mar 07 '22 13:03 optimisticben

ethereumoptimism/replica-healthcheck 8b8b979a1761 3 weeks ago 845MB ethereumoptimism/data-transport-layer 0.5.16 09df0408f1c9 4 weeks ago 912MB ethereumoptimism/l2geth 0.5.11 299387494a86 4 weeks ago 43.8MB

These were the versions I was running. Will now update to latest versions, and see if that will work.

jornx avatar Mar 07 '22 18:03 jornx

Now updated to the latest versions:

REPOSITORY                              TAG              IMAGE ID       CREATED        SIZE
ethereumoptimism/data-transport-layer   latest           ba9b21fc27a1   11 hours ago   839MB
ethereumoptimism/replica-healthcheck    latest           c4543115d5fa   11 hours ago   834MB
ethereumoptimism/l2geth                 latest           0706d9e8e03b   11 hours ago   43.8MB
Still same errors:
l2geth-replica_1        | DEBUG[03-07|18:32:47.454] Served eth_getBlockByNumber              conn=172.23.0.4:50268 reqid=46 t=144.136µs
l2geth-replica_1        | INFO [03-07|18:32:47.638] Syncing transaction range                start=4175326 end=4212315 backend=l2
l2geth-replica_1        | DEBUG[03-07|18:32:47.640] Applying transaction to tip              index=4175326 hash=0xd25d9918fe9d7927d6c14d41c5f925480c48dd985d0e3bb0377199caf226ee55 origin=sequencer
l2geth-replica_1        | DEBUG[03-07|18:32:47.640] Attempting to commit rollup transaction  hash=0xd25d9918fe9d7927d6c14d41c5f925480c48dd985d0e3bb0377199caf226ee55
l2geth-replica_1        | ERROR[03-07|18:32:47.640] Problem committing transaction           msg="nonce too high"
l2geth-replica_1        | ERROR[03-07|18:32:47.640] Got error waiting for transaction to be added to chain msg="nonce too high"
l2geth-replica_1        | ERROR[03-07|18:32:47.640] Could not verify                         error="Verifier cannot sync transactions with BackendL2: Verifier cannot sync transactions with backend l2: Cannot sync transactions with backend l2: Cannot apply transaction: nonce too high"
l2geth-replica_1        | DEBUG[03-07|18:32:48.457] Served eth_getBlockByNumber              conn=172.23.0.4:50270 reqid=47 t=165.786µs
l2geth-replica_1        | INFO [03-07|18:32:48.638] Syncing transaction range                start=4175326 end=4212318 backend=l2
l2geth-replica_1        | DEBUG[03-07|18:32:48.640] Applying transaction to tip              index=4175326 hash=0xd25d9918fe9d7927d6c14d41c5f925480c48dd985d0e3bb0377199caf226ee55 origin=sequencer
l2geth-replica_1        | DEBUG[03-07|18:32:48.640] Attempting to commit rollup transaction  hash=0xd25d9918fe9d7927d6c14d41c5f925480c48dd985d0e3bb0377199caf226ee55
l2geth-replica_1        | ERROR[03-07|18:32:48.640] Problem committing transaction           msg="nonce too high"
l2geth-replica_1        | ERROR[03-07|18:32:48.640] Got error waiting for transaction to be added to chain msg="nonce too high"
l2geth-replica_1        | ERROR[03-07|18:32:48.641] Could not verify                         error="Verifier cannot sync transactions with BackendL2: Verifier cannot sync transactions with backend l2: Cannot sync transactions with backend l2: Cannot apply transaction: nonce too high"

jornx avatar Mar 07 '22 18:03 jornx

Did you update the l2geth instance for the Berlin hardfork? https://changelog.optimism.io/2022/02/15/mainnet-berlin-hardfork.html

optimisticben avatar Mar 08 '22 13:03 optimisticben

from my l2geth-replica.env:

L2GETH_GENESIS_URL=https://storage.googleapis.com/optimism/mainnet/genesis-berlin.json
L2GETH_GENESIS_HASH=0x106b0a3247ca54714381b1109e82cc6b7e32fd79ae56fbcc2e7b1541122f84ea
L2GETH_BERLIN_ACTIVATION_HEIGHT=3950000

So yes would say it's updated right?

jornx avatar Mar 08 '22 15:03 jornx

You have to geth init that file to activate it.

You can check like https://github.com/optimisticben/op-replica/blob/main/kustomize/replica/bases/configmaps/check-for-chaindata-berlin.sh#L25-L31

We updated the script, previously it only checked the chaindata directory existed, the updated script checks for the berlin activation height in the datadir. So, an old script (or none) would not automatically apply initialization.

optimisticben avatar Mar 08 '22 17:03 optimisticben

optimism@ip:~/op-replica$ docker-compose logs -f l2geth-replica
Attaching to op-replica_l2geth-replica_1
l2geth-replica_1        | + echo running /scripts/check-for-chaindata-berlin.sh
l2geth-replica_1        | + GETH_DATA_DIR=/geth
l2geth-replica_1        | + GETH_CHAINDATA_DIR=/geth/geth/chaindata
l2geth-replica_1        | + GETH_KEYSTORE_DIR=/geth/keystore
l2geth-replica_1        | + '[' '!' -d /geth/keystore ]
l2geth-replica_1        | running /scripts/check-for-chaindata-berlin.sh
l2geth-replica_1        | + '[' '!' -d /geth/geth/chaindata ]
l2geth-replica_1        | + echo '/geth/geth/chaindata exists, checking for hardfork.'
l2geth-replica_1        | + echo 'Chain config:'
l2geth-replica_1        | + geth dump-chain-cfg '--datadir=/geth'
l2geth-replica_1        | /geth/geth/chaindata exists, checking for hardfork.
l2geth-replica_1        | Chain config:
l2geth-replica_1        | INFO [03-09|17:04:32.714] Maximum peer count                       ETH=50 LES=0 total=50
l2geth-replica_1        | INFO [03-09|17:04:32.714] Smartcard socket not found, disabling    err="stat /run/pcscd/pcscd.comm: no such file or directory"
l2geth-replica_1        | INFO [03-09|17:04:32.715] Allocated cache and file handles         database=/geth/geth/chaindata cache=16.00MiB handles=16
l2geth-replica_1        | {
l2geth-replica_1        |   "chainId": 10,
l2geth-replica_1        |   "homesteadBlock": 0,
l2geth-replica_1        |   "eip150Block": 0,
l2geth-replica_1        |   "eip150Hash": "0x0000000000000000000000000000000000000000000000000000000000000000",
l2geth-replica_1        |   "eip155Block": 0,
l2geth-replica_1        |   "eip158Block": 0,
l2geth-replica_1        |   "byzantiumBlock": 0,
l2geth-replica_1        |   "constantinopleBlock": 0,
l2geth-replica_1        |   "petersburgBlock": 0,
l2geth-replica_1        |   "istanbulBlock": 0,
l2geth-replica_1        |   "muirGlacierBlock": 0,
l2geth-replica_1        |   "berlinBlock": 3950000,
l2geth-replica_1        |   "clique": {
l2geth-replica_1        |     "period": 0,
l2geth-replica_1        |     "epoch": 30000
l2geth-replica_1        |   }
l2geth-replica_1        | }
l2geth-replica_1        | + geth dump-chain-cfg '--datadir=/geth'
l2geth-replica_1        | + grep -q '"berlinBlock": 3950000'
l2geth-replica_1        | INFO [03-09|17:04:32.806] Maximum peer count                       ETH=50 LES=0 total=50
l2geth-replica_1        | INFO [03-09|17:04:32.806] Smartcard socket not found, disabling    err="stat /run/pcscd/pcscd.comm: no such file or directory"
l2geth-replica_1        | INFO [03-09|17:04:32.807] Allocated cache and file handles         database=/geth/geth/chaindata cache=16.00MiB handles=16
l2geth-replica_1        | Hardfork already activated.
l2geth-replica_1        | + echo 'Hardfork already activated.'

I did geth init and if I look here the hardfork is activated, but I still have the nonce errors.

jornx avatar Mar 09 '22 17:03 jornx

Did the geth init run after the activation height 3950000?

If so, you may need to resync.

optimisticben avatar Mar 11 '22 17:03 optimisticben