Expand description
Peer reputation system for tracking and scoring peer behavior
This module provides a comprehensive reputation system that tracks peer behavior over time and calculates reputation scores based on various factors including:
- Transfer success/failure rates
- Response times and latency
- Protocol violations
- Uptime and reliability
- Historical behavior patterns
§Examples
use ipfrs_network::reputation::{ReputationManager, ReputationConfig};
use libp2p::PeerId;
let config = ReputationConfig::default();
let mut manager = ReputationManager::new(config.clone());
// Track successful interaction
let peer_id = PeerId::random();
manager.record_successful_transfer(&peer_id, 1024);
manager.record_low_latency(&peer_id, 50);
// Get reputation score
if let Some(score) = manager.get_reputation(&peer_id) {
println!("Peer reputation: {:.2}", score.overall_score(&config));
}
// Check if peer is trusted
assert!(manager.is_trusted(&peer_id));Structs§
- Peer
Reputation - Per-peer reputation state.
- Peer
Reputation Stats - Atomic snapshot of aggregate statistics collected by
PeerReputationTracker. - Peer
Reputation Stats Snapshot - Non-atomic snapshot of
PeerReputationStatsvalues. - Peer
Reputation Tracker - Thread-safe tracker that maintains per-peer reputation scores and exposes
aggregate statistics via
AtomicU64counters. - Reputation
Config - Configuration for the reputation system
- Reputation
Manager - Reputation manager for tracking peer reputations
- Reputation
Score - Reputation score for a peer
- Reputation
Stats - Statistics about reputation tracking
Enums§
- Peer
Reputation Event - An event that affects a peer’s reputation score.
- Peer
Tier - Classification tier for a peer based on their reputation score.
- Reputation
Event - Reputation event types