ethereum-optimism / ethereum-optimism/optimism

op-node p2p issue on node restarts

Open
#12,113 3 comments 0 reactions 0 assignees View on GitHub
A-op-node
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.