Crate hopr_transport_p2p

Source
Expand description

§P2P

The underlying technology for managing the peer-to-peer networking used by this package is the rust-libp2p library (documentation).

§Modularity

rust-libp2p is highly modular allowing for reimplmenting expected behavior using custom implementations for API traits.

This way it is possible to experiment with and combine different components of the library in order to construct a specific targeted use case.

§rust-libp2p connectivity

As per the official documentation, the connectivity types in the library are divided into the standalone (implementation of network over host) and browser (implementation of network over browser).

Nodes that are not located behind a blocking firewall or NAT are designated as public nodes and can utilize the TCP or QUIC connectivity, with the recommendation to use QUIC if possible.

Browser based solutions are almost always located behind a private network or a blocking firewall and to open a connection towards the standalone nodes these utilize either the WebSocket approach (by hijacking the TCP connection) or the (not yet fully speced up) WebTransport (by hijacking the QUIC connection).

Re-exports§

pub use swarm::HoprSwarm;

Modules§

constants
Constants exported by the crate.
errors
Errors generated by the crate.
swarm
Raw swarm definition for the HOPR network.

Structs§

HoprNetworkBehavior
Network Behavior definition for aggregated HOPR network functionality.
HoprStreamProtocolControl
Ping
Ping protocol base type for the ping operation
Pong
Pong protocol base type for the pong operation

Enums§

HoprNetworkBehaviorEvent
Aggregated network behavior event inheriting the component behaviors’ events.

Constants§

MSG_ACK_TIMEOUT