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§
- Peer
Metrics - Raw observations for a single peer at a point in time.
- Peer
Scoring System - Composite peer quality scoring engine.
- PsPeer
Score - Computed composite score and per-dimension breakdown for a single peer.
- Scoring
Stats - Aggregate statistics for the entire scoring system.
- Scoring
Weights - Weights applied to each scoring dimension when computing the composite score.
Enums§
- PsScoring
Dimension - The observable quality dimension contributing to a peer’s composite score.
- Score
Tier - Qualitative tier derived from the composite score.
- Scoring
Error - Errors that can occur when constructing or using a
PeerScoringSystem.