mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-12 03:01:07 +00:00
authority-discovery: Add log for debugging DHT authority records (#3668)
This PR adds a debug log for displaying all the public addresses that will later be advertised in the DHT record of the authority. The Authority DHT record will contain the address ++ `/p2p/peerID` (if not already present). This log enables us to check if different nodes will advertise in the DHT record of the authority the same IP address, however with different peer IDs. Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
This commit is contained in:
@@ -306,29 +306,30 @@ where
|
||||
fn addresses_to_publish(&self) -> impl Iterator<Item = Multiaddr> {
|
||||
let peer_id: Multihash = self.network.local_peer_id().into();
|
||||
let publish_non_global_ips = self.publish_non_global_ips;
|
||||
self.network
|
||||
.external_addresses()
|
||||
.into_iter()
|
||||
.filter(move |a| {
|
||||
if publish_non_global_ips {
|
||||
return true
|
||||
}
|
||||
let addresses = self.network.external_addresses().into_iter().filter(move |a| {
|
||||
if publish_non_global_ips {
|
||||
return true
|
||||
}
|
||||
|
||||
a.iter().all(|p| match p {
|
||||
// The `ip_network` library is used because its `is_global()` method is stable,
|
||||
// while `is_global()` in the standard library currently isn't.
|
||||
multiaddr::Protocol::Ip4(ip) if !IpNetwork::from(ip).is_global() => false,
|
||||
multiaddr::Protocol::Ip6(ip) if !IpNetwork::from(ip).is_global() => false,
|
||||
_ => true,
|
||||
})
|
||||
})
|
||||
.map(move |a| {
|
||||
if a.iter().any(|p| matches!(p, multiaddr::Protocol::P2p(_))) {
|
||||
a
|
||||
} else {
|
||||
a.with(multiaddr::Protocol::P2p(peer_id))
|
||||
}
|
||||
a.iter().all(|p| match p {
|
||||
// The `ip_network` library is used because its `is_global()` method is stable,
|
||||
// while `is_global()` in the standard library currently isn't.
|
||||
multiaddr::Protocol::Ip4(ip) if !IpNetwork::from(ip).is_global() => false,
|
||||
multiaddr::Protocol::Ip6(ip) if !IpNetwork::from(ip).is_global() => false,
|
||||
_ => true,
|
||||
})
|
||||
});
|
||||
|
||||
debug!(target: LOG_TARGET, "Authority DHT record peer_id='{:?}' addresses='{:?}'", peer_id, addresses.clone().collect::<Vec<_>>());
|
||||
|
||||
// The address must include the peer id if not already set.
|
||||
addresses.map(move |a| {
|
||||
if a.iter().any(|p| matches!(p, multiaddr::Protocol::P2p(_))) {
|
||||
a
|
||||
} else {
|
||||
a.with(multiaddr::Protocol::P2p(peer_id))
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
/// Publish own public addresses.
|
||||
|
||||
Reference in New Issue
Block a user