go-ethereum/p2p
Charles Dusek 0962686a6e p2p/discover: resolve DNS hostnames for bootstrap nodes
Since PR #30822 moved DNS resolution from parse-time to dial-time,
bootstrap nodes specified with DNS hostnames (e.g.
enode://<key>@hostname:30303) fail with "missing IP address" because
setFallbackNodes calls ValidateComplete which requires a valid IP.

This is a regression from v1.14.x that blocks multiple L2 networks
(Omni, Optimism, Unichain) from upgrading to v1.15+.

Fix by resolving DNS hostnames in setFallbackNodes before validation,
mirroring the dnsResolveHostname pattern used for static nodes in the
dial scheduler. The resolved node retains its hostname for potential
future periodic re-resolution.

Fixes #31208
2026-03-27 00:09:24 -05:00
..
discover p2p/discover: resolve DNS hostnames for bootstrap nodes 2026-03-27 00:09:24 -05:00
dnsdisc crypto/keccak: vendor in golang.org/x/crypto/sha3 (#33323) 2026-02-03 14:55:27 -07:00
enode crypto/keccak: vendor in golang.org/x/crypto/sha3 (#33323) 2026-02-03 14:55:27 -07:00
enr p2p/enode: add quic ENR entry (#30283) 2024-09-13 23:47:18 +02:00
msgrate p2p: using math.MaxInt32 from go std lib (#32357) 2025-08-20 16:22:21 -06:00
nat p2p/nat: fix err shadowing in UPnP addAnyPortMapping (#33355) 2025-12-08 15:02:24 +01:00
netutil p2p: using testing.B.Loop (#32664) 2025-09-19 16:38:36 -06:00
pipes all: update license comments and AUTHORS (#31133) 2025-02-05 23:01:17 +01:00
rlpx crypto/keccak: vendor in golang.org/x/crypto/sha3 (#33323) 2026-02-03 14:55:27 -07:00
tracker p2p/tracker: fix crash in clean when tracker is stopped (#33940) 2026-03-03 12:54:24 +01:00
config.go p2p: update MaxPeers comment (#32414) 2025-08-19 20:14:11 +08:00
config_toml.go p2p: support configuring NAT in TOML file (#31041) 2025-01-22 09:29:34 +01:00
dial.go p2p: track in-progress inbound node IDs (#33198) 2026-03-20 05:52:15 +01:00
dial_test.go p2p: track in-progress inbound node IDs (#33198) 2026-03-20 05:52:15 +01:00
message.go p2p: use atomic types (#27764) 2023-08-01 23:20:52 +02:00
message_test.go p2p: move rlpx into separate package (#21464) 2020-09-22 10:17:39 +02:00
metrics.go p2p: add metrics for inbound connection errors (#31652) 2025-05-07 15:34:52 +02:00
peer.go p2p: remove todo comment, as it's unnecessary (#32397) 2025-08-21 15:48:46 -06:00
peer_error.go p2p: fix DiscReason encoding/decoding (#30855) 2024-12-12 12:33:42 +01:00
peer_test.go p2p: DNS resolution for static nodes (#30822) 2024-12-13 12:46:12 +01:00
protocol.go all: use cmp.Compare (#30958) 2025-01-02 14:06:47 +01:00
server.go p2p: track in-progress inbound node IDs (#33198) 2026-03-20 05:52:15 +01:00
server_nat.go p2p/nat: fix UPnP port reset (#31566) 2025-04-09 11:28:29 +02:00
server_nat_test.go p2p: fix flaky test TestServerPortMapping (#30241) 2024-07-30 07:31:27 -06:00
server_test.go p2p: cleanup v4 if v5 failed (#33005) 2025-10-29 10:34:19 +01:00
transport.go p2p: fix DiscReason encoding/decoding (#30855) 2024-12-12 12:33:42 +01:00
transport_test.go p2p: fix DiscReason encoding/decoding (#30855) 2024-12-12 12:33:42 +01:00
util.go all: assign zero after resize in implementations of heap.Interface (#26296) 2022-12-05 13:49:54 +01:00
util_test.go p2p: new dial scheduler (#20592) 2020-02-13 11:10:03 +01:00