Skip to main content

Module peer_scoring

Module peer_scoring 

Source
Expand description

Composite peer quality scoring engine for P2P overlay networks.

PeerScoringSystem computes a weighted composite score for each peer based on multiple observable quality dimensions (latency, bandwidth, availability, reliability, gossip delivery, and routing success).

Scores are accumulated in a bounded history per peer, enabling trend analysis, stale-peer eviction, and tier-based classification.

§Example

use ipfrs_network::peer_scoring::{
    PeerScoringSystem, PeerMetrics, ScoringWeights,
};

let system = PeerScoringSystem::default();

let metrics = PeerMetrics {
    peer_id: "peer-1".to_string(),
    rtt_ms: 50.0,
    bandwidth_bps: 800_000.0,
    uptime_fraction: 0.99,
    success_rate: 0.97,
    gossip_delivery_rate: 0.95,
    routing_success_rate: 0.93,
    last_updated: 1_000,
};

let score = system.score_peer(&metrics, 1_000);
println!("Composite: {:.3}", score.composite);

Structs§

PeerMetrics
Raw observations for a single peer at a point in time.
PeerScoringSystem
Composite peer quality scoring engine.
PsPeerScore
Computed composite score and per-dimension breakdown for a single peer.
ScoringStats
Aggregate statistics for the entire scoring system.
ScoringWeights
Weights applied to each scoring dimension when computing the composite score.

Enums§

PsScoringDimension
The observable quality dimension contributing to a peer’s composite score.
ScoreTier
Qualitative tier derived from the composite score.
ScoringError
Errors that can occur when constructing or using a PeerScoringSystem.