From 7d4e8e28026feb05b4958f6ed5d66db4f4f1e63c Mon Sep 17 00:00:00 2001 From: Anton Kaliaev Date: Wed, 26 Jul 2023 16:23:43 +0400 Subject: [PATCH] set mode to server by default refs https://github.com/paritytech/substrate/pull/12529/#issuecomment-1651666805 --- client/network/src/discovery.rs | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/client/network/src/discovery.rs b/client/network/src/discovery.rs index 77224c3a0fd5b..3b840f91c2cde 100644 --- a/client/network/src/discovery.rs +++ b/client/network/src/discovery.rs @@ -55,6 +55,7 @@ use ip_network::IpNetwork; use libp2p::{ core::{Endpoint, Multiaddr}, kad::{ + self, record::store::{MemoryStore, RecordStore}, GetClosestPeersError, GetRecordOk, Kademlia, KademliaBucketInserts, KademliaConfig, KademliaEvent, QueryId, QueryResult, Quorum, Record, RecordKey, @@ -222,6 +223,9 @@ impl DiscoveryConfig { let store = MemoryStore::new(local_peer_id); let mut kad = Kademlia::with_config(local_peer_id, store, config); + // Enable server mode so that the node can accept incoming queries even if it does not + // have an external address just yet. + kad.set_mode(Some(kad::Mode::Server)); for (peer_id, addr) in &permanent_addresses { kad.add_address(peer_id, addr.clone()); @@ -990,7 +994,7 @@ mod tests { upgrade, }, identity::Keypair, - kad, noise, + noise, swarm::{Executor, Swarm, SwarmBuilder, SwarmEvent}, yamux, Multiaddr, }; @@ -1045,17 +1049,6 @@ mod tests { ) .build(); - // Set the Kademlia mode to server so that it can accept incoming requests. - // - // Note: the server mode is set automatically when the node learns its external - // address, but that does not happen in tests => hence we set it manually. - swarm - .behaviour_mut() - .kademlia - .as_mut() - .unwrap() - .set_mode(Some(kad::Mode::Server)); - let listen_addr: Multiaddr = format!("/memory/{}", rand::random::()).parse().unwrap();