From d780293e1ee0f9e66bd2d88914694c17f9aaa0ca Mon Sep 17 00:00:00 2001 From: Jon Atack Date: Tue, 1 Sep 2020 17:40:32 +0200 Subject: net: improve nLastBlockTime and nLastTXTime documentation Co-authored-by: John Newbery --- src/net.cpp | 4 ++-- src/net.h | 11 ++++++++++- 2 files changed, 12 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/net.cpp b/src/net.cpp index 883e57bdf0..dc34743c5b 100644 --- a/src/net.cpp +++ b/src/net.cpp @@ -904,10 +904,10 @@ bool CConnman::AttemptToEvictConnection() // Protect the 8 nodes with the lowest minimum ping time. // An attacker cannot manipulate this metric without physically moving nodes closer to the target. EraseLastKElements(vEvictionCandidates, ReverseCompareNodeMinPingTime, 8); - // Protect 4 nodes that most recently sent us transactions. + // Protect 4 nodes that most recently sent us novel transactions accepted into our mempool. // An attacker cannot manipulate this metric without performing useful work. EraseLastKElements(vEvictionCandidates, CompareNodeTXTime, 4); - // Protect 4 nodes that most recently sent us blocks. + // Protect 4 nodes that most recently sent us novel blocks. // An attacker cannot manipulate this metric without performing useful work. EraseLastKElements(vEvictionCandidates, CompareNodeBlockTime, 4); // Protect the half of the remaining nodes which have been connected the longest. diff --git a/src/net.h b/src/net.h index c72eada3ff..0b5ab2390e 100644 --- a/src/net.h +++ b/src/net.h @@ -932,8 +932,17 @@ public: // Used for headers announcements - unfiltered blocks to relay std::vector vBlockHashesToAnnounce GUARDED_BY(cs_inventory); - // Block and TXN accept times + /** UNIX epoch time of the last block received from this peer that we had + * not yet seen (e.g. not already received from another peer), that passed + * preliminary validity checks and was saved to disk, even if we don't + * connect the block or it eventually fails connection. Used as an inbound + * peer eviction criterium in CConnman::AttemptToEvictConnection. */ std::atomic nLastBlockTime{0}; + + /** UNIX epoch time of the last transaction received from this peer that we + * had not yet seen (e.g. not already received from another peer) and that + * was accepted into our mempool. Used as an inbound peer eviction criterium + * in CConnman::AttemptToEvictConnection. */ std::atomic nLastTXTime{0}; // Ping time measurement: -- cgit v1.2.3