mirror of
https://github.com/sigp/lighthouse.git
synced 2026-05-07 16:55:46 +00:00
Allow libp2p to determine listening addresses (#4700)
## Issue Addressed #4675 ## Proposed Changes - Update local ENR (**only port numbers**) with local addresses received from libp2p (via `SwarmEvent::NewListenAddr`) - Only use the zero port for CLI tests ## Additional Info ### See Also ### - #4705 - #4402 - #4745
This commit is contained in:
@@ -22,9 +22,14 @@ use types::{
|
||||
Address, Checkpoint, Epoch, ExecutionBlockHash, ForkName, Hash256, MainnetEthSpec,
|
||||
ProgressiveBalancesMode,
|
||||
};
|
||||
use unused_port::{unused_tcp4_port, unused_tcp6_port, unused_udp4_port, unused_udp6_port};
|
||||
|
||||
const DEFAULT_ETH1_ENDPOINT: &str = "http://localhost:8545/";
|
||||
const DUMMY_ENR_TCP_PORT: u16 = 7777;
|
||||
const DUMMY_ENR_UDP_PORT: u16 = 8888;
|
||||
const DUMMY_ENR_QUIC_PORT: u16 = 9999;
|
||||
|
||||
const _: () =
|
||||
assert!(DUMMY_ENR_QUIC_PORT != 0 && DUMMY_ENR_TCP_PORT != 0 && DUMMY_ENR_UDP_PORT != 0);
|
||||
|
||||
/// Returns the `lighthouse beacon_node` command.
|
||||
fn base_cmd() -> Command {
|
||||
@@ -1004,7 +1009,7 @@ fn network_listen_address_flag_wrong_double_v6_value_config() {
|
||||
}
|
||||
#[test]
|
||||
fn network_port_flag_over_ipv4() {
|
||||
let port = unused_tcp4_port().expect("Unable to find unused port.");
|
||||
let port = 0;
|
||||
CommandLineTest::new()
|
||||
.flag("port", Some(port.to_string().as_str()))
|
||||
.run()
|
||||
@@ -1021,7 +1026,7 @@ fn network_port_flag_over_ipv4() {
|
||||
}
|
||||
#[test]
|
||||
fn network_port_flag_over_ipv6() {
|
||||
let port = unused_tcp6_port().expect("Unable to find unused port.");
|
||||
let port = 0;
|
||||
CommandLineTest::new()
|
||||
.flag("listen-address", Some("::1"))
|
||||
.flag("port", Some(port.to_string().as_str()))
|
||||
@@ -1039,8 +1044,8 @@ fn network_port_flag_over_ipv6() {
|
||||
}
|
||||
#[test]
|
||||
fn network_port_and_discovery_port_flags_over_ipv4() {
|
||||
let tcp4_port = unused_tcp4_port().expect("Unable to find unused port.");
|
||||
let disc4_port = unused_udp4_port().expect("Unable to find unused port.");
|
||||
let tcp4_port = 0;
|
||||
let disc4_port = 0;
|
||||
CommandLineTest::new()
|
||||
.flag("port", Some(tcp4_port.to_string().as_str()))
|
||||
.flag("discovery-port", Some(disc4_port.to_string().as_str()))
|
||||
@@ -1058,8 +1063,8 @@ fn network_port_and_discovery_port_flags_over_ipv4() {
|
||||
}
|
||||
#[test]
|
||||
fn network_port_and_discovery_port_flags_over_ipv6() {
|
||||
let tcp6_port = unused_tcp6_port().expect("Unable to find unused port.");
|
||||
let disc6_port = unused_udp6_port().expect("Unable to find unused port.");
|
||||
let tcp6_port = 0;
|
||||
let disc6_port = 0;
|
||||
CommandLineTest::new()
|
||||
.flag("listen-address", Some("::1"))
|
||||
.flag("port", Some(tcp6_port.to_string().as_str()))
|
||||
@@ -1078,10 +1083,10 @@ fn network_port_and_discovery_port_flags_over_ipv6() {
|
||||
}
|
||||
#[test]
|
||||
fn network_port_and_discovery_port_flags_over_ipv4_and_ipv6() {
|
||||
let tcp4_port = unused_tcp4_port().expect("Unable to find unused port.");
|
||||
let disc4_port = unused_udp4_port().expect("Unable to find unused port.");
|
||||
let tcp6_port = unused_tcp6_port().expect("Unable to find unused port.");
|
||||
let disc6_port = unused_udp6_port().expect("Unable to find unused port.");
|
||||
let tcp4_port = 0;
|
||||
let disc4_port = 0;
|
||||
let tcp6_port = 0;
|
||||
let disc6_port = 0;
|
||||
CommandLineTest::new()
|
||||
.flag("listen-address", Some("::1"))
|
||||
.flag("listen-address", Some("127.0.0.1"))
|
||||
@@ -1113,12 +1118,12 @@ fn network_port_and_discovery_port_flags_over_ipv4_and_ipv6() {
|
||||
|
||||
#[test]
|
||||
fn network_port_discovery_quic_port_flags_over_ipv4_and_ipv6() {
|
||||
let tcp4_port = unused_tcp4_port().expect("Unable to find unused port.");
|
||||
let disc4_port = unused_udp4_port().expect("Unable to find unused port.");
|
||||
let quic4_port = unused_udp4_port().expect("Unable to find unused port.");
|
||||
let tcp6_port = unused_tcp6_port().expect("Unable to find unused port.");
|
||||
let disc6_port = unused_udp6_port().expect("Unable to find unused port.");
|
||||
let quic6_port = unused_udp6_port().expect("Unable to find unused port.");
|
||||
let tcp4_port = 0;
|
||||
let disc4_port = 0;
|
||||
let quic4_port = 0;
|
||||
let tcp6_port = 0;
|
||||
let disc6_port = 0;
|
||||
let quic6_port = 0;
|
||||
CommandLineTest::new()
|
||||
.flag("listen-address", Some("::1"))
|
||||
.flag("listen-address", Some("127.0.0.1"))
|
||||
@@ -1264,7 +1269,8 @@ fn network_load_flag() {
|
||||
// Tests for ENR flags.
|
||||
#[test]
|
||||
fn enr_udp_port_flag() {
|
||||
let port = unused_udp4_port().expect("Unable to find unused port.");
|
||||
let port = DUMMY_ENR_UDP_PORT;
|
||||
assert!(port != 0);
|
||||
CommandLineTest::new()
|
||||
.flag("enr-udp-port", Some(port.to_string().as_str()))
|
||||
.run_with_zero_port()
|
||||
@@ -1272,7 +1278,7 @@ fn enr_udp_port_flag() {
|
||||
}
|
||||
#[test]
|
||||
fn enr_quic_port_flag() {
|
||||
let port = unused_udp4_port().expect("Unable to find unused port.");
|
||||
let port = DUMMY_ENR_QUIC_PORT;
|
||||
CommandLineTest::new()
|
||||
.flag("enr-quic-port", Some(port.to_string().as_str()))
|
||||
.run_with_zero_port()
|
||||
@@ -1280,7 +1286,7 @@ fn enr_quic_port_flag() {
|
||||
}
|
||||
#[test]
|
||||
fn enr_tcp_port_flag() {
|
||||
let port = unused_tcp4_port().expect("Unable to find unused port.");
|
||||
let port = DUMMY_ENR_TCP_PORT;
|
||||
CommandLineTest::new()
|
||||
.flag("enr-tcp-port", Some(port.to_string().as_str()))
|
||||
.run_with_zero_port()
|
||||
@@ -1288,7 +1294,7 @@ fn enr_tcp_port_flag() {
|
||||
}
|
||||
#[test]
|
||||
fn enr_udp6_port_flag() {
|
||||
let port = unused_udp6_port().expect("Unable to find unused port.");
|
||||
let port = DUMMY_ENR_UDP_PORT;
|
||||
CommandLineTest::new()
|
||||
.flag("enr-udp6-port", Some(port.to_string().as_str()))
|
||||
.run_with_zero_port()
|
||||
@@ -1296,7 +1302,7 @@ fn enr_udp6_port_flag() {
|
||||
}
|
||||
#[test]
|
||||
fn enr_quic6_port_flag() {
|
||||
let port = unused_udp6_port().expect("Unable to find unused port.");
|
||||
let port = DUMMY_ENR_QUIC_PORT;
|
||||
CommandLineTest::new()
|
||||
.flag("enr-quic6-port", Some(port.to_string().as_str()))
|
||||
.run_with_zero_port()
|
||||
@@ -1304,7 +1310,7 @@ fn enr_quic6_port_flag() {
|
||||
}
|
||||
#[test]
|
||||
fn enr_tcp6_port_flag() {
|
||||
let port = unused_tcp6_port().expect("Unable to find unused port.");
|
||||
let port = DUMMY_ENR_TCP_PORT;
|
||||
CommandLineTest::new()
|
||||
.flag("enr-tcp6-port", Some(port.to_string().as_str()))
|
||||
.run_with_zero_port()
|
||||
@@ -1313,8 +1319,11 @@ fn enr_tcp6_port_flag() {
|
||||
#[test]
|
||||
fn enr_match_flag_over_ipv4() {
|
||||
let addr = "127.0.0.2".parse::<Ipv4Addr>().unwrap();
|
||||
let udp4_port = unused_udp4_port().expect("Unable to find unused port.");
|
||||
let tcp4_port = unused_tcp4_port().expect("Unable to find unused port.");
|
||||
|
||||
// the reason we use the ENR dummy values is because, due to the nature of the `--enr-match` flag, these will eventually become ENR ports (as well as listening ports).
|
||||
let udp4_port = DUMMY_ENR_UDP_PORT;
|
||||
let tcp4_port = DUMMY_ENR_TCP_PORT;
|
||||
|
||||
CommandLineTest::new()
|
||||
.flag("enr-match", None)
|
||||
.flag("listen-address", Some("127.0.0.2"))
|
||||
@@ -1338,8 +1347,11 @@ fn enr_match_flag_over_ipv4() {
|
||||
fn enr_match_flag_over_ipv6() {
|
||||
const ADDR: &str = "::1";
|
||||
let addr = ADDR.parse::<Ipv6Addr>().unwrap();
|
||||
let udp6_port = unused_udp6_port().expect("Unable to find unused port.");
|
||||
let tcp6_port = unused_tcp6_port().expect("Unable to find unused port.");
|
||||
|
||||
// the reason we use the ENR dummy values is because, due to the nature of the `--enr-match` flag, these will eventually become ENR ports (as well as listening ports).
|
||||
let udp6_port = DUMMY_ENR_UDP_PORT;
|
||||
let tcp6_port = DUMMY_ENR_TCP_PORT;
|
||||
|
||||
CommandLineTest::new()
|
||||
.flag("enr-match", None)
|
||||
.flag("listen-address", Some(ADDR))
|
||||
@@ -1362,13 +1374,18 @@ fn enr_match_flag_over_ipv6() {
|
||||
#[test]
|
||||
fn enr_match_flag_over_ipv4_and_ipv6() {
|
||||
const IPV6_ADDR: &str = "::1";
|
||||
|
||||
// the reason we use the ENR dummy values is because, due to the nature of the `--enr-match` flag, these will eventually become ENR ports (as well as listening ports).
|
||||
let udp6_port = DUMMY_ENR_UDP_PORT;
|
||||
let tcp6_port = DUMMY_ENR_TCP_PORT;
|
||||
let ipv6_addr = IPV6_ADDR.parse::<Ipv6Addr>().unwrap();
|
||||
let udp6_port = unused_udp6_port().expect("Unable to find unused port.");
|
||||
let tcp6_port = unused_tcp6_port().expect("Unable to find unused port.");
|
||||
|
||||
const IPV4_ADDR: &str = "127.0.0.1";
|
||||
// the reason we use the ENR dummy values is because, due to the nature of the `--enr-match` flag, these will eventually become ENR ports (as well as listening ports).
|
||||
let udp4_port = DUMMY_ENR_UDP_PORT;
|
||||
let tcp4_port = DUMMY_ENR_TCP_PORT;
|
||||
let ipv4_addr = IPV4_ADDR.parse::<Ipv4Addr>().unwrap();
|
||||
let udp4_port = unused_udp4_port().expect("Unable to find unused port.");
|
||||
let tcp4_port = unused_tcp4_port().expect("Unable to find unused port.");
|
||||
|
||||
CommandLineTest::new()
|
||||
.flag("enr-match", None)
|
||||
.flag("listen-address", Some(IPV4_ADDR))
|
||||
@@ -1406,7 +1423,7 @@ fn enr_match_flag_over_ipv4_and_ipv6() {
|
||||
#[test]
|
||||
fn enr_address_flag_with_ipv4() {
|
||||
let addr = "192.167.1.1".parse::<Ipv4Addr>().unwrap();
|
||||
let port = unused_udp4_port().expect("Unable to find unused port.");
|
||||
let port = DUMMY_ENR_UDP_PORT;
|
||||
CommandLineTest::new()
|
||||
.flag("enr-address", Some("192.167.1.1"))
|
||||
.flag("enr-udp-port", Some(port.to_string().as_str()))
|
||||
@@ -1419,7 +1436,7 @@ fn enr_address_flag_with_ipv4() {
|
||||
#[test]
|
||||
fn enr_address_flag_with_ipv6() {
|
||||
let addr = "192.167.1.1".parse::<Ipv4Addr>().unwrap();
|
||||
let port = unused_udp4_port().expect("Unable to find unused port.");
|
||||
let port = DUMMY_ENR_UDP_PORT;
|
||||
CommandLineTest::new()
|
||||
.flag("enr-address", Some("192.167.1.1"))
|
||||
.flag("enr-udp-port", Some(port.to_string().as_str()))
|
||||
@@ -1433,7 +1450,7 @@ fn enr_address_flag_with_ipv6() {
|
||||
fn enr_address_dns_flag() {
|
||||
let addr = Ipv4Addr::LOCALHOST;
|
||||
let ipv6addr = Ipv6Addr::LOCALHOST;
|
||||
let port = unused_udp4_port().expect("Unable to find unused port.");
|
||||
let port = DUMMY_ENR_UDP_PORT;
|
||||
CommandLineTest::new()
|
||||
.flag("enr-address", Some("localhost"))
|
||||
.flag("enr-udp-port", Some(port.to_string().as_str()))
|
||||
@@ -1482,8 +1499,8 @@ fn http_address_ipv6_flag() {
|
||||
}
|
||||
#[test]
|
||||
fn http_port_flag() {
|
||||
let port1 = unused_tcp4_port().expect("Unable to find unused port.");
|
||||
let port2 = unused_tcp4_port().expect("Unable to find unused port.");
|
||||
let port1 = 0;
|
||||
let port2 = 0;
|
||||
CommandLineTest::new()
|
||||
.flag("http", None)
|
||||
.flag("http-port", Some(port1.to_string().as_str()))
|
||||
@@ -1639,8 +1656,8 @@ fn metrics_address_ipv6_flag() {
|
||||
}
|
||||
#[test]
|
||||
fn metrics_port_flag() {
|
||||
let port1 = unused_tcp4_port().expect("Unable to find unused port.");
|
||||
let port2 = unused_tcp4_port().expect("Unable to find unused port.");
|
||||
let port1 = 0;
|
||||
let port2 = 0;
|
||||
CommandLineTest::new()
|
||||
.flag("metrics", None)
|
||||
.flag("metrics-port", Some(port1.to_string().as_str()))
|
||||
|
||||
Reference in New Issue
Block a user