ethereum-optimism / ethereum-optimism/optimism
op-node p2p issue on node restarts
- Dominant language
- Go
- Stars
- 6.5k
- Forks
- 4k
- Avg merge
- 2d 18h
- Merged PRs (30d)
- 134
Description
**Bug Description**
Replica nodes are failing to reconnect when the sequencer restarts.
**Steps to Reproduce**
We have a customer that has reported:
> v1.9.1 of the stack whenever the sequencer node restarts, our own validator nodes are unable to reconnect to it via p2p with the following error:
info dialing static peer addrs: [/ip4//tcp/9003]
warn error reconnecting to static peer err: failed to dial : no addresses
> Restarting the validator node allows it to reconnect again, which implies that the connectivity is not an issue, but the internal state of the validator node.
> This issue is reproducible every time the sequencer node is restarted, which prevents propagation of unsafe blocks to validator nodes and creates disruption on the whole chain.
**Expected behavior**
The nodes should reconnect.
**Environment Information:**
- Operating System: not sure
- Package Version (or commit hash): p-node v1.9.1
**Configurations:**
### Validator (Replica) Node
```
op_node_l1_eth_rpc: "wss://"
op_node_l1_rpc_kind: "standard"
op_node_l2_engine_auth: "/etc/secret-volume/jwt"
op_node_rollup_load_protocol_versions: "true"
op_node_rollup_halt: "major"
op_node_rollup_config: "/persistent/config/rollup.json"
op_node_sequencer_enabled: "false"
op_node_sequencer_l1_confs: "4"
op_node_verifier_l1_confs: "5"
op_node_log_format: "json"
op_node_log_level: "info"
op_node_p2p_disable: "false"
op_node_p2p_listen_ip: "0.0.0.0"
op_node_p2p_listen_tcp_port: "9003"
op_node_p2p_listen_udp_port: "9003"
op_node_p2p_peer_scoring: "none"
op_node_p2p_peer_banning: "false"
op_node_p2p_peer_banning_duration: "0h1m0s"
op_node_p2p_bootnodes: "enr:"
op_node_p2p_advertise_tcp: "9003"
op_node_p2p_advertise_udp: "9003"
op_node_p2p_sync_req_resp: "true"
op_node_p2p_static: ""
op_node_rpc_addr: "0.0.0.0"
op_node_rpc_port: "8545"
op_node_rpc_enable_admin: "true"
op_node_snapshot_log: "/persistent/snapshot.log"
op_node_metrics_enabled: "true"
op_node_metrics_addr: "0.0.0.0"
op_node_metrics_port: "7300"
op_node_pprof_enabled: "true"
op_node_altda_enabled: "false"
op_node_altda_da_service: "true"
op_node_altda_da_server: ""
op_node_l1_beacon: "https://"
op_node_p2p_priv_raw: ""
op_node_l2_engine_rpc: "http://"
```
**Logs:**
```
info dialing static peer addrs: [/tcp/9003]
warn error reconnecting to static peer err: failed to dial : no addresses
```
**Additional context**
Add any other context about the problem here.
---
⚠️ **Notice:** Issues that do not include the following sections will be subject to closure:
- Bug Description
- Steps to Reproduce
- Environment Information
Please ensure all required sections are filled out accurately to expedite the debugging process and improve issue resolution efficiency.
Contributor guide
Research direction
Start with the op-node p2p handling for static peers and reproduce the reported restart sequence using the supplied validator configuration and logs. Trace the “failed to dial ... no addresses” condition after the sequencer restarts. Done means replica nodes reconnect without restarting the validator and unsafe blocks can propagate again.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- distributed-systems, networking
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100