From a14db7f0ca9ac69d4508bfbcbc77e1f439e1e2b0 Mon Sep 17 00:00:00 2001 From: Ayush Baluni <73417844+aayushbaluni@users.noreply.github.com> Date: Thu, 19 Mar 2026 03:17:31 +0530 Subject: [PATCH] fix(net): disable Discv5 ENR auto-update when NAT disabled or explicit addr set (#23075) --- crates/node/core/src/args/network.rs | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/crates/node/core/src/args/network.rs b/crates/node/core/src/args/network.rs index 3ad1872657..a2045327b3 100644 --- a/crates/node/core/src/args/network.rs +++ b/crates/node/core/src/args/network.rs @@ -815,14 +815,16 @@ impl DiscoveryArgs { SocketAddr::V6(addr) => Some(*addr.ip()), }); + let mut discv5_config_builder = + reth_discv5::discv5::ConfigBuilder::new(ListenConfig::from_two_sockets( + discv5_addr_ipv4.map(|addr| SocketAddrV4::new(addr, *discv5_port)), + discv5_addr_ipv6.map(|addr| SocketAddrV6::new(addr, *discv5_port_ipv6, 0, 0)), + )); + if discv5_addr.is_some() || discv5_addr_ipv6.is_some() || self.disable_nat { + discv5_config_builder.disable_enr_update(); + } reth_discv5::Config::builder(rlpx_tcp_socket) - .discv5_config( - reth_discv5::discv5::ConfigBuilder::new(ListenConfig::from_two_sockets( - discv5_addr_ipv4.map(|addr| SocketAddrV4::new(addr, *discv5_port)), - discv5_addr_ipv6.map(|addr| SocketAddrV6::new(addr, *discv5_port_ipv6, 0, 0)), - )) - .build(), - ) + .discv5_config(discv5_config_builder.build()) .add_unsigned_boot_nodes(boot_nodes) .lookup_interval(*discv5_lookup_interval) .bootstrap_lookup_interval(*discv5_bootstrap_lookup_interval)