diff options
Diffstat (limited to 'src/addrman.cpp')
-rw-r--r-- | src/addrman.cpp | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/addrman.cpp b/src/addrman.cpp index 93f7cf6980..ec1c6c975f 100644 --- a/src/addrman.cpp +++ b/src/addrman.cpp @@ -15,6 +15,37 @@ #include <unordered_map> #include <unordered_set> +//! over how many buckets entries with tried addresses from a single group (/16 for IPv4) are spread +static constexpr uint32_t ADDRMAN_TRIED_BUCKETS_PER_GROUP{8}; + +//! over how many buckets entries with new addresses originating from a single group are spread +static constexpr uint32_t ADDRMAN_NEW_BUCKETS_PER_SOURCE_GROUP{64}; + +//! in how many buckets for entries with new addresses a single address may occur +static constexpr int32_t ADDRMAN_NEW_BUCKETS_PER_ADDRESS{8}; + +//! how old addresses can maximally be +static constexpr int64_t ADDRMAN_HORIZON_DAYS{30}; + +//! after how many failed attempts we give up on a new node +static constexpr int32_t ADDRMAN_RETRIES{3}; + +//! how many successive failures are allowed ... +static constexpr int32_t ADDRMAN_MAX_FAILURES{10}; + +//! ... in at least this many days +static constexpr int64_t ADDRMAN_MIN_FAIL_DAYS{7}; + +//! how recent a successful connection should be before we allow an address to be evicted from tried +static constexpr int64_t ADDRMAN_REPLACEMENT_HOURS{4}; + +//! the maximum number of tried addr collisions to store +static constexpr size_t ADDRMAN_SET_TRIED_COLLISION_SIZE{10}; + +//! the maximum time we'll spend trying to resolve a tried table collision, in seconds +static constexpr int64_t ADDRMAN_TEST_WINDOW{40*60}; // 40 minutes + + int CAddrInfo::GetTriedBucket(const uint256& nKey, const std::vector<bool> &asmap) const { uint64_t hash1 = (CHashWriter(SER_GETHASH, 0) << nKey << GetKey()).GetCheapHash(); |