aboutsummaryrefslogtreecommitdiff
path: root/src/addrman.h
diff options
context:
space:
mode:
authorfanquake <fanquake@gmail.com>2022-08-05 08:58:09 +0100
committerfanquake <fanquake@gmail.com>2022-08-05 09:03:33 +0100
commite03860558581adda52949e1fd3ed3f923e7c49e7 (patch)
treebac7d8d06f7f513b41cd924cbc792aff6e7817cf /src/addrman.h
parent2c3115d4f568b2719daa44d8eb2504a8cd7691fe (diff)
parentfadd8b2676f6d68ec87189871461c9a6a6aa3cac (diff)
downloadbitcoin-e03860558581adda52949e1fd3ed3f923e7c49e7.tar.xz
Merge bitcoin/bitcoin#24662: addrman: Use system time instead of adjusted network time
fadd8b2676f6d68ec87189871461c9a6a6aa3cac addrman: Use system time instead of adjusted network time (MarcoFalke) Pull request description: This changes addrman to use system time for address relay instead of the network adjusted time. This is an improvement, because network time has multiple issues: * It is non-monotonic, even if the system time is monotonic. * It may be wrong, even if the system time is correct. * It may be wrong, if the system time is wrong. For example, when the node has limited number of connections (`4`), or the system time is wrong by too much (more than +-70 minutes), or the system time only got wrong after timedata collected more than half of the entries while the time was correct, ...) This may slightly degrade addr relay for nodes where timedata successfully adjusted the time. Addr relay can already deal with minor offsets of up to 10 minutes. Offsets larger than this should still allow addr relay and not result in a DoS. ACKs for top commit: dergoegge: Code review ACK fadd8b2676f6d68ec87189871461c9a6a6aa3cac Tree-SHA512: b6c178fa01161544e5bc76c4cb23e11bcc30391f7b7a64accce864923766647bcfce2e8ae21d36fb1ffc1afa07bc46415aca612405bd8d4cc1f319c92a08498f
Diffstat (limited to 'src/addrman.h')
-rw-r--r--src/addrman.h7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/addrman.h b/src/addrman.h
index b70c6a48ad..5099c8c7a3 100644
--- a/src/addrman.h
+++ b/src/addrman.h
@@ -10,7 +10,6 @@
#include <netgroup.h>
#include <protocol.h>
#include <streams.h>
-#include <timedata.h>
#include <util/time.h>
#include <cstdint>
@@ -121,10 +120,10 @@ public:
* @param[in] time The time that we were last connected to this peer.
* @return true if the address is successfully moved from the new table to the tried table.
*/
- bool Good(const CService& addr, NodeSeconds time = AdjustedTime());
+ bool Good(const CService& addr, NodeSeconds time = Now<NodeSeconds>());
//! Mark an entry as connection attempted to.
- void Attempt(const CService& addr, bool fCountFailure, NodeSeconds time = AdjustedTime());
+ void Attempt(const CService& addr, bool fCountFailure, NodeSeconds time = Now<NodeSeconds>());
//! See if any to-be-evicted tried table entries have been tested and if so resolve the collisions.
void ResolveCollisions();
@@ -169,7 +168,7 @@ public:
* @param[in] addr The address of the peer we were connected to
* @param[in] time The time that we were last connected to this peer
*/
- void Connected(const CService& addr, NodeSeconds time = AdjustedTime());
+ void Connected(const CService& addr, NodeSeconds time = Now<NodeSeconds>());
//! Update an entry's service bits.
void SetServices(const CService& addr, ServiceFlags nServices);