From ee801b53de98671683551ec5714c0a12164cfd3f Mon Sep 17 00:00:00 2001 From: Diva M Date: Fri, 6 May 2022 10:18:09 -0500 Subject: [PATCH] update discv5 --- Cargo.lock | 290 ++++++++++-------- beacon_node/lighthouse_network/Cargo.toml | 2 +- beacon_node/lighthouse_network/src/config.rs | 2 +- .../lighthouse_network/src/discovery/enr.rs | 12 +- .../src/discovery/enr_ext.rs | 24 +- .../lighthouse_network/src/discovery/mod.rs | 16 +- .../src/peer_manager/network_behaviour.rs | 2 +- boot_node/src/server.rs | 9 +- common/eth2_network_config/Cargo.toml | 2 +- 9 files changed, 199 insertions(+), 160 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index dc4044c4394..31df1b3fe0d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -263,6 +263,12 @@ dependencies = [ "rustc-demangle", ] +[[package]] +name = "base16ct" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "349a06037c7bf932dd7e7d1f653678b2038b9ad46a74102f1fc7bd7872678cce" + [[package]] name = "base64" version = "0.13.0" @@ -776,6 +782,12 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "279bc8fc53f788a75c7804af68237d1fce02cde1e275a886a4b320604dc2aeda" +[[package]] +name = "const-oid" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4c78c047431fee22c1a7bb92e00ad095a02a983affe4d8a72e2a2c62c1b94f3" + [[package]] name = "convert_case" version = "0.4.0" @@ -912,6 +924,18 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" +[[package]] +name = "crypto-bigint" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03c6a1d5fa1de37e071642dfa44ec552ca5b299adb128fab16138e24b548fd21" +dependencies = [ + "generic-array", + "rand_core 0.6.3", + "subtle", + "zeroize", +] + [[package]] name = "crypto-common" version = "0.1.3" @@ -1094,6 +1118,16 @@ version = "0.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b72465f46d518f6015d9cf07f7f3013a95dd6b9c2747c3d65ae0cce43929d14f" +[[package]] +name = "delay_map" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6716ce9729be9628979ae1ff63e8bc8b7ad53b5472a2633bf079607a55328d36" +dependencies = [ + "futures", + "tokio-util 0.6.9", +] + [[package]] name = "deposit_contract" version = "0.2.0" @@ -1114,10 +1148,19 @@ version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2eeb9d92785d1facb50567852ce75d0858630630e7eabea59cf7eb7474051087" dependencies = [ - "const-oid", + "const-oid 0.5.2", "typenum", ] +[[package]] +name = "der" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6919815d73839e7ad218de758883aae3a257ba6759ce7a9992501efbb53d705c" +dependencies = [ + "const-oid 0.7.1", +] + [[package]] name = "derivative" version = "2.2.0" @@ -1226,12 +1269,12 @@ dependencies = [ [[package]] name = "discv5" version = "0.1.0-beta.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed8f54486179d5a7f11e1f5526f49d925a411a96c1141a707bd5f071be2ab630" +source = "git+https://github.com/sigp/discv5?rev=a00c872075d0b9d06a09292db99084559fcd7e91#a00c872075d0b9d06a09292db99084559fcd7e91" dependencies = [ "aes", "aes-gcm", "arrayvec", + "delay_map", "digest 0.10.3", "enr", "fnv", @@ -1240,7 +1283,7 @@ dependencies = [ "hex", "hkdf", "lazy_static", - "libp2p-core 0.30.2", + "libp2p-core", "lru", "parking_lot 0.11.2", "rand 0.8.5", @@ -1268,12 +1311,24 @@ version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34d33b390ab82f2e1481e331dbd0530895640179d2128ef9a79cc690b78d1eba" dependencies = [ - "der", - "elliptic-curve", + "der 0.3.5", + "elliptic-curve 0.9.12", "hmac 0.11.0", "signature", ] +[[package]] +name = "ecdsa" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0d69ae62e0ce582d56380743515fefaf1a8c70cec685d9677636d7e30ae9dc9" +dependencies = [ + "der 0.5.1", + "elliptic-curve 0.11.12", + "rfc6979", + "signature", +] + [[package]] name = "ed25519" version = "1.4.1" @@ -1340,15 +1395,33 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c13e9b0c3c4170dcc2a12783746c4205d98e18957f57854251eea3f9750fe005" dependencies = [ "bitvec", - "ff", + "ff 0.9.0", "generic-array", - "group", + "group 0.9.0", "pkcs8", "rand_core 0.6.3", "subtle", "zeroize", ] +[[package]] +name = "elliptic-curve" +version = "0.11.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25b477563c2bfed38a3b7a60964c49e058b2510ad3f12ba3483fd8f62c2306d6" +dependencies = [ + "base16ct", + "crypto-bigint", + "der 0.5.1", + "ff 0.11.1", + "generic-array", + "group 0.11.0", + "rand_core 0.6.3", + "sec1", + "subtle", + "zeroize", +] + [[package]] name = "encoding_rs" version = "0.8.30" @@ -1360,9 +1433,9 @@ dependencies = [ [[package]] name = "enr" -version = "0.5.1" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "809869a1328bfb586b48c9c0f87761c47c41793a85bcb06f66074a87cafc1bcd" +checksum = "78d404e58d809811e491badc0bbd49c7441b84c3e9b3dac3baf50ac21f168a1e" dependencies = [ "base64", "bs58", @@ -1809,6 +1882,16 @@ dependencies = [ "subtle", ] +[[package]] +name = "ff" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "131655483be284720a17d74ff97592b8e76576dc25563148601df2d7c9080924" +dependencies = [ + "rand_core 0.6.3", + "subtle", +] + [[package]] name = "ffi-opaque" version = "2.0.1" @@ -2135,7 +2218,18 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "61b3c1e8b4f1ca07e6605ea1be903a5f6956aec5c8a67fd44d56076631675ed8" dependencies = [ - "ff", + "ff 0.9.0", + "rand_core 0.6.3", + "subtle", +] + +[[package]] +name = "group" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc5ac374b108929de78460075f3dc439fa66df9d8fc77e8f12caa5165fcf0c89" +dependencies = [ + "ff 0.11.1", "rand_core 0.6.3", "subtle", ] @@ -2657,8 +2751,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8c3e8e491ed22bc161583a1c77e42313672c483eba6bd9d7afec0f1131d0b9ce" dependencies = [ "cfg-if", - "ecdsa", - "elliptic-curve", + "ecdsa 0.11.1", + "elliptic-curve 0.9.12", "sha2 0.9.9", ] @@ -2810,7 +2904,7 @@ dependencies = [ "getrandom 0.2.6", "instant", "lazy_static", - "libp2p-core 0.32.0", + "libp2p-core", "libp2p-dns", "libp2p-gossipsub", "libp2p-identify", @@ -2823,48 +2917,13 @@ dependencies = [ "libp2p-tcp", "libp2p-websocket", "libp2p-yamux", - "multiaddr 0.14.0", + "multiaddr", "parking_lot 0.12.0", "pin-project 1.0.10", "rand 0.7.3", "smallvec", ] -[[package]] -name = "libp2p-core" -version = "0.30.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86aad7d54df283db817becded03e611137698a6509d4237a96881976a162340c" -dependencies = [ - "asn1_der", - "bs58", - "ed25519-dalek", - "either", - "fnv", - "futures", - "futures-timer", - "instant", - "lazy_static", - "libsecp256k1", - "log", - "multiaddr 0.13.0", - "multihash 0.14.0", - "multistream-select 0.10.4", - "parking_lot 0.11.2", - "pin-project 1.0.10", - "prost", - "prost-build", - "rand 0.8.5", - "ring", - "rw-stream-sink", - "sha2 0.9.9", - "smallvec", - "thiserror", - "unsigned-varint 0.7.1", - "void", - "zeroize", -] - [[package]] name = "libp2p-core" version = "0.32.0" @@ -2882,9 +2941,10 @@ dependencies = [ "lazy_static", "libsecp256k1", "log", - "multiaddr 0.14.0", - "multihash 0.16.2", - "multistream-select 0.11.0", + "multiaddr", + "multihash", + "multistream-select", + "p256", "parking_lot 0.12.0", "pin-project 1.0.10", "prost", @@ -2907,7 +2967,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7838647d33978b77f943687412f4a39e74234c8342cbfdad14282b465b272cb4" dependencies = [ "futures", - "libp2p-core 0.32.0", + "libp2p-core", "log", "smallvec", "trust-dns-resolver", @@ -2927,7 +2987,7 @@ dependencies = [ "futures", "hex_fmt", "instant", - "libp2p-core 0.32.0", + "libp2p-core", "libp2p-swarm", "log", "prometheus-client", @@ -2949,7 +3009,7 @@ checksum = "1f219b4d4660fe3a04bf5fe6b5970902b7c1918e25b2536be8c70efc480f88f8" dependencies = [ "futures", "futures-timer", - "libp2p-core 0.32.0", + "libp2p-core", "libp2p-swarm", "log", "lru", @@ -2964,7 +3024,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d29e4e5e4c5aa567fe1ee3133afe088dc2d2fd104e20c5c2c5c2649f75129677" dependencies = [ - "libp2p-core 0.32.0", + "libp2p-core", "libp2p-gossipsub", "libp2p-identify", "libp2p-swarm", @@ -2980,7 +3040,7 @@ dependencies = [ "asynchronous-codec", "bytes", "futures", - "libp2p-core 0.32.0", + "libp2p-core", "log", "nohash-hasher", "parking_lot 0.12.0", @@ -2999,7 +3059,7 @@ dependencies = [ "curve25519-dalek 3.2.0", "futures", "lazy_static", - "libp2p-core 0.32.0", + "libp2p-core", "log", "prost", "prost-build", @@ -3020,7 +3080,7 @@ dependencies = [ "asynchronous-codec", "bytes", "futures", - "libp2p-core 0.32.0", + "libp2p-core", "log", "prost", "prost-build", @@ -3039,7 +3099,7 @@ dependencies = [ "futures", "futures-timer", "instant", - "libp2p-core 0.32.0", + "libp2p-core", "log", "pin-project 1.0.10", "rand 0.7.3", @@ -3069,7 +3129,7 @@ dependencies = [ "if-addrs 0.7.0", "ipnet", "libc", - "libp2p-core 0.32.0", + "libp2p-core", "log", "socket2 0.4.4", "tokio", @@ -3084,7 +3144,7 @@ dependencies = [ "either", "futures", "futures-rustls", - "libp2p-core 0.32.0", + "libp2p-core", "log", "quicksink", "rw-stream-sink", @@ -3100,7 +3160,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "be902ebd89193cd020e89e89107726a38cfc0d16d18f613f4a37d046e92c7517" dependencies = [ "futures", - "libp2p-core 0.32.0", + "libp2p-core", "parking_lot 0.12.0", "thiserror", "yamux", @@ -3519,24 +3579,6 @@ dependencies = [ "tokio", ] -[[package]] -name = "multiaddr" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48ee4ea82141951ac6379f964f71b20876d43712bea8faf6dd1a375e08a46499" -dependencies = [ - "arrayref", - "bs58", - "byteorder", - "data-encoding", - "multihash 0.14.0", - "percent-encoding", - "serde", - "static_assertions", - "unsigned-varint 0.7.1", - "url", -] - [[package]] name = "multiaddr" version = "0.14.0" @@ -3547,7 +3589,7 @@ dependencies = [ "bs58", "byteorder", "data-encoding", - "multihash 0.16.2", + "multihash", "percent-encoding", "serde", "static_assertions", @@ -3555,19 +3597,6 @@ dependencies = [ "url", ] -[[package]] -name = "multihash" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "752a61cd890ff691b4411423d23816d5866dd5621e4d1c5687a53b94b5a979d8" -dependencies = [ - "digest 0.9.0", - "generic-array", - "multihash-derive 0.7.2", - "sha2 0.9.9", - "unsigned-varint 0.7.1", -] - [[package]] name = "multihash" version = "0.16.2" @@ -3576,25 +3605,11 @@ checksum = "e3db354f401db558759dfc1e568d010a5d4146f4d3f637be1275ec4a3cf09689" dependencies = [ "core2", "digest 0.10.3", - "multihash-derive 0.8.0", + "multihash-derive", "sha2 0.10.2", "unsigned-varint 0.7.1", ] -[[package]] -name = "multihash-derive" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "424f6e86263cd5294cbd7f1e95746b95aca0e0d66bff31e5a40d6baa87b4aa99" -dependencies = [ - "proc-macro-crate", - "proc-macro-error", - "proc-macro2", - "quote", - "syn", - "synstructure", -] - [[package]] name = "multihash-derive" version = "0.8.0" @@ -3633,20 +3648,6 @@ dependencies = [ "twoway", ] -[[package]] -name = "multistream-select" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56a336acba8bc87c8876f6425407dbbe6c417bf478b22015f8fb0994ef3bc0ab" -dependencies = [ - "bytes", - "futures", - "log", - "pin-project 1.0.10", - "smallvec", - "unsigned-varint 0.7.1", -] - [[package]] name = "multistream-select" version = "0.11.0" @@ -3957,6 +3958,18 @@ dependencies = [ "stable_deref_trait", ] +[[package]] +name = "p256" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19736d80675fbe9fe33426268150b951a3fb8f5cfca2a23a17c85ef3adb24e3b" +dependencies = [ + "ecdsa 0.13.4", + "elliptic-curve 0.11.12", + "sec1", + "sha2 0.9.9", +] + [[package]] name = "parity-scale-codec" version = "2.3.1" @@ -4159,7 +4172,7 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c9c2f795bc591cb3384cb64082a578b89207ac92bb89c9d98c1ea2ace7cd8110" dependencies = [ - "der", + "der 0.3.5", "spki", ] @@ -4726,6 +4739,17 @@ dependencies = [ "quick-error", ] +[[package]] +name = "rfc6979" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96ef608575f6392792f9ecf7890c00086591d29a83910939d430753f7c050525" +dependencies = [ + "crypto-bigint", + "hmac 0.11.0", + "zeroize", +] + [[package]] name = "ring" version = "0.16.20" @@ -4966,6 +4990,18 @@ dependencies = [ "untrusted", ] +[[package]] +name = "sec1" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08da66b8b0965a5555b6bd6639e68ccba85e1e2506f5fbb089e93f8a04e1a2d1" +dependencies = [ + "der 0.5.1", + "generic-array", + "subtle", + "zeroize", +] + [[package]] name = "secp256k1" version = "0.21.3" @@ -5522,7 +5558,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9dae7e047abc519c96350e9484a96c6bf1492348af912fd3446dd2dc323f6268" dependencies = [ - "der", + "der 0.3.5", ] [[package]] diff --git a/beacon_node/lighthouse_network/Cargo.toml b/beacon_node/lighthouse_network/Cargo.toml index 95ca7dc27a6..3acf3151a7d 100644 --- a/beacon_node/lighthouse_network/Cargo.toml +++ b/beacon_node/lighthouse_network/Cargo.toml @@ -5,7 +5,7 @@ authors = ["Sigma Prime "] edition = "2021" [dependencies] -discv5 = { version = "0.1.0-beta.13", features = ["libp2p"] } +discv5 = { git = "https://github.com/sigp/discv5", rev = "a00c872075d0b9d06a09292db99084559fcd7e91", features = ["libp2p"] } unsigned-varint = { version = "0.6.0", features = ["codec"] } types = { path = "../../consensus/types" } hashset_delay = { path = "../../common/hashset_delay" } diff --git a/beacon_node/lighthouse_network/src/config.rs b/beacon_node/lighthouse_network/src/config.rs index 263ef0c7cb9..71566b87780 100644 --- a/beacon_node/lighthouse_network/src/config.rs +++ b/beacon_node/lighthouse_network/src/config.rs @@ -176,7 +176,7 @@ impl Default for Config { .filter_rate_limiter(filter_rate_limiter) .filter_max_bans_per_ip(Some(5)) .filter_max_nodes_per_ip(Some(10)) - .table_filter(|enr| enr.ip().map_or(false, |ip| is_global(&ip))) // Filter non-global IPs + .table_filter(|enr| enr.ip4().map_or(false, |ip| is_global(&ip))) // Filter non-global IPs .ban_duration(Some(Duration::from_secs(3600))) .ping_interval(Duration::from_secs(300)) .build(); diff --git a/beacon_node/lighthouse_network/src/discovery/enr.rs b/beacon_node/lighthouse_network/src/discovery/enr.rs index 1d542a7f393..42e3b3e79a2 100644 --- a/beacon_node/lighthouse_network/src/discovery/enr.rs +++ b/beacon_node/lighthouse_network/src/discovery/enr.rs @@ -149,12 +149,12 @@ pub fn create_enr_builder_from_config( builder.ip(enr_address); } if let Some(udp_port) = config.enr_udp_port { - builder.udp(udp_port); + builder.udp4(udp_port); } // we always give it our listening tcp port if enable_tcp { let tcp_port = config.enr_tcp_port.unwrap_or(config.libp2p_port); - builder.tcp(tcp_port); + builder.tcp4(tcp_port); } builder } @@ -189,14 +189,14 @@ pub fn build_enr( /// If this function returns true, we use the `disk_enr`. fn compare_enr(local_enr: &Enr, disk_enr: &Enr) -> bool { // take preference over disk_enr address if one is not specified - (local_enr.ip().is_none() || local_enr.ip() == disk_enr.ip()) + (local_enr.ip4().is_none() || local_enr.ip4() == disk_enr.ip4()) // tcp ports must match - && local_enr.tcp() == disk_enr.tcp() + && local_enr.tcp4() == disk_enr.tcp4() // must match on the same fork && local_enr.get(ETH2_ENR_KEY) == disk_enr.get(ETH2_ENR_KEY) // take preference over disk udp port if one is not specified - && (local_enr.udp().is_none() || local_enr.udp() == disk_enr.udp()) - // we need the ATTESTATION_BITFIELD_ENR_KEY and SYNC_COMMITTEE_BITFIELD_ENR_KEY key to match, + && (local_enr.udp4().is_none() || local_enr.udp4() == disk_enr.udp4()) + // we need the ATTESTATION_BITFIELD_ENR_KEY and SYNC_COMMITTEE_BITFIELD_ENR_KEY key to match, // otherwise we use a new ENR. This will likely only be true for non-validating nodes && local_enr.get(ATTESTATION_BITFIELD_ENR_KEY) == disk_enr.get(ATTESTATION_BITFIELD_ENR_KEY) && local_enr.get(SYNC_COMMITTEE_BITFIELD_ENR_KEY) == disk_enr.get(SYNC_COMMITTEE_BITFIELD_ENR_KEY) diff --git a/beacon_node/lighthouse_network/src/discovery/enr_ext.rs b/beacon_node/lighthouse_network/src/discovery/enr_ext.rs index 81eaaaf1ba7..75d2d6de143 100644 --- a/beacon_node/lighthouse_network/src/discovery/enr_ext.rs +++ b/beacon_node/lighthouse_network/src/discovery/enr_ext.rs @@ -48,14 +48,14 @@ impl EnrExt for Enr { /// The vector remains empty if these fields are not defined. fn multiaddr(&self) -> Vec { let mut multiaddrs: Vec = Vec::new(); - if let Some(ip) = self.ip() { - if let Some(udp) = self.udp() { + if let Some(ip) = self.ip4() { + if let Some(udp) = self.udp4() { let mut multiaddr: Multiaddr = ip.into(); multiaddr.push(Protocol::Udp(udp)); multiaddrs.push(multiaddr); } - if let Some(tcp) = self.tcp() { + if let Some(tcp) = self.tcp4() { let mut multiaddr: Multiaddr = ip.into(); multiaddr.push(Protocol::Tcp(tcp)); multiaddrs.push(multiaddr); @@ -84,15 +84,15 @@ impl EnrExt for Enr { fn multiaddr_p2p(&self) -> Vec { let peer_id = self.peer_id(); let mut multiaddrs: Vec = Vec::new(); - if let Some(ip) = self.ip() { - if let Some(udp) = self.udp() { + if let Some(ip) = self.ip4() { + if let Some(udp) = self.udp4() { let mut multiaddr: Multiaddr = ip.into(); multiaddr.push(Protocol::Udp(udp)); multiaddr.push(Protocol::P2p(peer_id.into())); multiaddrs.push(multiaddr); } - if let Some(tcp) = self.tcp() { + if let Some(tcp) = self.tcp4() { let mut multiaddr: Multiaddr = ip.into(); multiaddr.push(Protocol::Tcp(tcp)); multiaddr.push(Protocol::P2p(peer_id.into())); @@ -124,8 +124,8 @@ impl EnrExt for Enr { fn multiaddr_p2p_tcp(&self) -> Vec { let peer_id = self.peer_id(); let mut multiaddrs: Vec = Vec::new(); - if let Some(ip) = self.ip() { - if let Some(tcp) = self.tcp() { + if let Some(ip) = self.ip4() { + if let Some(tcp) = self.tcp4() { let mut multiaddr: Multiaddr = ip.into(); multiaddr.push(Protocol::Tcp(tcp)); multiaddr.push(Protocol::P2p(peer_id.into())); @@ -150,8 +150,8 @@ impl EnrExt for Enr { fn multiaddr_p2p_udp(&self) -> Vec { let peer_id = self.peer_id(); let mut multiaddrs: Vec = Vec::new(); - if let Some(ip) = self.ip() { - if let Some(udp) = self.udp() { + if let Some(ip) = self.ip4() { + if let Some(udp) = self.udp4() { let mut multiaddr: Multiaddr = ip.into(); multiaddr.push(Protocol::Udp(udp)); multiaddr.push(Protocol::P2p(peer_id.into())); @@ -173,8 +173,8 @@ impl EnrExt for Enr { /// The vector remains empty if these fields are not defined. fn multiaddr_tcp(&self) -> Vec { let mut multiaddrs: Vec = Vec::new(); - if let Some(ip) = self.ip() { - if let Some(tcp) = self.tcp() { + if let Some(ip) = self.ip4() { + if let Some(tcp) = self.tcp4() { let mut multiaddr: Multiaddr = ip.into(); multiaddr.push(Protocol::Tcp(tcp)); multiaddrs.push(multiaddr); diff --git a/beacon_node/lighthouse_network/src/discovery/mod.rs b/beacon_node/lighthouse_network/src/discovery/mod.rs index 23b8895cf33..893fade88f5 100644 --- a/beacon_node/lighthouse_network/src/discovery/mod.rs +++ b/beacon_node/lighthouse_network/src/discovery/mod.rs @@ -197,7 +197,7 @@ impl Discovery { let local_enr = network_globals.local_enr.read().clone(); - info!(log, "ENR Initialised"; "enr" => local_enr.to_base64(), "seq" => local_enr.seq(), "id"=> %local_enr.node_id(), "ip" => ?local_enr.ip(), "udp"=> ?local_enr.udp(), "tcp" => ?local_enr.tcp()); + info!(log, "ENR Initialised"; "enr" => local_enr.to_base64(), "seq" => local_enr.seq(), "id"=> %local_enr.node_id(), "ip4" => ?local_enr.ip4(), "udp4"=> ?local_enr.udp4(), "tcp4" => ?local_enr.tcp4()); let listen_socket = SocketAddr::new(config.listen_address, config.discovery_port); @@ -214,9 +214,9 @@ impl Discovery { "Adding node to routing table"; "node_id" => %bootnode_enr.node_id(), "peer_id" => %bootnode_enr.peer_id(), - "ip" => ?bootnode_enr.ip(), - "udp" => ?bootnode_enr.udp(), - "tcp" => ?bootnode_enr.tcp() + "ip" => ?bootnode_enr.ip4(), + "udp" => ?bootnode_enr.udp4(), + "tcp" => ?bootnode_enr.tcp4() ); let repr = bootnode_enr.to_string(); let _ = discv5.add_enr(bootnode_enr).map_err(|e| { @@ -268,9 +268,9 @@ impl Discovery { "Adding node to routing table"; "node_id" => %enr.node_id(), "peer_id" => %enr.peer_id(), - "ip" => ?enr.ip(), - "udp" => ?enr.udp(), - "tcp" => ?enr.tcp() + "ip" => ?enr.ip4(), + "udp" => ?enr.udp4(), + "tcp" => ?enr.tcp4() ); let _ = discv5.add_enr(enr).map_err(|e| { error!( @@ -763,7 +763,7 @@ impl Discovery { // we can connect to peers who aren't compatible with an upcoming fork. // `fork_digest` **must** be same. enr.eth2().map(|e| e.fork_digest) == Ok(enr_fork_id.fork_digest) - && (enr.tcp().is_some() || enr.tcp6().is_some()) + && (enr.tcp4().is_some() || enr.tcp6().is_some()) }; // General predicate diff --git a/beacon_node/lighthouse_network/src/peer_manager/network_behaviour.rs b/beacon_node/lighthouse_network/src/peer_manager/network_behaviour.rs index 3bda64f0b13..5c2e7895700 100644 --- a/beacon_node/lighthouse_network/src/peer_manager/network_behaviour.rs +++ b/beacon_node/lighthouse_network/src/peer_manager/network_behaviour.rs @@ -118,7 +118,7 @@ impl NetworkBehaviour for PeerManager { } // Check NAT if metrics are enabled - if self.network_globals.local_enr.read().udp().is_some() { + if self.network_globals.local_enr.read().udp4().is_some() { metrics::check_nat(); } diff --git a/boot_node/src/server.rs b/boot_node/src/server.rs index 6b7f0bf48e5..3d6a5e562a8 100644 --- a/boot_node/src/server.rs +++ b/boot_node/src/server.rs @@ -11,14 +11,17 @@ use types::EthSpec; pub async fn run(config: BootNodeConfig, log: slog::Logger) { // Print out useful information about the generated ENR - let enr_socket = config.local_enr.udp_socket().expect("Enr has a UDP socket"); + let enr_socket = config + .local_enr + .udp4_socket() + .expect("Enr has a UDP socket"); let eth2_field = config .local_enr .eth2() .map(|fork_id| hex::encode(fork_id.fork_digest)) .unwrap_or_default(); - info!(log, "Configuration parameters"; "listening_address" => format!("{}:{}", config.listen_socket.ip(), config.listen_socket.port()), "broadcast_address" => format!("{}:{}",enr_socket.ip(), enr_socket.port()), "eth2" => eth2_field); + info!(log, "Configuration parameters"; "listening_address" => format!("{}:{}", config.listen_socket.ip(), config.listen_socket.port()), "ipv4_broadcast_address" => format!("{}:{}",enr_socket.ip(), enr_socket.port()), "eth2" => eth2_field); info!(log, "Identity established"; "peer_id" => config.local_enr.peer_id().to_string(), "node_id" => config.local_enr.node_id().to_string()); @@ -39,7 +42,7 @@ pub async fn run(config: BootNodeConfig, log: slog::Logger) { info!( log, "Adding bootnode"; - "address" => ?enr.udp_socket(), + "address" => ?enr.udp4_socket(), "peer_id" => enr.peer_id().to_string(), "node_id" => enr.node_id().to_string() ); diff --git a/common/eth2_network_config/Cargo.toml b/common/eth2_network_config/Cargo.toml index 32cee89f7f1..3076a021d07 100644 --- a/common/eth2_network_config/Cargo.toml +++ b/common/eth2_network_config/Cargo.toml @@ -18,4 +18,4 @@ serde_yaml = "0.8.13" types = { path = "../../consensus/types"} eth2_ssz = "0.4.1" eth2_config = { path = "../eth2_config"} -enr = { version = "0.5.1", features = ["ed25519", "k256"] } +enr = { version = "0.6.0", features = ["ed25519", "k256"] }