From 72c3408b8f9e59726b06e1e41247a8caf34136d3 Mon Sep 17 00:00:00 2001 From: Svyatoslav Nikolsky Date: Fri, 11 Aug 2017 11:05:34 +0300 Subject: [PATCH] fixed node penalizing --- sync/src/synchronization_peers_tasks.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/sync/src/synchronization_peers_tasks.rs b/sync/src/synchronization_peers_tasks.rs index 89a4690c..2cb9cfaa 100644 --- a/sync/src/synchronization_peers_tasks.rs +++ b/sync/src/synchronization_peers_tasks.rs @@ -210,12 +210,18 @@ impl PeersTasks { // it was requested block => update block response time self.stats.get_mut(&peer_index) .map(|br| { + if br.failures > 0 { + br.failures -= 1; + } br.trust = TrustLevel::Trusted; br.speed.checkpoint() }); // if it hasn't been last requested block => just return if !is_last_requested_block_received { + let mut peer_blocks_requests = self.blocks_requests.remove(&peer_index).expect("checked above; qed"); + peer_blocks_requests.timestamp = precise_time_s(); + self.blocks_requests.insert(peer_index, peer_blocks_requests); return; } @@ -223,7 +229,6 @@ impl PeersTasks { self.stats.get_mut(&peer_index).map(|br| br.speed.stop()); // mark this peer as idle for blocks request - self.blocks_requests.remove(&peer_index); self.idle_for_blocks.insert(peer_index); // also mark as available for headers request if not yet if !self.headers_requests.contains_key(&peer_index) {