From 0b631b063232ab497103016e4b9a11922b3d1ab1 Mon Sep 17 00:00:00 2001 From: Pierre Krieger Date: Mon, 16 Jul 2018 11:09:01 +0200 Subject: [PATCH 1/2] Fix nodes not connecting to each other --- substrate/network-libp2p/src/service.rs | 30 ++++++++++++++++--------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/substrate/network-libp2p/src/service.rs b/substrate/network-libp2p/src/service.rs index b899ceb61623c..b3ce0feaf9066 100644 --- a/substrate/network-libp2p/src/service.rs +++ b/substrate/network-libp2p/src/service.rs @@ -623,19 +623,27 @@ fn build_kademlia_response(shared: &Arc, searched: &PeerstorePeerId) // TODO the iter of `known_closest_peers` should be infinite .known_closest_peers(searched) .map(move |peer_id| { - let addrs = shared.network_state.addrs_of_peer(&peer_id); - let connec_ty = if shared.network_state.has_connection(&peer_id) { - // TODO: this only checks connections with substrate ; but what - // if we're connected through Kademlia only? - KadConnectionType::Connected + if peer_id == *shared.kad_system.local_peer_id() { + KadPeer { + node_id: peer_id.clone(), + multiaddrs: shared.listened_addrs.read().clone(), + connection_ty: KadConnectionType::Connected, + } } else { - KadConnectionType::NotConnected - }; + let addrs = shared.network_state.addrs_of_peer(&peer_id); + let connec_ty = if shared.network_state.has_connection(&peer_id) { + // TODO: this only checks connections with substrate ; but what + // if we're connected through Kademlia only? + KadConnectionType::Connected + } else { + KadConnectionType::NotConnected + }; - KadPeer { - node_id: peer_id.clone(), - multiaddrs: addrs, - connection_ty: connec_ty, + KadPeer { + node_id: peer_id.clone(), + multiaddrs: addrs, + connection_ty: connec_ty, + } } }) .collect::>() From cdfa02aa416e61d4382ff518cb215c182d38ca15 Mon Sep 17 00:00:00 2001 From: Pierre Krieger Date: Mon, 16 Jul 2018 12:41:00 +0200 Subject: [PATCH 2/2] Only report external addresses --- substrate/network-libp2p/src/service.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/substrate/network-libp2p/src/service.rs b/substrate/network-libp2p/src/service.rs index b3ce0feaf9066..045fe05b5c8e8 100644 --- a/substrate/network-libp2p/src/service.rs +++ b/substrate/network-libp2p/src/service.rs @@ -464,7 +464,6 @@ fn init_thread( match swarm_controller.listen_on(listen_addr.clone()) { Ok(new_addr) => { *shared.original_listened_addr.write() = Some(new_addr.clone()); - shared.listened_addrs.write().push(new_addr); }, Err(_) => { warn!(target: "sub-libp2p", "Can't listen on {}, protocol not \