pub struct NetworkBehaviourImpl {
pub kademlia: Behaviour<MemoryStore>,
pub gossipsub: Behaviour,
pub mdns: Toggle<Behaviour>,
pub ping: Behaviour,
pub identify: Behaviour,
pub relay: Behaviour,
pub dcutr: Behaviour,
pub request_response: Behaviour<QuDagRequest, QuDagResponse>,
}Expand description
Combined network behaviour for the P2P node
Fields§
§kademlia: Behaviour<MemoryStore>Kademlia DHT for peer discovery and content routing
gossipsub: BehaviourGossipsub for pub/sub messaging
mdns: Toggle<Behaviour>MDNS for local peer discovery
ping: BehaviourPing for keep-alive and latency measurement
identify: BehaviourIdentify protocol for peer identification
relay: BehaviourRelay for NAT traversal
dcutr: BehaviourDirect connection upgrade through relay
request_response: Behaviour<QuDagRequest, QuDagResponse>Request-response protocol for custom messages
Trait Implementations§
Source§impl NetworkBehaviour for NetworkBehaviourImplwhere
Behaviour<MemoryStore>: NetworkBehaviour,
Behaviour: NetworkBehaviour,
Toggle<Behaviour>: NetworkBehaviour,
Behaviour: NetworkBehaviour,
Behaviour: NetworkBehaviour,
Behaviour: NetworkBehaviour,
Behaviour: NetworkBehaviour,
Behaviour<QuDagRequest, QuDagResponse>: NetworkBehaviour,
NetworkBehaviourEvent: From<<Behaviour<MemoryStore> as NetworkBehaviour>::ToSwarm> + From<<Behaviour as NetworkBehaviour>::ToSwarm> + From<<Toggle<Behaviour> as NetworkBehaviour>::ToSwarm> + From<<Behaviour as NetworkBehaviour>::ToSwarm> + From<<Behaviour as NetworkBehaviour>::ToSwarm> + From<<Behaviour as NetworkBehaviour>::ToSwarm> + From<<Behaviour as NetworkBehaviour>::ToSwarm> + From<<Behaviour<QuDagRequest, QuDagResponse> as NetworkBehaviour>::ToSwarm>,
impl NetworkBehaviour for NetworkBehaviourImplwhere
Behaviour<MemoryStore>: NetworkBehaviour,
Behaviour: NetworkBehaviour,
Toggle<Behaviour>: NetworkBehaviour,
Behaviour: NetworkBehaviour,
Behaviour: NetworkBehaviour,
Behaviour: NetworkBehaviour,
Behaviour: NetworkBehaviour,
Behaviour<QuDagRequest, QuDagResponse>: NetworkBehaviour,
NetworkBehaviourEvent: From<<Behaviour<MemoryStore> as NetworkBehaviour>::ToSwarm> + From<<Behaviour as NetworkBehaviour>::ToSwarm> + From<<Toggle<Behaviour> as NetworkBehaviour>::ToSwarm> + From<<Behaviour as NetworkBehaviour>::ToSwarm> + From<<Behaviour as NetworkBehaviour>::ToSwarm> + From<<Behaviour as NetworkBehaviour>::ToSwarm> + From<<Behaviour as NetworkBehaviour>::ToSwarm> + From<<Behaviour<QuDagRequest, QuDagResponse> as NetworkBehaviour>::ToSwarm>,
Source§type ConnectionHandler = ConnectionHandlerSelect<ConnectionHandlerSelect<ConnectionHandlerSelect<ConnectionHandlerSelect<ConnectionHandlerSelect<ConnectionHandlerSelect<ConnectionHandlerSelect<<Behaviour<MemoryStore> as NetworkBehaviour>::ConnectionHandler, <Behaviour as NetworkBehaviour>::ConnectionHandler>, <Toggle<Behaviour<Tokio>> as NetworkBehaviour>::ConnectionHandler>, <Behaviour as NetworkBehaviour>::ConnectionHandler>, <Behaviour as NetworkBehaviour>::ConnectionHandler>, <Behaviour as NetworkBehaviour>::ConnectionHandler>, <Behaviour as NetworkBehaviour>::ConnectionHandler>, <Behaviour<Codec<QuDagRequest, QuDagResponse>> as NetworkBehaviour>::ConnectionHandler>
type ConnectionHandler = ConnectionHandlerSelect<ConnectionHandlerSelect<ConnectionHandlerSelect<ConnectionHandlerSelect<ConnectionHandlerSelect<ConnectionHandlerSelect<ConnectionHandlerSelect<<Behaviour<MemoryStore> as NetworkBehaviour>::ConnectionHandler, <Behaviour as NetworkBehaviour>::ConnectionHandler>, <Toggle<Behaviour<Tokio>> as NetworkBehaviour>::ConnectionHandler>, <Behaviour as NetworkBehaviour>::ConnectionHandler>, <Behaviour as NetworkBehaviour>::ConnectionHandler>, <Behaviour as NetworkBehaviour>::ConnectionHandler>, <Behaviour as NetworkBehaviour>::ConnectionHandler>, <Behaviour<Codec<QuDagRequest, QuDagResponse>> as NetworkBehaviour>::ConnectionHandler>
Handler for all the protocols the network behaviour supports.
Source§type ToSwarm = NetworkBehaviourEvent
type ToSwarm = NetworkBehaviourEvent
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 !RefUnwindSafe for NetworkBehaviourImpl
impl !Sync for NetworkBehaviourImpl
impl !UnwindSafe for NetworkBehaviourImpl
impl Freeze for NetworkBehaviourImpl
impl Send for NetworkBehaviourImpl
impl Unpin for NetworkBehaviourImpl
impl UnsafeUnpin for NetworkBehaviourImpl
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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
impl<T> ErasedDestructor for Twhere
T: 'static,
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