Crate tet_libp2p_swarm

Source
Expand description

High level manager of the network.

A Swarm contains the state of the network as a whole. The entire behaviour of a libp2p network can be controlled through the Swarm. The Swarm struct contains all active and pending connections to remotes and manages the state of all the substreams that have been opened, and all the upgrades that were built upon these substreams.

§Initializing a Swarm

Creating a Swarm requires three things:

  1. A network identity of the local node in form of a PeerId.
  2. An implementation of the Transport trait. This is the type that will be used in order to reach nodes on the network based on their address. See the transport module for more information.
  3. An implementation of the NetworkBehaviour trait. This is a state machine that defines how the swarm should behave once it is connected to a node.

§Network Behaviour

The NetworkBehaviour trait is implemented on types that indicate to the swarm how it should behave. This includes which protocols are supported and which nodes to try to connect to. It is the NetworkBehaviour that controls what happens on the network. Multiple types that implement NetworkBehaviour can be composed into a single behaviour.

§Protocols Handler

The ProtocolsHandler trait defines how each active connection to a remote should behave: how to handle incoming substreams, which protocols are supported, when to open a new outbound substream, etc.

Re-exports§

pub use protocols_handler::IntoProtocolsHandler;
pub use protocols_handler::IntoProtocolsHandlerSelect;
pub use protocols_handler::KeepAlive;
pub use protocols_handler::ProtocolsHandler;
pub use protocols_handler::ProtocolsHandlerEvent;
pub use protocols_handler::ProtocolsHandlerSelect;
pub use protocols_handler::ProtocolsHandlerUpgrErr;
pub use protocols_handler::OneShotHandler;
pub use protocols_handler::OneShotHandlerConfig;
pub use protocols_handler::SubstreamProtocol;

Modules§

protocols_handler
Once a connection to a remote peer is established, a ProtocolsHandler negotiates and handles one or more specific protocols on the connection.
toggle

Structs§

AddressRecord
An record in a prioritised list of addresses.
DummyBehaviour
Dummy implementation of NetworkBehaviour that doesn’t do anything.
ExpandedSwarm
Contains the state of the network, plus the way it should behave.
SwarmBuilder
A SwarmBuilder provides an API for configuring and constructing a Swarm, including the underlying Network.
SwarmPollParameters
Parameters passed to poll(), that the NetworkBehaviour has access to.

Enums§

AddAddressResult
The result of adding an address to an ordered list of addresses with associated scores.
AddressScore
The “score” of an address w.r.t. an ordered collection of addresses.
DialError
The possible failures of ExpandedSwarm::dial.
DialPeerCondition
The available conditions under which a new dialing attempt to a peer is initiated when requested by NetworkBehaviourAction::DialPeer.
NetworkBehaviourAction
An action that a NetworkBehaviour can trigger in the Swarm in whose context it is executing.
NotifyHandler
The options w.r.t. which connection handler to notify of an event.
SwarmEvent
Event generated by the Swarm.

Traits§

NetworkBehaviour
A behaviour for the network. Allows customizing the swarm.
NetworkBehaviourEventProcess
When deriving NetworkBehaviour this trait must by default be implemented for all the possible event types generated by the inner behaviours.
PollParameters
Parameters passed to poll(), that the NetworkBehaviour has access to.

Type Aliases§

NegotiatedSubstream
Substream for which a protocol has been chosen.
Swarm
Contains the state of the network, plus the way it should behave.