pub struct Bitswap {
pub connected_peers: HashMap<PeerId, Ledger>,
pub queued_blocks: UnboundedSender<(PeerId, Block)>,
pub dont_have_tx: UnboundedSender<(PeerId, Cid)>,
pub stats: HashMap<PeerId, Arc<Stats>>,
/* private fields */
}Expand description
Network behaviour that handles sending and receiving IPFS blocks.
Fields§
§connected_peers: HashMap<PeerId, Ledger>Ledger
queued_blocks: UnboundedSender<(PeerId, Block)>Blocks queued to be sent
dont_have_tx: UnboundedSender<(PeerId, Cid)>§stats: HashMap<PeerId, Arc<Stats>>Statistics related to peers.
Implementations§
Source§impl Bitswap
impl Bitswap
Sourcepub fn local_wantlist(&self) -> Vec<(Cid, Priority)>
pub fn local_wantlist(&self) -> Vec<(Cid, Priority)>
Return the wantlist of the local node
Sourcepub fn peer_wantlist(&self, peer: &PeerId) -> Option<Vec<(Cid, Priority)>>
pub fn peer_wantlist(&self, peer: &PeerId) -> Option<Vec<(Cid, Priority)>>
Return the wantlist of a peer, if known
pub fn stats(&self) -> Stats
pub fn peers(&self) -> Vec<PeerId>
Sourcepub fn send_block(&mut self, peer_id: PeerId, block: Block)
pub fn send_block(&mut self, peer_id: PeerId, block: Block)
Sends a block to the peer.
Called from a Strategy.
Sourcepub fn want_block(&mut self, cid: Cid, priority: Priority)
pub fn want_block(&mut self, cid: Cid, priority: Priority)
Queues the wanted block for all peers.
A user request
Sourcepub fn want_block_from_peers(
&mut self,
cid: Cid,
priority: Priority,
peers: &[PeerId],
)
pub fn want_block_from_peers( &mut self, cid: Cid, priority: Priority, peers: &[PeerId], )
Queues the wanted block for specific peers.
A user request
pub fn dont_have_for_peer(&mut self, peer_id: PeerId, cid: Cid)
Sourcepub fn cancel_block(&mut self, cid: &Cid)
pub fn cancel_block(&mut self, cid: &Cid)
Removes the block from our want list and updates all peers.
Can be either a user request or be called when the block was received.
Trait Implementations§
Source§impl NetworkBehaviour for Bitswap
impl NetworkBehaviour for Bitswap
Source§type ConnectionHandler = OneShotHandler<BitswapConfig, Message, MessageWrapper>
type ConnectionHandler = OneShotHandler<BitswapConfig, Message, MessageWrapper>
Handler for all the protocols the network behaviour supports.
Source§type OutEvent = BitswapEvent
type OutEvent = BitswapEvent
Event generated by the
NetworkBehaviour and that the swarm will report back.Source§fn addresses_of_peer(&mut self, _peer_id: &PeerId) -> Vec<Multiaddr>
fn addresses_of_peer(&mut self, _peer_id: &PeerId) -> Vec<Multiaddr>
👎Deprecated: Use
NetworkBehaviour::handle_pending_outbound_connection instead.Addresses that this behaviour is aware of for this specific peer, and that may allow
reaching the peer. Read more
Source§fn on_swarm_event(&mut self, event: FromSwarm<'_, Self::ConnectionHandler>)
fn on_swarm_event(&mut self, event: FromSwarm<'_, Self::ConnectionHandler>)
Informs the behaviour about an event from the
Swarm.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,
) -> 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,
source: PeerId,
_connection: ConnectionId,
message: MessageWrapper,
)
fn on_connection_handler_event( &mut self, source: PeerId, _connection: ConnectionId, message: MessageWrapper, )
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,
ctx: &mut Context<'_>,
_: &mut impl PollParameters,
) -> Poll<NetworkBehaviourAction<Self::OutEvent, Message>>
fn poll( &mut self, ctx: &mut Context<'_>, _: &mut impl PollParameters, ) -> Poll<NetworkBehaviourAction<Self::OutEvent, Message>>
Polls for things that swarm should do. Read more
Source§fn new_handler(&mut self) -> Self::ConnectionHandler
fn new_handler(&mut self) -> Self::ConnectionHandler
👎Deprecated since 0.42.0: Use one or more of
NetworkBehaviour::{handle_pending_inbound_connection,handle_established_inbound_connection,handle_pending_outbound_connection,handle_established_outbound_connection} instead.Creates a new
ConnectionHandler for a connection with a peer. Read moreSource§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
Auto Trait Implementations§
impl Freeze for Bitswap
impl !RefUnwindSafe for Bitswap
impl Send for Bitswap
impl Sync for Bitswap
impl Unpin for Bitswap
impl !UnwindSafe for Bitswap
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