Skip to content
13 changes: 7 additions & 6 deletions polkadot/node/subsystem-util/src/reputation.rs
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ use std::{collections::HashMap, time::Duration};

/// Default delay for sending reputation changes
pub const REPUTATION_CHANGE_INTERVAL: Duration = Duration::from_secs(30);
const LOG_TARGET: &'static str = "parachain::reputation-aggregator";

type BatchReputationChange = HashMap<PeerId, i32>;

Expand Down Expand Up @@ -75,6 +76,10 @@ impl ReputationAggregator {
peer_id: PeerId,
rep: UnifiedReputationChange,
) {
if rep.cost_or_benefit() < 0 {
gum::debug!(target: LOG_TARGET, peer = ?peer_id, ?rep, "Reduce reputation");
}

if (self.send_immediately_if)(rep) {
self.single_send(sender, peer_id, rep).await;
} else {
Expand All @@ -97,12 +102,8 @@ impl ReputationAggregator {
}

fn add(&mut self, peer_id: PeerId, rep: UnifiedReputationChange) {
if self.by_peer.is_none() {
self.by_peer = Some(HashMap::new());
}
if let Some(ref mut by_peer) = self.by_peer {
add_reputation(by_peer, peer_id, rep)
}
let by_peer = self.by_peer.get_or_insert(HashMap::new());
add_reputation(by_peer, peer_id, rep)
}
}

Expand Down