From e165eacd58a7bdf27533db3f21cec412c325b8b7 Mon Sep 17 00:00:00 2001
From: Andrei Sandu <54316454+sandreim@users.noreply.github.com>
Date: Fri, 1 Sep 2023 14:55:23 +0300
Subject: [PATCH] Logs: add extra debug log for negative rep changes (#1205)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

* refactor and more debug

Signed-off-by: Andrei Sandu <andrei-mihail@parity.io>

* review

Signed-off-by: Andrei Sandu <andrei-mihail@parity.io>

* fix

Signed-off-by: Andrei Sandu <andrei-mihail@parity.io>

* 🤦

Signed-off-by: Andrei Sandu <andrei-mihail@parity.io>

---------

Signed-off-by: Andrei Sandu <andrei-mihail@parity.io>
---
 polkadot/node/subsystem-util/src/reputation.rs | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/polkadot/node/subsystem-util/src/reputation.rs b/polkadot/node/subsystem-util/src/reputation.rs
index 89e3eb64df9..349a6425433 100644
--- a/polkadot/node/subsystem-util/src/reputation.rs
+++ b/polkadot/node/subsystem-util/src/reputation.rs
@@ -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>;
 
@@ -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 {
@@ -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)
 	}
 }
 
-- 
GitLab