pub struct BlueprintProtocolBehaviour<K: KeyType> { /* private fields */ }
Expand description
Behaviour that handles the blueprint protocol request/response and gossip
Implementations§
Source§impl<K: KeyType> BlueprintProtocolBehaviour<K>
impl<K: KeyType> BlueprintProtocolBehaviour<K>
Sourcepub fn new(
local_key: &Keypair,
instance_key_pair: &K::Secret,
peer_manager: Arc<PeerManager<K>>,
blueprint_protocol_name: &str,
protocol_message_sender: Sender<ProtocolMessage>,
use_address_for_handshake_verification: bool,
) -> Self
pub fn new( local_key: &Keypair, instance_key_pair: &K::Secret, peer_manager: Arc<PeerManager<K>>, blueprint_protocol_name: &str, protocol_message_sender: Sender<ProtocolMessage>, use_address_for_handshake_verification: bool, ) -> Self
Create a new blueprint protocol behaviour
Sourcepub fn send_request(
&mut self,
peer: &PeerId,
request: InstanceMessageRequest<K>,
) -> OutboundRequestId
pub fn send_request( &mut self, peer: &PeerId, request: InstanceMessageRequest<K>, ) -> OutboundRequestId
Send a request to a peer
Sourcepub fn send_response(
&mut self,
channel: ResponseChannel<InstanceMessageResponse<K>>,
response: InstanceMessageResponse<K>,
) -> Result<(), InstanceMessageResponse<K>>
pub fn send_response( &mut self, channel: ResponseChannel<InstanceMessageResponse<K>>, response: InstanceMessageResponse<K>, ) -> Result<(), InstanceMessageResponse<K>>
Send a response through a response channel
§Errors
Sourcepub fn unsubscribe(&mut self, topic: &str) -> bool
pub fn unsubscribe(&mut self, topic: &str) -> bool
Unsubscribe from a gossip topic
Sourcepub fn publish(
&mut self,
topic: &str,
data: impl Into<Vec<u8>>,
) -> Result<MessageId, PublishError>
pub fn publish( &mut self, topic: &str, data: impl Into<Vec<u8>>, ) -> Result<MessageId, PublishError>
Sourcepub fn send_handshake(
&mut self,
peer: &PeerId,
) -> Result<(), InstanceMessageResponse<K>>
pub fn send_handshake( &mut self, peer: &PeerId, ) -> Result<(), InstanceMessageResponse<K>>
Sourcepub fn verify_handshake(
&self,
msg: &HandshakeMessage,
verification_id_key: &VerificationIdentifierKey<K>,
signature: &K::Signature,
) -> Result<(), InstanceMessageResponse<K>>
pub fn verify_handshake( &self, msg: &HandshakeMessage, verification_id_key: &VerificationIdentifierKey<K>, signature: &K::Signature, ) -> Result<(), InstanceMessageResponse<K>>
Sourcepub fn handle_handshake(
&self,
msg: &HandshakeMessage,
verification_id_key: &VerificationIdentifierKey<K>,
signature: &K::Signature,
) -> Result<(), InstanceMessageResponse<K>>
pub fn handle_handshake( &self, msg: &HandshakeMessage, verification_id_key: &VerificationIdentifierKey<K>, signature: &K::Signature, ) -> Result<(), InstanceMessageResponse<K>>
Sourcepub fn handle_handshake_failure(&self, peer: &PeerId, reason: &str)
pub fn handle_handshake_failure(&self, peer: &PeerId, reason: &str)
Handle a failed handshake with a peer
pub fn handle_gossipsub_event(&mut self, event: Event)
Source§impl<K: KeyType> BlueprintProtocolBehaviour<K>
impl<K: KeyType> BlueprintProtocolBehaviour<K>
pub fn handle_request_response_event( &mut self, event: Event<InstanceMessageRequest<K>, InstanceMessageResponse<K>>, )
Trait Implementations§
Source§impl<K: KeyType> NetworkBehaviour for BlueprintProtocolBehaviour<K>
impl<K: KeyType> NetworkBehaviour for BlueprintProtocolBehaviour<K>
Source§type ConnectionHandler = <DerivedBlueprintProtocolBehaviour<K> as NetworkBehaviour>::ConnectionHandler
type ConnectionHandler = <DerivedBlueprintProtocolBehaviour<K> as NetworkBehaviour>::ConnectionHandler
Handler for all the protocols the network behaviour supports.
Source§type ToSwarm = BlueprintProtocolEvent<K>
type ToSwarm = BlueprintProtocolEvent<K>
Event generated by the
NetworkBehaviour
and that the swarm will report back.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_established_outbound_connection(
&mut self,
connection_id: ConnectionId,
peer: PeerId,
addr: &Multiaddr,
role_override: Endpoint,
port_use: PortUse,
) -> Result<THandler<Self>, ConnectionDenied>
fn handle_established_outbound_connection( &mut self, connection_id: ConnectionId, peer: PeerId, addr: &Multiaddr, role_override: Endpoint, port_use: PortUse, ) -> Result<THandler<Self>, ConnectionDenied>
Callback that is invoked for every established outbound connection. Read more
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_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 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 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<K> Freeze for BlueprintProtocolBehaviour<K>
impl<K> !RefUnwindSafe for BlueprintProtocolBehaviour<K>
impl<K> Send for BlueprintProtocolBehaviour<K>
impl<K> Sync for BlueprintProtocolBehaviour<K>
impl<K> !Unpin for BlueprintProtocolBehaviour<K>
impl<K> !UnwindSafe for BlueprintProtocolBehaviour<K>
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> 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
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