pub struct DiscoveryBehaviour {
pub mdns: Behaviour,
pub kademlia: Behaviour<MemoryStore>,
}Expand description
The libp2p network behaviour for peer discovery.
Fields§
§mdns: BehaviourThe mDNS behaviour for local peer discovery.
kademlia: Behaviour<MemoryStore>The Kademlia behaviour for decentralized peer discovery.
Implementations§
Source§impl DiscoveryBehaviour
impl DiscoveryBehaviour
Sourcepub fn bootstrap(&mut self) -> Result<()>
pub fn bootstrap(&mut self) -> Result<()>
Bootstraps the Kademlia DHT.
This will start the process of finding other peers in the network.
§Errors
This function will return an error if the bootstrap process fails.
Sourcepub fn start_providing(&mut self, key: RecordKey) -> Result<()>
pub fn start_providing(&mut self, key: RecordKey) -> Result<()>
Sourcepub fn get_providers(&mut self, key: RecordKey) -> QueryId
pub fn get_providers(&mut self, key: RecordKey) -> QueryId
Sourcepub fn add_peer_address(&mut self, peer_id: PeerId, address: Multiaddr)
pub fn add_peer_address(&mut self, peer_id: PeerId, address: Multiaddr)
Adds a known address for a peer to the Kademlia DHT.
§Arguments
peer_id- ThePeerIdof the peer.address- TheMultiaddrof the peer.
Trait Implementations§
Source§impl NetworkBehaviour for DiscoveryBehaviour
impl NetworkBehaviour for DiscoveryBehaviour
Source§type ConnectionHandler = ConnectionHandlerSelect<<Behaviour<Tokio> as NetworkBehaviour>::ConnectionHandler, <Behaviour<MemoryStore> as NetworkBehaviour>::ConnectionHandler>
type ConnectionHandler = ConnectionHandlerSelect<<Behaviour<Tokio> as NetworkBehaviour>::ConnectionHandler, <Behaviour<MemoryStore> as NetworkBehaviour>::ConnectionHandler>
Handler for all the protocols the network behaviour supports.
Source§type ToSwarm = DiscoveryBehaviourEvent
type ToSwarm = DiscoveryBehaviourEvent
Event generated by the
NetworkBehaviour and that the swarm will report back.Source§fn handle_pending_inbound_connection(
&mut self,
connection_id: ConnectionId,
local_addr: &Multiaddr,
remote_addr: &Multiaddr,
) -> Result<(), ConnectionDenied>
fn handle_pending_inbound_connection( &mut self, connection_id: ConnectionId, local_addr: &Multiaddr, remote_addr: &Multiaddr, ) -> Result<(), ConnectionDenied>
Callback that is invoked for every new inbound connection. Read more
Source§fn handle_established_inbound_connection(
&mut self,
connection_id: ConnectionId,
peer: PeerId,
local_addr: &Multiaddr,
remote_addr: &Multiaddr,
) -> Result<THandler<Self>, ConnectionDenied>
fn handle_established_inbound_connection( &mut self, connection_id: ConnectionId, peer: PeerId, local_addr: &Multiaddr, remote_addr: &Multiaddr, ) -> Result<THandler<Self>, ConnectionDenied>
Callback that is invoked for every established inbound connection. Read more
Source§fn handle_pending_outbound_connection(
&mut self,
connection_id: ConnectionId,
maybe_peer: Option<PeerId>,
addresses: &[Multiaddr],
effective_role: Endpoint,
) -> Result<Vec<Multiaddr>, ConnectionDenied>
fn handle_pending_outbound_connection( &mut self, connection_id: ConnectionId, maybe_peer: Option<PeerId>, addresses: &[Multiaddr], effective_role: Endpoint, ) -> Result<Vec<Multiaddr>, ConnectionDenied>
Callback that is invoked for every outbound connection attempt. Read more
Source§fn handle_established_outbound_connection(
&mut self,
connection_id: ConnectionId,
peer: PeerId,
addr: &Multiaddr,
role_override: Endpoint,
) -> Result<THandler<Self>, ConnectionDenied>
fn handle_established_outbound_connection( &mut self, connection_id: ConnectionId, peer: PeerId, addr: &Multiaddr, role_override: Endpoint, ) -> Result<THandler<Self>, ConnectionDenied>
Callback that is invoked for every established outbound connection. Read more
Source§fn on_connection_handler_event(
&mut self,
peer_id: PeerId,
connection_id: ConnectionId,
event: THandlerOutEvent<Self>,
)
fn on_connection_handler_event( &mut self, peer_id: PeerId, connection_id: ConnectionId, event: THandlerOutEvent<Self>, )
Informs the behaviour about an event generated by the
ConnectionHandler
dedicated to the peer identified by peer_id. for the behaviour. Read moreSource§fn poll(
&mut self,
cx: &mut Context<'_>,
) -> Poll<ToSwarm<Self::ToSwarm, THandlerInEvent<Self>>>
fn poll( &mut self, cx: &mut Context<'_>, ) -> Poll<ToSwarm<Self::ToSwarm, THandlerInEvent<Self>>>
Polls for things that swarm should do. Read more
Source§fn on_swarm_event(&mut self, event: FromSwarm<'_>)
fn on_swarm_event(&mut self, event: FromSwarm<'_>)
Informs the behaviour about an event from the
Swarm.Auto Trait Implementations§
impl Freeze for DiscoveryBehaviour
impl !RefUnwindSafe for DiscoveryBehaviour
impl Send for DiscoveryBehaviour
impl !Sync for DiscoveryBehaviour
impl Unpin for DiscoveryBehaviour
impl !UnwindSafe for DiscoveryBehaviour
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more