diff --git a/src/p2p/behaviour.rs b/src/p2p/behaviour.rs index 86293bd8..cb6be547 100644 --- a/src/p2p/behaviour.rs +++ b/src/p2p/behaviour.rs @@ -9,6 +9,7 @@ use libp2p::identify::{Identify, IdentifyEvent}; use libp2p::kad::{Kademlia, KademliaOut as KademliaEvent}; use libp2p::mdns::{Mdns, MdnsEvent}; use libp2p::ping::{Ping, PingEvent}; +use libp2p::floodsub::{Floodsub, FloodsubEvent}; //use parity_multihash::Multihash; use std::sync::Arc; use tokio::prelude::*; @@ -21,6 +22,7 @@ pub struct Behaviour, ping: Ping, identify: Identify, + floodsub: Floodsub, } impl @@ -32,13 +34,15 @@ impl MdnsEvent::Discovered(list) => { for (peer, _) in list { debug!("mdns: Discovered peer {}", peer.to_base58()); - self.bitswap.connect(peer); + self.bitswap.connect(peer.clone()); + self.floodsub.add_node_to_partial_view(peer); } } MdnsEvent::Expired(list) => { for (peer, _) in list { if !self.mdns.has_node(&peer) { debug!("mdns: Expired peer {}", peer.to_base58()); + self.floodsub.remove_node_from_partial_view(&peer); } } } @@ -111,6 +115,15 @@ impl } } +impl + NetworkBehaviourEventProcess for + Behaviour +{ + fn inject_event(&mut self, event: FloodsubEvent) { + debug!("floodsub: {:?}", event); + } +} + impl Behaviour { /// Create a Kademlia behaviour with the IPFS bootstrap nodes. @@ -132,6 +145,7 @@ impl Behaviour Behaviour