Skip to main content

Module reputation

Module reputation 

Source
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§

PeerReputation
Per-peer reputation state.
PeerReputationStats
Atomic snapshot of aggregate statistics collected by PeerReputationTracker.
PeerReputationStatsSnapshot
Non-atomic snapshot of PeerReputationStats values.
PeerReputationTracker
Thread-safe tracker that maintains per-peer reputation scores and exposes aggregate statistics via AtomicU64 counters.
ReputationConfig
Configuration for the reputation system
ReputationManager
Reputation manager for tracking peer reputations
ReputationScore
Reputation score for a peer
ReputationStats
Statistics about reputation tracking

Enums§

PeerReputationEvent
An event that affects a peer’s reputation score.
PeerTier
Classification tier for a peer based on their reputation score.
ReputationEvent
Reputation event types