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§
- 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§
- Reputation
Event - Reputation event types