hopr_transport_network/
lib.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
//! Network and physical transport related utilities
//!
//! This package contains objects and utilities that allow storing and
//! querying the current state of the observable `Network`.
//!
//! Background processes and event updates ensure that the Network data is
//! regularly updated to offer the complete information about each observed
//! peer:
//! 1. the timestamps of last observations
//! 2. quality measurements based on the heartbeat and ping reporting mechanism,
//! 3. individual metrics counting windowed quality characteristics
//! 4. on and off-chain observed peer related data (multiaddresses...)
//!
//! NOTE: This object has not been significantly altered from the previous versions
//! and will be improved in the upcoming releases together with physical transport
//! upgrades that will make it possible to record more data faster. As such, this
//! object should slowly transform into a pollable physical network graph processing
//! live telemetry from the packet transport process.

/// Configuration of the network module.
pub mod config;

/// Global constants published from this crate.
pub mod constants;
/// Errors that can be generated by the crate.
pub mod errors;
/// Implementation of the main loop for the heartbeat mechanism.
pub mod heartbeat;
/// Low-level transport protocol messaging definitions for [ping].
pub mod messaging;
/// Implementation of the peer network logic
pub mod network;
/// Implementation of the pinging mechanism used by the [heartbeat] and manual pings.
pub mod ping;

pub use hopr_db_api::peers::HoprDbPeersOperations;
pub use libp2p_identity::PeerId;