diff --git a/examples/chat.rs b/examples/chat.rs index 26db660b1c2..abe9e87a726 100644 --- a/examples/chat.rs +++ b/examples/chat.rs @@ -55,11 +55,13 @@ use futures::{ select, }; use libp2p::{ + core::{upgrade::Version, Transport}, floodsub::{self, Floodsub, FloodsubEvent}, identity, mdns::{Mdns, MdnsConfig, MdnsEvent}, + noise, swarm::{NetworkBehaviour, SwarmEvent}, - Multiaddr, PeerId, Swarm, + tcp, yamux, Multiaddr, PeerId, Swarm, }; use std::error::Error; @@ -72,8 +74,11 @@ async fn main() -> Result<(), Box> { let local_peer_id = PeerId::from(local_key.public()); println!("Local peer id: {local_peer_id:?}"); - // Set up an encrypted DNS-enabled TCP Transport over the Mplex and Yamux protocols - let transport = libp2p::development_transport(local_key).await?; + let transport = tcp::async_io::Transport::default() + .upgrade(Version::V1) + .authenticate(noise::NoiseAuthenticated::xx(&local_key)?) + .multiplex(yamux::YamuxConfig::default()) + .boxed(); // Create a Floodsub topic let floodsub_topic = floodsub::Topic::new("chat"); diff --git a/examples/distributed-key-value-store.rs b/examples/distributed-key-value-store.rs index 8d8c6d917ef..f168ee3ec0b 100644 --- a/examples/distributed-key-value-store.rs +++ b/examples/distributed-key-value-store.rs @@ -48,10 +48,12 @@ use libp2p::kad::{ Quorum, Record, }; use libp2p::{ - development_transport, identity, + core::{upgrade::Version, Transport}, + identity, mdns::{Mdns, MdnsConfig, MdnsEvent}, + noise, swarm::{NetworkBehaviour, SwarmEvent}, - PeerId, Swarm, + tcp, yamux, PeerId, Swarm, }; use std::error::Error; @@ -63,8 +65,11 @@ async fn main() -> Result<(), Box> { let local_key = identity::Keypair::generate_ed25519(); let local_peer_id = PeerId::from(local_key.public()); - // Set up a an encrypted DNS-enabled TCP Transport over the Mplex protocol. - let transport = development_transport(local_key).await?; + let transport = tcp::async_io::Transport::default() + .upgrade(Version::V1) + .authenticate(noise::NoiseAuthenticated::xx(&local_key)?) + .multiplex(yamux::YamuxConfig::default()) + .boxed(); // We create a custom network behaviour that combines Kademlia and mDNS. #[derive(NetworkBehaviour)] diff --git a/examples/file-sharing.rs b/examples/file-sharing.rs index 85c5d3d50dd..5d9f7f58a43 100644 --- a/examples/file-sharing.rs +++ b/examples/file-sharing.rs @@ -81,8 +81,11 @@ use async_std::io; use async_std::task::spawn; use clap::Parser; use futures::prelude::*; -use libp2p::core::{Multiaddr, PeerId}; +use libp2p::core::{upgrade::Version, Multiaddr, PeerId, Transport}; use libp2p::multiaddr::Protocol; +use libp2p::noise; +use libp2p::tcp; +use libp2p::yamux; use std::error::Error; use std::io::Write; use std::path::PathBuf; @@ -253,7 +256,11 @@ mod network { // Build the Swarm, connecting the lower layer transport logic with the // higher layer network behaviour logic. let swarm = SwarmBuilder::new( - libp2p::development_transport(id_keys).await?, + tcp::async_io::Transport::default() + .upgrade(Version::V1) + .authenticate(noise::NoiseAuthenticated::xx(&id_keys)?) + .multiplex(yamux::YamuxConfig::default()) + .boxed(), ComposedBehaviour { kademlia: Kademlia::new(peer_id, MemoryStore::new(peer_id)), request_response: RequestResponse::new( diff --git a/examples/gossipsub-chat.rs b/examples/gossipsub-chat.rs index e86d1836746..69b2c91dc93 100644 --- a/examples/gossipsub-chat.rs +++ b/examples/gossipsub-chat.rs @@ -47,11 +47,16 @@ use async_std::io; use futures::{prelude::*, select}; +use libp2p::core::upgrade::Version; +use libp2p::core::Transport; use libp2p::gossipsub::MessageId; use libp2p::gossipsub::{ Gossipsub, GossipsubEvent, GossipsubMessage, IdentTopic as Topic, MessageAuthenticity, ValidationMode, }; +use libp2p::noise; +use libp2p::tcp; +use libp2p::yamux; use libp2p::{ gossipsub, identity, mdns::{Mdns, MdnsConfig, MdnsEvent}, @@ -71,8 +76,11 @@ async fn main() -> Result<(), Box> { let local_peer_id = PeerId::from(local_key.public()); println!("Local peer id: {local_peer_id}"); - // Set up an encrypted DNS-enabled TCP Transport over the Mplex protocol. - let transport = libp2p::development_transport(local_key.clone()).await?; + let transport = tcp::async_io::Transport::default() + .upgrade(Version::V1) + .authenticate(noise::NoiseAuthenticated::xx(&local_key).unwrap()) + .multiplex(yamux::YamuxConfig::default()) + .boxed(); // We create a custom network behaviour that combines Gossipsub and Mdns. #[derive(NetworkBehaviour)] diff --git a/examples/ipfs-kad.rs b/examples/ipfs-kad.rs index 659cd49b607..e541d4245b0 100644 --- a/examples/ipfs-kad.rs +++ b/examples/ipfs-kad.rs @@ -28,9 +28,11 @@ use futures::StreamExt; use libp2p::kad::record::store::MemoryStore; use libp2p::kad::{GetClosestPeersError, Kademlia, KademliaConfig, KademliaEvent, QueryResult}; use libp2p::{ - development_transport, identity, + core::upgrade::Version, + core::Transport, + identity, noise, swarm::{Swarm, SwarmEvent}, - Multiaddr, PeerId, + tcp, yamux, Multiaddr, PeerId, }; use std::{env, error::Error, str::FromStr, time::Duration}; @@ -49,8 +51,11 @@ async fn main() -> Result<(), Box> { let local_key = identity::Keypair::generate_ed25519(); let local_peer_id = PeerId::from(local_key.public()); - // Set up a an encrypted DNS-enabled TCP Transport over the Mplex protocol - let transport = development_transport(local_key).await?; + let transport = tcp::async_io::Transport::default() + .upgrade(Version::V1) + .authenticate(noise::NoiseAuthenticated::xx(&local_key)?) + .multiplex(yamux::YamuxConfig::default()) + .boxed(); // Create a swarm to manage peers and events. let mut swarm = { diff --git a/examples/mdns-passive-discovery.rs b/examples/mdns-passive-discovery.rs index 8231d888dcc..1c2ea9f7286 100644 --- a/examples/mdns-passive-discovery.rs +++ b/examples/mdns-passive-discovery.rs @@ -20,10 +20,12 @@ use futures::StreamExt; use libp2p::{ + core::{upgrade::Version, Transport}, identity, mdns::{Mdns, MdnsConfig, MdnsEvent}, + noise, swarm::{Swarm, SwarmEvent}, - PeerId, + tcp, yamux, PeerId, }; use std::error::Error; @@ -37,7 +39,11 @@ async fn main() -> Result<(), Box> { println!("Local peer id: {peer_id:?}"); // Create a transport. - let transport = libp2p::development_transport(id_keys).await?; + let transport = tcp::async_io::Transport::default() + .upgrade(Version::V1) + .authenticate(noise::NoiseAuthenticated::xx(&id_keys)?) + .multiplex(yamux::YamuxConfig::default()) + .boxed(); // Create an MDNS network behaviour. let behaviour = Mdns::new(MdnsConfig::default())?; diff --git a/examples/ping.rs b/examples/ping.rs index a2da2834127..30b2ecc85d4 100644 --- a/examples/ping.rs +++ b/examples/ping.rs @@ -42,7 +42,10 @@ use futures::prelude::*; use libp2p::swarm::{NetworkBehaviour, Swarm, SwarmEvent}; -use libp2p::{identity, ping, Multiaddr, PeerId}; +use libp2p::{ + core::{upgrade::Version, Transport}, + identity, noise, ping, tcp, yamux, Multiaddr, PeerId, +}; use libp2p_swarm::keep_alive; use std::error::Error; @@ -52,7 +55,11 @@ async fn main() -> Result<(), Box> { let local_peer_id = PeerId::from(local_key.public()); println!("Local peer id: {local_peer_id:?}"); - let transport = libp2p::development_transport(local_key).await?; + let transport = tcp::async_io::Transport::default() + .upgrade(Version::V1) + .authenticate(noise::NoiseAuthenticated::xx(&local_key)?) + .multiplex(yamux::YamuxConfig::default()) + .boxed(); let mut swarm = Swarm::new(transport, Behaviour::default(), local_peer_id); diff --git a/misc/metrics/examples/metrics/main.rs b/misc/metrics/examples/metrics/main.rs index 1f661cb9ecd..6458957574d 100644 --- a/misc/metrics/examples/metrics/main.rs +++ b/misc/metrics/examples/metrics/main.rs @@ -54,7 +54,10 @@ use futures::stream::StreamExt; use libp2p::core::Multiaddr; use libp2p::metrics::{Metrics, Recorder}; use libp2p::swarm::{NetworkBehaviour, SwarmEvent}; -use libp2p::{identity, ping, PeerId, Swarm}; +use libp2p::{ + core::{upgrade::Version, Transport}, + identity, noise, ping, tcp, yamux, PeerId, Swarm, +}; use libp2p_swarm::keep_alive; use log::info; use prometheus_client::registry::Registry; @@ -71,7 +74,11 @@ fn main() -> Result<(), Box> { info!("Local peer id: {:?}", local_peer_id); let mut swarm = Swarm::new( - block_on(libp2p::development_transport(local_key))?, + tcp::async_io::Transport::default() + .upgrade(Version::V1) + .authenticate(noise::NoiseAuthenticated::xx(&local_key)?) + .multiplex(yamux::YamuxConfig::default()) + .boxed(), Behaviour::default(), local_peer_id, ); diff --git a/protocols/autonat/examples/autonat_client.rs b/protocols/autonat/examples/autonat_client.rs index bdd54ff406d..5a5b23b420d 100644 --- a/protocols/autonat/examples/autonat_client.rs +++ b/protocols/autonat/examples/autonat_client.rs @@ -32,10 +32,15 @@ use clap::Parser; use futures::prelude::*; use libp2p::autonat; +use libp2p::core::Transport; use libp2p::identify; use libp2p::multiaddr::Protocol; +use libp2p::noise; use libp2p::swarm::{NetworkBehaviour, Swarm, SwarmEvent}; +use libp2p::tcp; +use libp2p::yamux; use libp2p::{identity, Multiaddr, PeerId}; +use libp2p_core::upgrade::Version; use std::error::Error; use std::net::Ipv4Addr; use std::time::Duration; @@ -63,7 +68,11 @@ async fn main() -> Result<(), Box> { let local_peer_id = PeerId::from(local_key.public()); println!("Local peer id: {:?}", local_peer_id); - let transport = libp2p::development_transport(local_key.clone()).await?; + let transport = tcp::async_io::Transport::default() + .upgrade(Version::V1) + .authenticate(noise::NoiseAuthenticated::xx(&local_key)?) + .multiplex(yamux::YamuxConfig::default()) + .boxed(); let behaviour = Behaviour::new(local_key.public()); diff --git a/protocols/autonat/examples/autonat_server.rs b/protocols/autonat/examples/autonat_server.rs index 82a06b8b55d..19473cc8920 100644 --- a/protocols/autonat/examples/autonat_server.rs +++ b/protocols/autonat/examples/autonat_server.rs @@ -31,8 +31,13 @@ use futures::prelude::*; use libp2p::autonat; use libp2p::identify; use libp2p::multiaddr::Protocol; +use libp2p::noise; use libp2p::swarm::{NetworkBehaviour, Swarm, SwarmEvent}; +use libp2p::tcp; +use libp2p::yamux; use libp2p::{identity, Multiaddr, PeerId}; +use libp2p_core::upgrade::Version; +use libp2p_core::Transport; use std::error::Error; use std::net::Ipv4Addr; @@ -53,7 +58,11 @@ async fn main() -> Result<(), Box> { let local_peer_id = PeerId::from(local_key.public()); println!("Local peer id: {:?}", local_peer_id); - let transport = libp2p::development_transport(local_key.clone()).await?; + let transport = tcp::async_io::Transport::default() + .upgrade(Version::V1) + .authenticate(noise::NoiseAuthenticated::xx(&local_key)?) + .multiplex(yamux::YamuxConfig::default()) + .boxed(); let behaviour = Behaviour::new(local_key.public()); diff --git a/protocols/autonat/tests/test_client.rs b/protocols/autonat/tests/test_client.rs index 420bcf99829..2298c16a882 100644 --- a/protocols/autonat/tests/test_client.rs +++ b/protocols/autonat/tests/test_client.rs @@ -21,10 +21,12 @@ use futures::{channel::oneshot, Future, FutureExt, StreamExt}; use futures_timer::Delay; use libp2p::{ - development_transport, + core::upgrade::Version, + core::Transport, identity::Keypair, + noise, swarm::{AddressScore, Swarm, SwarmEvent}, - Multiaddr, PeerId, + tcp, yamux, Multiaddr, PeerId, }; use libp2p_autonat::{ Behaviour, Config, Event, NatStatus, OutboundProbeError, OutboundProbeEvent, ResponseError, @@ -38,7 +40,11 @@ const TEST_REFRESH_INTERVAL: Duration = Duration::from_secs(2); async fn init_swarm(config: Config) -> Swarm { let keypair = Keypair::generate_ed25519(); let local_id = PeerId::from_public_key(&keypair.public()); - let transport = development_transport(keypair).await.unwrap(); + let transport = tcp::async_io::Transport::default() + .upgrade(Version::V1) + .authenticate(noise::NoiseAuthenticated::xx(&keypair).unwrap()) + .multiplex(yamux::YamuxConfig::default()) + .boxed(); let behaviour = Behaviour::new(local_id, config); Swarm::new(transport, behaviour, local_id) } diff --git a/protocols/autonat/tests/test_server.rs b/protocols/autonat/tests/test_server.rs index b45ae7ecafc..b7dbe4e40cd 100644 --- a/protocols/autonat/tests/test_server.rs +++ b/protocols/autonat/tests/test_server.rs @@ -23,11 +23,13 @@ use futures_timer::Delay; use libp2p::core::{ConnectedPoint, Endpoint}; use libp2p::swarm::DialError; use libp2p::{ - development_transport, + core::upgrade::Version, + core::Transport, identity::Keypair, multiaddr::Protocol, + noise, swarm::{AddressScore, Swarm, SwarmEvent}, - Multiaddr, PeerId, + tcp, yamux, Multiaddr, PeerId, }; use libp2p_autonat::{ Behaviour, Config, Event, InboundProbeError, InboundProbeEvent, ResponseError, @@ -37,7 +39,11 @@ use std::{num::NonZeroU32, time::Duration}; async fn init_swarm(config: Config) -> Swarm { let keypair = Keypair::generate_ed25519(); let local_id = PeerId::from_public_key(&keypair.public()); - let transport = development_transport(keypair).await.unwrap(); + let transport = tcp::async_io::Transport::default() + .upgrade(Version::V1) + .authenticate(noise::NoiseAuthenticated::xx(&keypair).unwrap()) + .multiplex(yamux::YamuxConfig::default()) + .boxed(); let behaviour = Behaviour::new(local_id, config); Swarm::new(transport, behaviour, local_id) } diff --git a/protocols/identify/examples/identify.rs b/protocols/identify/examples/identify.rs index b02eb1c9ebf..a421283dab9 100644 --- a/protocols/identify/examples/identify.rs +++ b/protocols/identify/examples/identify.rs @@ -37,7 +37,10 @@ //! and will send each other identify info which is then printed to the console. use futures::prelude::*; -use libp2p::{identify, identity, Multiaddr, PeerId}; +use libp2p::{ + core::{upgrade::Version, Transport}, + identify, identity, noise, tcp, yamux, Multiaddr, PeerId, +}; use libp2p_swarm::{Swarm, SwarmEvent}; use std::error::Error; @@ -47,7 +50,11 @@ async fn main() -> Result<(), Box> { let local_peer_id = PeerId::from(local_key.public()); println!("Local peer id: {:?}", local_peer_id); - let transport = libp2p::development_transport(local_key.clone()).await?; + let transport = tcp::async_io::Transport::default() + .upgrade(Version::V1) + .authenticate(noise::NoiseAuthenticated::xx(&local_key)?) + .multiplex(yamux::YamuxConfig::default()) + .boxed(); // Create a identify network behaviour. let behaviour = identify::Behaviour::new(identify::Config::new( diff --git a/protocols/mdns/tests/use-async-std.rs b/protocols/mdns/tests/use-async-std.rs index 2ddb36355be..0c4d0b7a1bc 100644 --- a/protocols/mdns/tests/use-async-std.rs +++ b/protocols/mdns/tests/use-async-std.rs @@ -20,10 +20,12 @@ use futures::StreamExt; use libp2p::{ + core::{upgrade::Version, Transport}, identity, mdns::{Mdns, MdnsConfig, MdnsEvent}, + noise, swarm::{Swarm, SwarmEvent}, - PeerId, + tcp, yamux, PeerId, }; use std::error::Error; use std::time::Duration; @@ -60,7 +62,11 @@ async fn test_expired_async_std() -> Result<(), Box> { async fn create_swarm(config: MdnsConfig) -> Result, Box> { let id_keys = identity::Keypair::generate_ed25519(); let peer_id = PeerId::from(id_keys.public()); - let transport = libp2p::development_transport(id_keys).await?; + let transport = tcp::async_io::Transport::default() + .upgrade(Version::V1) + .authenticate(noise::NoiseAuthenticated::xx(&id_keys)?) + .multiplex(yamux::YamuxConfig::default()) + .boxed(); let behaviour = Mdns::new(config)?; let mut swarm = Swarm::new(transport, behaviour, peer_id); swarm.listen_on("/ip4/0.0.0.0/tcp/0".parse()?)?; diff --git a/protocols/mdns/tests/use-tokio.rs b/protocols/mdns/tests/use-tokio.rs index 830557d3f00..eedc0532706 100644 --- a/protocols/mdns/tests/use-tokio.rs +++ b/protocols/mdns/tests/use-tokio.rs @@ -19,11 +19,14 @@ // DEALINGS IN THE SOFTWARE.use futures::StreamExt; use futures::StreamExt; use libp2p::{ + core::{upgrade::Version, Transport}, identity, mdns::{MdnsConfig, MdnsEvent, TokioMdns}, + noise, swarm::{Swarm, SwarmEvent}, - PeerId, + tcp, yamux, PeerId, }; +use libp2p_swarm::SwarmBuilder; use std::error::Error; use std::time::Duration; @@ -56,9 +59,17 @@ async fn test_expired_tokio() -> Result<(), Box> { async fn create_swarm(config: MdnsConfig) -> Result, Box> { let id_keys = identity::Keypair::generate_ed25519(); let peer_id = PeerId::from(id_keys.public()); - let transport = libp2p::tokio_development_transport(id_keys)?; + let transport = tcp::tokio::Transport::default() + .upgrade(Version::V1) + .authenticate(noise::NoiseAuthenticated::xx(&id_keys)?) + .multiplex(yamux::YamuxConfig::default()) + .boxed(); let behaviour = TokioMdns::new(config)?; - let mut swarm = Swarm::new(transport, behaviour, peer_id); + let mut swarm = SwarmBuilder::new(transport, behaviour, peer_id) + .executor(Box::new(|f| { + tokio::spawn(f); + })) + .build(); swarm.listen_on("/ip4/0.0.0.0/tcp/0".parse()?)?; Ok(swarm) } diff --git a/protocols/rendezvous/examples/discover.rs b/protocols/rendezvous/examples/discover.rs index 0d1a6daca58..1d81a6c4f0d 100644 --- a/protocols/rendezvous/examples/discover.rs +++ b/protocols/rendezvous/examples/discover.rs @@ -23,9 +23,11 @@ use libp2p::core::identity; use libp2p::core::PeerId; use libp2p::multiaddr::Protocol; use libp2p::ping; -use libp2p::swarm::{keep_alive, SwarmEvent}; -use libp2p::Swarm; -use libp2p::{development_transport, rendezvous, Multiaddr}; +use libp2p::swarm::{keep_alive, SwarmBuilder, SwarmEvent}; +use libp2p::{ + core::{upgrade::Version, Transport}, + noise, rendezvous, tcp, yamux, Multiaddr, +}; use std::time::Duration; use void::Void; @@ -41,15 +43,23 @@ async fn main() { .parse() .unwrap(); - let mut swarm = Swarm::new( - development_transport(identity.clone()).await.unwrap(), + let mut swarm = SwarmBuilder::new( + tcp::tokio::Transport::default() + .upgrade(Version::V1) + .authenticate(noise::NoiseAuthenticated::xx(&identity).unwrap()) + .multiplex(yamux::YamuxConfig::default()) + .boxed(), MyBehaviour { rendezvous: rendezvous::client::Behaviour::new(identity.clone()), ping: ping::Behaviour::new(ping::Config::new().with_interval(Duration::from_secs(1))), keep_alive: keep_alive::Behaviour, }, PeerId::from(identity.public()), - ); + ) + .executor(Box::new(|f| { + tokio::spawn(f); + })) + .build(); log::info!("Local peer id: {}", swarm.local_peer_id()); diff --git a/protocols/rendezvous/examples/register.rs b/protocols/rendezvous/examples/register.rs index 471ff739426..042db8d28cc 100644 --- a/protocols/rendezvous/examples/register.rs +++ b/protocols/rendezvous/examples/register.rs @@ -22,10 +22,11 @@ use futures::StreamExt; use libp2p::core::identity; use libp2p::core::PeerId; use libp2p::ping; -use libp2p::swarm::{NetworkBehaviour, Swarm, SwarmEvent}; -use libp2p::Multiaddr; -use libp2p::{development_transport, rendezvous}; -use libp2p_swarm::AddressScore; +use libp2p::swarm::{AddressScore, NetworkBehaviour, SwarmBuilder, SwarmEvent}; +use libp2p::{ + core::{upgrade::Version, Transport}, + noise, rendezvous, tcp, yamux, Multiaddr, +}; use std::time::Duration; #[tokio::main] @@ -39,14 +40,22 @@ async fn main() { let identity = identity::Keypair::generate_ed25519(); - let mut swarm = Swarm::new( - development_transport(identity.clone()).await.unwrap(), + let mut swarm = SwarmBuilder::new( + tcp::tokio::Transport::default() + .upgrade(Version::V1) + .authenticate(noise::NoiseAuthenticated::xx(&identity).unwrap()) + .multiplex(yamux::YamuxConfig::default()) + .boxed(), MyBehaviour { rendezvous: rendezvous::client::Behaviour::new(identity.clone()), ping: ping::Behaviour::new(ping::Config::new().with_interval(Duration::from_secs(1))), }, PeerId::from(identity.public()), - ); + ) + .executor(Box::new(|f| { + tokio::spawn(f); + })) + .build(); // In production the external address should be the publicly facing IP address of the rendezvous point. // This address is recorded in the registration entry by the rendezvous point. diff --git a/protocols/rendezvous/examples/register_with_identify.rs b/protocols/rendezvous/examples/register_with_identify.rs index bf30fa906f7..e83e8dcd165 100644 --- a/protocols/rendezvous/examples/register_with_identify.rs +++ b/protocols/rendezvous/examples/register_with_identify.rs @@ -23,9 +23,9 @@ use libp2p::core::identity; use libp2p::core::PeerId; use libp2p::identify; use libp2p::ping; -use libp2p::swarm::{keep_alive, NetworkBehaviour, Swarm, SwarmEvent}; +use libp2p::swarm::{keep_alive, NetworkBehaviour, SwarmBuilder, SwarmEvent}; use libp2p::Multiaddr; -use libp2p::{development_transport, rendezvous}; +use libp2p::{core::upgrade::Version, core::Transport, noise, rendezvous, tcp, yamux}; use std::time::Duration; use void::Void; @@ -40,8 +40,12 @@ async fn main() { let identity = identity::Keypair::generate_ed25519(); - let mut swarm = Swarm::new( - development_transport(identity.clone()).await.unwrap(), + let mut swarm = SwarmBuilder::new( + tcp::tokio::Transport::default() + .upgrade(Version::V1) + .authenticate(noise::NoiseAuthenticated::xx(&identity).unwrap()) + .multiplex(yamux::YamuxConfig::default()) + .boxed(), MyBehaviour { identify: identify::Behaviour::new(identify::Config::new( "rendezvous-example/1.0.0".to_string(), @@ -52,7 +56,11 @@ async fn main() { keep_alive: keep_alive::Behaviour, }, PeerId::from(identity.public()), - ); + ) + .executor(Box::new(|f| { + tokio::spawn(f); + })) + .build(); log::info!("Local peer id: {}", swarm.local_peer_id()); diff --git a/protocols/rendezvous/examples/rendezvous_point.rs b/protocols/rendezvous/examples/rendezvous_point.rs index c8688b98573..d96b3c83a30 100644 --- a/protocols/rendezvous/examples/rendezvous_point.rs +++ b/protocols/rendezvous/examples/rendezvous_point.rs @@ -23,8 +23,8 @@ use libp2p::core::identity; use libp2p::core::PeerId; use libp2p::identify; use libp2p::ping; -use libp2p::swarm::{keep_alive, NetworkBehaviour, Swarm, SwarmEvent}; -use libp2p::{development_transport, rendezvous}; +use libp2p::swarm::{keep_alive, NetworkBehaviour, SwarmBuilder, SwarmEvent}; +use libp2p::{core::upgrade::Version, core::Transport, noise, rendezvous, tcp, yamux}; use void::Void; /// Examples for the rendezvous protocol: @@ -43,8 +43,12 @@ async fn main() { let key = identity::ed25519::SecretKey::from_bytes(bytes).expect("we always pass 32 bytes"); let identity = identity::Keypair::Ed25519(key.into()); - let mut swarm = Swarm::new( - development_transport(identity.clone()).await.unwrap(), + let mut swarm = SwarmBuilder::new( + tcp::tokio::Transport::default() + .upgrade(Version::V1) + .authenticate(noise::NoiseAuthenticated::xx(&identity).unwrap()) + .multiplex(yamux::YamuxConfig::default()) + .boxed(), MyBehaviour { identify: identify::Behaviour::new(identify::Config::new( "rendezvous-example/1.0.0".to_string(), @@ -55,7 +59,11 @@ async fn main() { keep_alive: keep_alive::Behaviour, }, PeerId::from(identity.public()), - ); + ) + .executor(Box::new(|f| { + tokio::spawn(f); + })) + .build(); log::info!("Local peer id: {}", swarm.local_peer_id());