aboutsummaryrefslogtreecommitdiff
path: root/src/addrman_impl.h
diff options
context:
space:
mode:
authorJohn Newbery <john@johnnewbery.com>2021-08-31 18:40:18 +0100
committerJohn Newbery <john@johnnewbery.com>2022-04-20 14:29:29 +0100
commit19431560e3e1124979c60f39eca9429c4a0df29f (patch)
tree200eb5df7f34cd71a6b6c66cf37cbc44ee8c7ed8 /src/addrman_impl.h
parent17c24d458042229e00dd4e0b75a32e593be29564 (diff)
[net] Move asmap into NetGroupManager
Diffstat (limited to 'src/addrman_impl.h')
-rw-r--r--src/addrman_impl.h21
1 files changed, 3 insertions, 18 deletions
diff --git a/src/addrman_impl.h b/src/addrman_impl.h
index 5e76f72342..3db4be6c8d 100644
--- a/src/addrman_impl.h
+++ b/src/addrman_impl.h
@@ -100,7 +100,7 @@ public:
class AddrManImpl
{
public:
- AddrManImpl(std::vector<bool>&& asmap, bool deterministic, int32_t consistency_check_ratio);
+ AddrManImpl(const NetGroupManager& netgroupman, bool deterministic, int32_t consistency_check_ratio);
~AddrManImpl();
@@ -140,8 +140,6 @@ public:
std::optional<AddressPosition> FindAddressEntry(const CAddress& addr)
EXCLUSIVE_LOCKS_REQUIRED(!cs);
- const std::vector<bool>& GetAsmap() const;
-
friend class AddrManDeterministic;
private:
@@ -212,21 +210,8 @@ private:
/** Perform consistency checks every m_consistency_check_ratio operations (if non-zero). */
const int32_t m_consistency_check_ratio;
- // Compressed IP->ASN mapping, loaded from a file when a node starts.
- // Should be always empty if no file was provided.
- // This mapping is then used for bucketing nodes in Addrman.
- //
- // If asmap is provided, nodes will be bucketed by
- // AS they belong to, in order to make impossible for a node
- // to connect to several nodes hosted in a single AS.
- // This is done in response to Erebus attack, but also to generally
- // diversify the connections every node creates,
- // especially useful when a large fraction of nodes
- // operate under a couple of cloud providers.
- //
- // If a new asmap was provided, the existing records
- // would be re-bucketed accordingly.
- const std::vector<bool> m_asmap;
+ /** Reference to the netgroup manager. netgroupman must be constructed before addrman and destructed after. */
+ const NetGroupManager& m_netgroupman;
//! Find an entry.
AddrInfo* Find(const CService& addr, int* pnId = nullptr) EXCLUSIVE_LOCKS_REQUIRED(cs);