Rate limit the processing of rumoured addresses #22387

pull sipa wants to merge 5 commits into bitcoin:master from sipa:202106_rate_limit_addr changing 7 files +159 −7
  1. sipa commented at 0:53 am on July 2, 2021: member

    The rate at which IP addresses are rumoured (through ADDR and ADDRV2 messages) on the network seems to vary from 0 for some non-participating nodes, to 0.005-0.025 addr/s for recent Bitcoin Core nodes. However, the current codebase will happily accept and process an effectively unbounded rate from attackers. There are measures to limit the influence attackers can have on the addrman database (bucket restrictions based on source IPs), but still - there is no need to permit them to feed us addresses at a rate that’s orders of magnitude larger than what is common on the network today, especially as it will cause us to spam our peers too.

    This PR implements a token bucket based rate limiter, allowing an average of 0.1 addr/s per connection, with bursts up to 1000 addresses at once. Whitelisted peers as well as responses to GETADDR requests are exempt from the limit. New connections start with 1 token, so as to not interfere with the common practice of peers’ self-announcement.

  2. fanquake added the label P2P on Jul 2, 2021
  3. fanquake added this to the milestone 22.0 on Jul 2, 2021
  4. DrahtBot commented at 1:41 am on July 2, 2021: member

    The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.

    Conflicts

    Reviewers, this pull request conflicts with the following ones:

    If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first.

  5. ghost commented at 3:08 am on July 2, 2021: none

    There are measures to limit the influence attackers can have on the addrman database (bucket restrictions based on IPs), but still - there is no need to permit them to feed us addresses at a rate that’s orders of magnitude larger than what is common on the network today, especially as it will cause us to spam our peers too.

    Concept ACK

  6. vasild commented at 8:02 am on July 2, 2021: member
    Concept ACK
  7. in src/net_processing.cpp:242 in 484d8fdd94 outdated
    234@@ -232,6 +235,11 @@ struct Peer {
    235     std::atomic_bool m_wants_addrv2{false};
    236     /** Whether this peer has already sent us a getaddr message. */
    237     bool m_getaddr_recvd{false};
    238+    /** Number of addr messages that can be processed from this peer. Start at 1 to
    239+     *  permit self-announcement. */
    240+    double m_addr_token_bucket{1.0};
    241+    /** When m_addr_token_bucket was last updated */
    242+    std::chrono::microseconds m_addr_token_timestamp{0};
    


    jnewbery commented at 10:45 am on July 2, 2021:
    No need for default initialization value here if this is set in the initialization list in the only ctor.

    MarcoFalke commented at 1:06 pm on July 2, 2021:
    0    std::chrono::microseconds m_addr_token_timestamp{GetTime<std::chrono::microseconds>()};
    

    Does this compile? If yes, the constructor can be left untouched.


    sipa commented at 4:51 pm on July 2, 2021:
    Done, it works.
  8. in src/net_processing.cpp:2796 in 484d8fdd94 outdated
    2791+        // Update/increment addr rate limiting bucket.
    2792+        const auto current_time = GetTime<std::chrono::microseconds>();
    2793+        auto time_diff = std::max(current_time - peer->m_addr_token_timestamp, 0us);
    2794+        double increment = std::chrono::duration<double>(time_diff).count() * MAX_ADDR_RATE_PER_SECOND;
    2795+        peer->m_addr_token_timestamp = current_time;
    2796+        peer->m_addr_token_bucket += std::max(0.0, std::min<double>(MAX_ADDR_TO_SEND - peer->m_addr_token_bucket, increment));
    


    jnewbery commented at 11:28 am on July 2, 2021:

    I find this line quite difficult to parse. I think the intention is that we don’t cap m_addr_token_bucket to MAX_ADDR_TO_SEND (in the case where it was incremented because we sent a getaddr). Is this easier to read:

     0         // Update/increment addr rate limiting bucket.
     1         const auto current_time = GetTime<std::chrono::microseconds>();
     2-        auto time_diff = std::max(current_time - peer->m_addr_token_timestamp, 0us);
     3-        double increment = std::chrono::duration<double>(time_diff).count() * MAX_ADDR_RATE_PER_SECOND;
     4+        if (peer->m_addr_token_bucket < MAX_ADDR_TO_SEND) {
     5+            // Don't increment bucket if it's already full
     6+            auto time_diff = std::max(current_time - peer->m_addr_token_timestamp, 0us);
     7+            double increment = std::chrono::duration<double>(time_diff).count() * MAX_ADDR_RATE_PER_SECOND;
     8+            peer->m_addr_token_bucket = std::min<double>(peer->m_addr_token_bucket + increment, MAX_ADDR_TO_SEND);
     9+        }
    10         peer->m_addr_token_timestamp = current_time;
    11-        peer->m_addr_token_bucket += std::max(0.0, std::min<double>(MAX_ADDR_TO_SEND - peer->m_addr_token_bucket, increment));
    12 
    13         for (CAddress& addr : vAddr)
    14         {
    

    sipa commented at 4:51 pm on July 2, 2021:
    Done, much better.
  9. in test/functional/p2p_addr_relay.py:240 in 484d8fdd94 outdated
    235+            self.nodes[0].setmocktime(self.mocktime)
    236+            if contype == "inbound":
    237+                peer = self.nodes[0].add_p2p_connection(AddrReceiver())
    238+            else:
    239+                peer = self.nodes[0].add_outbound_p2p_connection(AddrReceiver(), p2p_idx=0, connection_type=contype)
    240+            peer.sync_with_ping()
    


    jnewbery commented at 11:29 am on July 2, 2021:
    I don’t think this is necessary. The add_[outbound_]p2p_connection() methods already do a sync_with_ping.

    sipa commented at 4:52 pm on July 2, 2021:
    Gone.
  10. in test/functional/p2p_addr_relay.py:244 in 484d8fdd94 outdated
    239+                peer = self.nodes[0].add_outbound_p2p_connection(AddrReceiver(), p2p_idx=0, connection_type=contype)
    240+            peer.sync_with_ping()
    241+
    242+            # Check that we start off with empty addrman
    243+            addr_count_0 = len(self.nodes[0].getnodeaddresses(0))
    244+            assert addr_count_0 == 0
    


    jnewbery commented at 11:31 am on July 2, 2021:
    Consider using the assert_equal()/assert_greater_than()/assert_greater_than_or_equal() helper functions (they give more helpful output if the test fails).

    sipa commented at 4:52 pm on July 2, 2021:
    Done.
  11. in test/functional/p2p_addr_relay.py:97 in 484d8fdd94 outdated
    78@@ -75,6 +79,19 @@ def setup_addr_msg(self, num):
    79         msg.addrs = addrs
    80         return msg
    81 
    82+    def setup_rand_addr_msg(self, num):
    


    jnewbery commented at 11:39 am on July 2, 2021:
    (not necessarily for this PR) should the other tests be updated to use random IP addresses? I guess you’re doing this and not reusing setup_addr_msg() in case the addresses returned may result in addrman bucket collisions?

    sipa commented at 3:48 pm on July 2, 2021:
    I tried to reuse it, but things fail because the existing setup_addr_message are limited to 256 addresses, and when I tried to generalize it, some of the other tests started failing.
  12. in test/functional/p2p_addr_relay.py:266 in 484d8fdd94 outdated
    261+            # Send 10 more. As we reached the processing limit for all nodes, this should have no effect.
    262+            peer.send_and_ping(self.setup_rand_addr_msg(10))
    263+            addr_count_3 = len(self.nodes[0].getnodeaddresses(0))
    264+            assert addr_count_3 <= tokens
    265+            assert addr_count_3 <= addr_count_2 + 10
    266+            assert (addr_count_3 > addr_count_2) == False
    


    jnewbery commented at 11:39 am on July 2, 2021:
    0            assert (addr_count_3 <= addr_count_2)
    

    (or better yet, use assert_greater_than_or_equal())


    sipa commented at 4:54 pm on July 2, 2021:
    Or even better: assert_equal(addr_count_2, addr_count_3). Done.
  13. jnewbery commented at 12:50 pm on July 2, 2021: member
    Concept ACK
  14. sipa force-pushed on Jul 2, 2021
  15. sipa force-pushed on Jul 2, 2021
  16. ghost commented at 5:04 pm on July 2, 2021: none

    Compiled the branch but don’t want to run test/functional/p2p_addr_relay.py. I want to test it manually on testnet.

    1. Can we do send_and_ping used in the test with some RPC?
    2. How can we try this on testnet? I am assuming: Compile branch, run two nodes on testnet, use addnode, spam other node with random addresses (not sure how to do this?) and compare the results for getnodeaddresses doing same on master branch.
  17. sipa commented at 5:13 pm on July 2, 2021: member
    @prayank23 No, it’s testing a P2P aspect, you can’t do that through RPC. There is the addpeeraddress RPC for injecting new addresses, but it doesn’t have (or need) the same rate limiting.
  18. mzumsande commented at 7:11 pm on July 2, 2021: member

    Concept ACK to introducing a rate limiting mechanism for addr relay, some general questions about the approach:

    The approach of a constant counter increase doesn’t scale with the total number of self-announcing nodes in the network, while addr traffic to a node probably does (or at least should?). Did you consider the possibility of an adaptive rate limiting approach (e.g. let the token counter increase based on recently observed addr frequency from outbound peers or something like that) that could adapt to changes in network size or in the general efficiency of gossip relay over time - or would that be too complicated/have some other downsides?

    Choosing the rate limit of  0.1 addr/s based on current observations of 0.005-0.025 addr/s also kind of says that we are happy with the current efficiency of addr gossip - are we though? (#21528 would likely increase it, though I’m not sure by how much)

    It would be great to have some historical references about observed addr/s rate (to see whether it has changed significantly over the years with increasing SPV nodes, introduction of block-relay-only connections etc.), but I would assume this kind of data doesn’t exist anywhere…

  19. sipa commented at 7:26 pm on July 2, 2021: member
    @mzumsande Those are reasonable points. My thinking is mostly that some limit here is necessary, and if this appears to be too restrictive as the network or other aspects of addr relay change, they can be revisited - those are unlikely to cause dramatic changes in short periods of time. I think an adaptive limit is too easily exploited.
  20. amitiuttarwar closed this on Jul 3, 2021

  21. amitiuttarwar reopened this on Jul 3, 2021

  22. amitiuttarwar commented at 7:00 pm on July 3, 2021: contributor
    So sorry for that accidental close / open 😳
  23. in src/net_processing.cpp:2808 in 2decfa58c1 outdated
    2803         {
    2804             if (interruptMsgProc)
    2805                 return;
    2806 
    2807+            // Apply rate limiting.
    2808+            if (pfrom.addr != addr && !pfrom.HasPermission(NetPermissionFlags::Addr)) {
    


    mzumsande commented at 9:35 pm on July 4, 2021:
    Why the condition pfrom.addr != addr in addition to starting with m_addr_token_bucket{1.0}? Shouldn’t self-announcements from our peer consume a token too?

    sipa commented at 4:47 am on July 6, 2021:
    It’s a leftover from an earlier iteration where I didn’t have the m_addr_token_bucket{1.0} initialization. I’ve removed it.
  24. in test/functional/p2p_addr_relay.py:251 in bb42151fee outdated
    246+            # Send 600 addresses. For all but the block-relay-only peer this should result in at least 1 address.
    247+            peer.send_and_ping(self.setup_rand_addr_msg(600))
    248+            addr_count_1 = len(self.nodes[0].getnodeaddresses(0))
    249+            assert_greater_than_or_equal(tokens, addr_count_1)
    250+            assert_greater_than_or_equal(addr_count_0 + 600, addr_count_1)
    251+            assert_equal(addr_count_1 > addr_count_0, tokens > 0)
    


    mzumsande commented at 9:42 pm on July 4, 2021:
    I think that this could fail intermittently in the “inbound” case, where we have just 1 token. The first addr of the shuffled message consumes the token, but if IsRoutable() happens to be false for this random address, it won’t be accepted to addrman (CAddrMan::Add_()), and other addrs of the message won’t be either because there are no tokens left.

    sipa commented at 5:03 am on July 6, 2021:
    I’ve updated the test to generate only routable IPs.
  25. in src/net_processing.cpp:2812 in 2decfa58c1 outdated
    2796+            double increment = std::chrono::duration<double>(time_diff).count() * MAX_ADDR_RATE_PER_SECOND;
    2797+            peer->m_addr_token_bucket = std::min<double>(peer->m_addr_token_bucket + increment, MAX_ADDR_TO_SEND);
    2798+        }
    2799+        peer->m_addr_token_timestamp = current_time;
    2800+
    2801+        Shuffle(vAddr.begin(), vAddr.end(), FastRandomContext());
    


    mzumsande commented at 9:50 pm on July 4, 2021:
    What is the reason for adding the Shuffle here, considering that the token counter grows deterministically and our peer could calculate anyway how many addrs of the packet we would process/discard if they cared to keep track of that?

    sipa commented at 5:07 am on July 6, 2021:
    The idea is that if we’re going to be dropping some part of incoming messages because of rate-limiting, we should do it uniformly. This isn’t to stop any kind of attack, but to give slightly fairer treatment to existing nodes on the network, which don’t randomize on sending (there is random replacement once the outgoing buffer hits 1000, but that is rarely if ever hit under normal network conditions).

    vasild commented at 1:18 pm on July 6, 2021:
    nit: this entire snippet can be inside if (!pfrom.HasPermission(NetPermissionFlags::Addr)) { to avoid making calculations that are not going to be used later. That may be insignificant wrt performance (the shuffle too?) and the deeper indentation may look ugly, so feel free to ignore.

    sipa commented at 10:58 pm on July 6, 2021:
    No, if pfrom.HasPermission(NetPermissionFlags::Addr) is true, the loop still has to run - just the rate-limiting check is skipped.

    vasild commented at 8:07 am on July 7, 2021:

    this entire snippet can be inside … … the loop still has to run …

    The loop if after the snippet, it will run. Just to clarify:

     0--- i/src/net_processing.cpp
     1+++ w/src/net_processing.cpp
     2@@ -2790,24 +2790,28 @@ void PeerManagerImpl::ProcessMessage(CNode& pfrom, const std::string& msg_type,
     3 
     4         // Store the new addresses
     5         std::vector<CAddress> vAddrOk;
     6         int64_t nNow = GetAdjustedTime();
     7         int64_t nSince = nNow - 10 * 60;
     8 
     9-        // Update/increment addr rate limiting bucket.
    10-        const auto current_time = GetTime<std::chrono::microseconds>();
    11-        if (peer->m_addr_token_bucket < MAX_ADDR_PROCESSING_TOKEN_BUCKET) {
    12-            // Don't increment bucket if it's already full
    13-            const auto time_diff = std::max(current_time - peer->m_addr_token_timestamp, 0us);
    14-            const double increment = CountSecondsDouble(time_diff) * MAX_ADDR_RATE_PER_SECOND;
    15-            peer->m_addr_token_bucket = std::min<double>(peer->m_addr_token_bucket + increment, MAX_ADDR_PROCESSING_TOKEN_BUCKET);
    16-        }
    17-        peer->m_addr_token_timestamp = current_time;
    18-
    19-        Shuffle(vAddr.begin(), vAddr.end(), FastRandomContext());
    20         const bool rate_limited = !pfrom.HasPermission(NetPermissionFlags::Addr);
    21+
    22+        if (rate_limited) {
    23+            // Update/increment addr rate limiting bucket.
    24+            const auto current_time = GetTime<std::chrono::microseconds>();
    25+            if (peer->m_addr_token_bucket < MAX_ADDR_PROCESSING_TOKEN_BUCKET) {
    26+                // Don't increment bucket if it's already full
    27+                const auto time_diff = std::max(current_time - peer->m_addr_token_timestamp, 0us);
    28+                const double increment = CountSecondsDouble(time_diff) * MAX_ADDR_RATE_PER_SECOND;
    29+                peer->m_addr_token_bucket = std::min<double>(peer->m_addr_token_bucket + increment, MAX_ADDR_PROCESSING_TOKEN_BUCKET);
    30+            }
    31+            peer->m_addr_token_timestamp = current_time;
    32+
    33+            Shuffle(vAddr.begin(), vAddr.end(), FastRandomContext());
    34+        }
    35+
    36         for (CAddress& addr : vAddr)
    

    Does not change the behavior, but is slightly more performant :+1: (and deeply indented :-1:). Again, feel free to ignore. This comment is just for clarification, not an insistence :)

  26. sipa force-pushed on Jul 6, 2021
  27. sipa force-pushed on Jul 6, 2021
  28. in src/net_processing.cpp:2796 in dade562ea5 outdated
    2791+        // Update/increment addr rate limiting bucket.
    2792+        const auto current_time = GetTime<std::chrono::microseconds>();
    2793+        if (peer->m_addr_token_bucket < MAX_ADDR_TO_SEND) {
    2794+            // Don't increment bucket if it's already full
    2795+            auto time_diff = std::max(current_time - peer->m_addr_token_timestamp, 0us);
    2796+            double increment = std::chrono::duration<double>(time_diff).count() * MAX_ADDR_RATE_PER_SECOND;
    


    jnewbery commented at 11:12 am on July 6, 2021:
    Not being intimately familiar with the std::chrono library, I found this line a little difficult to parse. The std::chrono::duration<double> is an instantiation of duration with the representation set to double and the period set to the default ratio of 1 (i.e. one second). This line therefore initializes a duration object that represents seconds as doubles from the time_diff variable (and then multiplies by the MAX_ADDR_RATE_PER_SECOND).

    glozow commented at 5:34 pm on July 6, 2021:
    0            const auto time_diff = std::max(current_time - peer->m_addr_token_timestamp, 0us);
    1            const double increment = std::chrono::duration<double>(time_diff).count() * MAX_ADDR_RATE_PER_SECOND;
    

    sipa commented at 11:06 pm on July 6, 2021:
    I’ve replaced it with the helpful CountSecondsDouble we have in util/time.h.

    sipa commented at 1:37 am on July 7, 2021:
    Done.
  29. in test/functional/p2p_invalid_messages.py:61 in dade562ea5 outdated
    57@@ -58,6 +58,7 @@ class InvalidMessagesTest(BitcoinTestFramework):
    58     def set_test_params(self):
    59         self.num_nodes = 1
    60         self.setup_clean_chain = True
    61+        self.extra_args = [["-whitelist=addr@127.0.0.1"]]
    


    jnewbery commented at 11:23 am on July 6, 2021:
    It was surprising that this test needed to be updated. My understanding was that it was testing malformed p2p messages in the net layer, but it seems that various application layer errors have also been added to the test.
  30. in src/net_processing.cpp:2809 in dade562ea5 outdated
    2804             if (interruptMsgProc)
    2805                 return;
    2806 
    2807+            // Apply rate limiting.
    2808+            if (!pfrom.HasPermission(NetPermissionFlags::Addr)) {
    2809+                if (peer->m_addr_token_bucket < 1.0) continue;
    


    vasild commented at 1:14 pm on July 6, 2021:
    Should that not be break;? peer->m_addr_token_bucket is not going to increase inside this loop.

    glozow commented at 5:31 pm on July 6, 2021:
    I don’t understand why it should be break - am I missing something? There are other things happening in the loop as well

    sipa commented at 10:57 pm on July 6, 2021:
    Indeed, a break is enough. Fixed. @glozow The loop does many things, but if if at some point the rate-limiting condition is reached, it will be reached for all further loop iterations too.
  31. in src/net_processing.cpp:160 in dade562ea5 outdated
    154@@ -155,6 +155,9 @@ static constexpr uint32_t MAX_GETCFHEADERS_SIZE = 2000;
    155 static constexpr size_t MAX_PCT_ADDR_TO_SEND = 23;
    156 /** The maximum number of address records permitted in an ADDR message. */
    157 static constexpr size_t MAX_ADDR_TO_SEND{1000};
    158+/** The maximum rate of address records we're willing to process on average. Can be bypassed using
    159+ *  the NetPermissionFlags::Addr permission. */
    160+static constexpr double MAX_ADDR_RATE_PER_SECOND{0.1};
    


    vasild commented at 1:24 pm on July 6, 2021:

    For bucket size we use MAX_ADDR_TO_SEND in the code, but they are semantically different. Maybe add new constant ADDR_RATE_BUCKET_SIZE? Should that be a little bit higher than MAX_ADDR_TO_SEND? For example:

    1. The peer sends us some unsolicited addr
    2. We send getaddr and fill the bucket to the max 1000
    3. We receive the unsolicited addr from 1.
    4. We receive the getaddr response from 2. (1000 addresses)

    => some address is going to be dropped unnecessary, even though the peer did not “spam” us.


    jnewbery commented at 4:20 pm on July 6, 2021:
    2 is incorrect. We increment the bucket by 1000, not set it to 1000.

    vasild commented at 4:32 pm on July 6, 2021:
    Right! It is capped to 1000, but when expecting getaddr response we just do += 1000 without checking. Sorry for the noise.

    sipa commented at 11:00 pm on July 6, 2021:
    I’ve introduced a separate MAX_ADDR_PROCESSING_TOKEN_BUCKET constant, also initialized to 0. Also amended a few comments to be clearer about the fact that GETADDR can exceed this limit.
  32. in src/net_processing.cpp:2606 in dade562ea5 outdated
    2590@@ -2583,6 +2591,8 @@ void PeerManagerImpl::ProcessMessage(CNode& pfrom, const std::string& msg_type,
    2591             // Get recent addresses
    2592             m_connman.PushMessage(&pfrom, CNetMsgMaker(greatest_common_version).Make(NetMsgType::GETADDR));
    2593             peer->m_getaddr_sent = true;
    2594+            // When requesting a getaddr, accept an additional MAX_ADDR_TO_SEND addresses in response.
    2595+            peer->m_addr_token_bucket += MAX_ADDR_TO_SEND;
    


    vasild commented at 1:25 pm on July 6, 2021:
    This is ok as MAX_ADDR_TO_SEND

    glozow commented at 4:25 pm on July 6, 2021:

    In 87c8d2d072d52c79f092cc432f98c6157fe8e662

    The commit message states that “The token counter increases at a rate of 0.1 tokens per second, and will accrue up to a maximum of 1000 tokens” but this seems a bit misleading. Since 1000 tokens are added upon sending a GETADDR, we could bump it past 1000 (I think the maximum is perhaps 1007, and 1001 seems likely). Perhaps something like “The token counter increases at a rate of 0.1 tokens per second unless it has already reached 1000…” would be more clear.


    sipa commented at 1:37 am on July 7, 2021:
    Added a comment about this to the commit message.
  33. in src/net_processing.cpp:2793 in dade562ea5 outdated
    2786@@ -2777,11 +2787,28 @@ void PeerManagerImpl::ProcessMessage(CNode& pfrom, const std::string& msg_type,
    2787         std::vector<CAddress> vAddrOk;
    2788         int64_t nNow = GetAdjustedTime();
    2789         int64_t nSince = nNow - 10 * 60;
    2790+
    2791+        // Update/increment addr rate limiting bucket.
    2792+        const auto current_time = GetTime<std::chrono::microseconds>();
    2793+        if (peer->m_addr_token_bucket < MAX_ADDR_TO_SEND) {
    


    vasild commented at 1:26 pm on July 6, 2021:
    This MAX_ADDR_TO_SEND is semantically the bucket size, so if a new constant is added it should be used here.

    sipa commented at 1:04 am on July 7, 2021:
    Done.
  34. in src/net_processing.cpp:2797 in dade562ea5 outdated
    2792+        const auto current_time = GetTime<std::chrono::microseconds>();
    2793+        if (peer->m_addr_token_bucket < MAX_ADDR_TO_SEND) {
    2794+            // Don't increment bucket if it's already full
    2795+            auto time_diff = std::max(current_time - peer->m_addr_token_timestamp, 0us);
    2796+            double increment = std::chrono::duration<double>(time_diff).count() * MAX_ADDR_RATE_PER_SECOND;
    2797+            peer->m_addr_token_bucket = std::min<double>(peer->m_addr_token_bucket + increment, MAX_ADDR_TO_SEND);
    


    vasild commented at 1:27 pm on July 6, 2021:
    This MAX_ADDR_TO_SEND is semantically the bucket size, so if a new constant is added it should be used here.

    sipa commented at 11:00 pm on July 6, 2021:
    Done
  35. in test/functional/p2p_addr_relay.py:89 in dade562ea5 outdated
    84+        addrs = []
    85+        for i in range(num):
    86+            addr = CAddress()
    87+            addr.time = self.mocktime + i
    88+            addr.nServices = NODE_NETWORK | NODE_WITNESS
    89+            addr.ip = f"{random.randrange(128,169)}.{random.randrange(1,255)}.{1+random.randrange(1,255)}.{1+random.randrange(1,255)}"
    


    vasild commented at 1:33 pm on July 6, 2021:

    Why the second octet in [1,254] and 3rd and 4th [2,255]?

    1+randrange(1,255) is the same as randrange(2,256), why the former?


    sipa commented at 11:00 pm on July 6, 2021:
    A typo, fixed.
  36. vasild commented at 1:34 pm on July 6, 2021: member
    Approach ACK dade562ea5479e32c6a49fc92e9646f761b8e376, need to stare a bit more at the test.
  37. in test/functional/p2p_addr_relay.py:288 in dade562ea5 outdated
    283+                tokens += 100
    284+            peer.send_and_ping(self.setup_rand_addr_msg(200))
    285+            addr_count_5 = len(self.nodes[0].getnodeaddresses(0))
    286+            assert_greater_than_or_equal(tokens, addr_count_5)
    287+            assert_greater_than_or_equal(addr_count_4 + 100, addr_count_5)
    288+            assert_equal(addr_count_5 > addr_count_4, not no_relay)
    


    vasild commented at 4:16 pm on July 6, 2021:
    Isn’t the Advance the time by 100 seconds test unnecessary given the Advance the time by 1000 seconds test? I think the latter is testing everything that the former does.

    sipa commented at 1:39 am on July 7, 2021:
    Perhaps, I’m not entirely sure. The issue is that the last test is a bit weak, as a ton of entries have already been added to addrman (which fills up the relevant buckets asymptotically), so not that much is expected to be added anymore. The test before happens at a point when it’s somewhat less full, so it’s more appropriate a place to test that not too much is being added. The value of the last test is really only the ability to test that it incremented at all (which isn’t guaranteed with 10 extra tokens).
  38. in test/functional/p2p_addr_relay.py:272 in dade562ea5 outdated
    267+            # Advance the time by 100 seconds, permitting the processing of 10 more addresses. Send 200,
    268+            # but verify that no more than 10 are processed.
    269+            self.mocktime += 100
    270+            self.nodes[0].setmocktime(self.mocktime)
    271+            if not no_relay:
    272+                tokens += 10
    


    jnewbery commented at 4:16 pm on July 6, 2021:

    You reuse this value of 10 lower down. How about saving it as a variable to remove that repetition (and also to test that the no_relay node’s addr count doesn’t increase):

     0--- a/test/functional/p2p_addr_relay.py
     1+++ b/test/functional/p2p_addr_relay.py
     2@@ -268,23 +268,23 @@ class AddrTest(BitcoinTestFramework):
     3             # but verify that no more than 10 are processed.
     4             self.mocktime += 100
     5             self.nodes[0].setmocktime(self.mocktime)
     6-            if not no_relay:
     7-                tokens += 10
     8+            new_tokens = 0 if no_relay else 10
     9+            tokens += new_tokens
    10             peer.send_and_ping(self.setup_rand_addr_msg(200))
    11             addr_count_4 = len(self.nodes[0].getnodeaddresses(0))
    12             assert_greater_than_or_equal(tokens, addr_count_4)
    13-            assert_greater_than_or_equal(addr_count_3 + 10, addr_count_4)
    14+            assert_greater_than_or_equal(addr_count_3 + new_tokens, addr_count_4)
    15 
    16             # Advance the time by 1000 seconds, permitting the processing of 100 more addresses. Send 200,
    17             # but verify that no more than 100 are processed (and at least some).
    18             self.mocktime += 1000
    19             self.nodes[0].setmocktime(self.mocktime)
    20-            if not no_relay:
    21-                tokens += 100
    22+            new_tokens = 0 if no_relay else 100
    23+            tokens += new_tokens
    24             peer.send_and_ping(self.setup_rand_addr_msg(200))
    25             addr_count_5 = len(self.nodes[0].getnodeaddresses(0))
    26             assert_greater_than_or_equal(tokens, addr_count_5)
    27-            assert_greater_than_or_equal(addr_count_4 + 100, addr_count_5)
    28+            assert_greater_than_or_equal(addr_count_4 + new_tokens, addr_count_5)
    29             assert_equal(addr_count_5 > addr_count_4, not no_relay)
    30 
    31             self.nodes[0].disconnect_p2ps()
    

    vasild commented at 4:23 pm on July 6, 2021:
    Maybe have just one constant in the test “bucket size = 1000” and derive everything from it? So that if the bucket size is changed in the future in net_processing.cpp this test is easier to adjust.

    sipa commented at 1:40 am on July 7, 2021:
    @jnewbery Done. @vasild It’s not entirely clear how to do that sufficiently generically (we’ll probably want different test cases entirely if the rate limit changes).
  39. jnewbery commented at 4:17 pm on July 6, 2021: member
    Code review ACK dade562ea5479e32c6a49fc92e9646f761b8e376
  40. glozow commented at 5:40 pm on July 6, 2021: member
    code review ACK dade562ea5479e32c6a49fc92e9646f761b8e376
  41. sipa force-pushed on Jul 6, 2021
  42. sipa force-pushed on Jul 7, 2021
  43. in src/net_processing.cpp:2815 in dc8a1863f3 outdated
    2810             if (interruptMsgProc)
    2811                 return;
    2812 
    2813+            // Apply rate limiting.
    2814+            if (rate_limited) {
    2815+                if (peer->m_addr_token_bucket < 1.0) break;
    


    vasild commented at 8:13 am on July 7, 2021:
    Do you think it makes sense to log a (debug) message if this occurs? The assumption is that it will happen very rarely, if ever, so it might be of interest if it happens in order to have an idea of its frequency.

    jnewbery commented at 1:35 pm on July 7, 2021:
    It seems reasonable to print a single log in the BCLog::NET if an addr or addrv2 p2p message has address records dropped.

    sipa commented at 6:46 pm on July 7, 2021:

    It does happen occasionally very early in a connection’s lifetime, if an address send event happens in the first 10 seconds. A few crawlers that very actively provide addresses also trigger it sometimes. I think both of these are harmless.

    Added a commit to add logging.

  44. in src/net_processing.cpp:218 in dc8a1863f3 outdated
    221@@ -215,7 +222,7 @@ struct Peer {
    222     /** Whether a ping has been requested by the user */
    223     std::atomic<bool> m_ping_queued{false};
    224 
    225-    /** A vector of addresses to send to the peer, limited to MAX_ADDR_TO_SEND. */
    


    jnewbery commented at 8:13 am on July 7, 2021:
    There’s no need to change this comment.

    sipa commented at 7:11 pm on July 7, 2021:
    Done.
  45. jnewbery commented at 8:19 am on July 7, 2021: member
    ACK dc8a1863f30b5944490cdbaa3271afbf8cd6da9a
  46. vasild commented at 10:29 am on July 7, 2021: member

    dc8a1863f30b5944490cdbaa3271afbf8cd6da9a looks good. The 0.005-0.025 addr/s and 0.1 addr/s (MAX_ADDR_RATE_PER_SECOND) numbers may have to be reconsidered though.

    I added a prinout to observe the rates on my node.

     0         if (peer->m_addr_token_bucket < MAX_ADDR_PROCESSING_TOKEN_BUCKET) {
     1             // Don't increment bucket if it's already full
     2             const auto time_diff = std::max(current_time - peer->m_addr_token_timestamp, 0us);
     3             const double increment = CountSecondsDouble(time_diff) * MAX_ADDR_RATE_PER_SECOND;
     4             peer->m_addr_token_bucket = std::min<double>(peer->m_addr_token_bucket + increment, MAX_AD
     5+            LogPrintf("RATE LIMIT: received %u addresses, tokens %u, since last addr message: "
     6+                      "%.6lf addr/sec, peer %s\n",
     7+                      vAddr.size(),
     8+                      peer->m_addr_token_bucket,
     9+                      vAddr.size() / CountSecondsDouble(time_diff),
    10+                      pfrom.addr.ToStringIP());
    11         }
    
      02021-07-07T09:03:34Z RATE LIMIT: received 1 addresses, tokens 2.86322, since last addr message: 0.034926 addr/sec, peer 70.64.27.12
      12021-07-07T09:03:37Z RATE LIMIT: received 1 addresses, tokens 2.20653, since last addr message: 0.045320 addr/sec, peer 60.244.109.19
      22021-07-07T09:03:42Z RATE LIMIT: received 47 addresses, tokens 2.62511, since last addr message: 6.168826 addr/sec, peer 70.64.27.12
      32021-07-07T09:03:45Z RATE LIMIT: received 5 addresses, tokens 1.39594, since last addr message: 1.262827 addr/sec, peer shh2ewyegnuwnmdse5kl5toybdvzkvk2yj4zcowz6iwhhh3ykdfa.b32.i2p
      42021-07-07T09:03:45Z RATE LIMIT: received 1 addresses, tokens 0.396861, since last addr message: 108.236822 addr/sec, peer shh2ewyegnuwnmdse5kl5toybdvzkvk2yj4zcowz6iwhhh3ykdfa.b32.i2p
      52021-07-07T09:03:50Z RATE LIMIT: received 1 addresses, tokens 2.46857, since last addr message: 0.079237 addr/sec, peer 60.244.109.19
      62021-07-07T09:03:55Z RATE LIMIT: received 9 addresses, tokens 7.73186, since last addr message: 0.133693 addr/sec, peer 94.237.44.67
      72021-07-07T09:03:56Z RATE LIMIT: received 1 addresses, tokens 2.12585, since last addr message: 0.152142 addr/sec, peer 60.244.109.19
      82021-07-07T09:04:09Z RATE LIMIT: received 10 addresses, tokens 8.06892, since last addr message: 0.141464 addr/sec, peer 140.143.155.41
      92021-07-07T09:04:10Z RATE LIMIT: received 1 addresses, tokens 2.82477, since last addr message: 0.041188 addr/sec, peer shh2ewyegnuwnmdse5kl5toybdvzkvk2yj4zcowz6iwhhh3ykdfa.b32.i2p
     102021-07-07T09:04:12Z RATE LIMIT: received 80 addresses, tokens 3.63509, since last addr message: 2.657828 addr/sec, peer 70.64.27.12
     112021-07-07T09:04:15Z RATE LIMIT: received 1 addresses, tokens 1.87683, since last addr message: 0.053281 addr/sec, peer 168.119.79.89
     122021-07-07T09:04:21Z RATE LIMIT: received 3 addresses, tokens 3.55889, since last addr message: 0.123303 addr/sec, peer 60.244.109.19
     132021-07-07T09:04:35Z RATE LIMIT: received 1 addresses, tokens 2.8863, since last addr message: 0.049764 addr/sec, peer 168.119.79.89
     142021-07-07T09:04:38Z RATE LIMIT: received 2 addresses, tokens 6.57941, since last addr message: 0.030398 addr/sec, peer 83.150.56.145
     152021-07-07T09:04:48Z RATE LIMIT: received 1 addresses, tokens 3.14096, since last addr message: 0.079703 addr/sec, peer 168.119.79.89
     162021-07-07T09:04:53Z RATE LIMIT: received 2 addresses, tokens 6.00251, since last addr message: 0.140538 addr/sec, peer 83.150.56.145
     172021-07-07T09:04:53Z RATE LIMIT: received 2 addresses, tokens 4.79277, since last addr message: 0.048104 addr/sec, peer 70.64.27.12
     182021-07-07T09:04:55Z RATE LIMIT: received 4 addresses, tokens 9.27792, since last addr message: 0.043113 addr/sec, peer 2a01:4f8:140:948b::2
     192021-07-07T09:04:59Z RATE LIMIT: received 2 addresses, tokens 4.60033, since last addr message: 0.334550 addr/sec, peer 83.150.56.145
     202021-07-07T09:05:10Z RATE LIMIT: received 2 addresses, tokens 5.48676, since last addr message: 0.040585 addr/sec, peer 60.244.109.19
     212021-07-07T09:05:10Z RATE LIMIT: received 2 addresses, tokens 3.28665, since last addr message: 0.155442 addr/sec, peer 35.197.140.219
     222021-07-07T09:05:10Z RATE LIMIT: received 4 addresses, tokens 8.39984, since last addr message: 0.047620 addr/sec, peer q5csjdscadbsm27ceyuk7naxveak5yevqlnrowhgcnaxxauwc24zvhqd.onion
     232021-07-07T09:05:21Z RATE LIMIT: received 2 addresses, tokens 7.83468, since last addr message: 0.078224 addr/sec, peer 2a01:4f8:140:948b::2
     242021-07-07T09:05:22Z RATE LIMIT: received 2 addresses, tokens 2.4901, since last addr message: 0.166190 addr/sec, peer 35.197.140.219
     252021-07-07T09:05:30Z RATE LIMIT: received 5 addresses, tokens 9.84058, since last addr message: 0.062377 addr/sec, peer shh2ewyegnuwnmdse5kl5toybdvzkvk2yj4zcowz6iwhhh3ykdfa.b32.i2p
     262021-07-07T09:05:40Z RATE LIMIT: received 7 addresses, tokens 12.8494, since last addr message: 0.059075 addr/sec, peer ppsmb5ln3rx6mfdzx2nwsleug5etsavbbzjkdealaybrh2jo2n6a.b32.i2p
     272021-07-07T09:05:49Z RATE LIMIT: received 4 addresses, tokens 7.42107, since last addr message: 0.101670 addr/sec, peer 60.244.109.19
     282021-07-07T09:05:56Z RATE LIMIT: received 5 addresses, tokens 9.09188, since last addr message: 0.079376 addr/sec, peer 70.64.27.12
     292021-07-07T09:05:58Z RATE LIMIT: received 4 addresses, tokens 9.56812, since last addr message: 0.107140 addr/sec, peer 2a01:4f8:140:948b::2
     302021-07-07T09:06:03Z RATE LIMIT: received 13 addresses, tokens 9.68901, since last addr message: 0.172230 addr/sec, peer 168.119.79.89
     312021-07-07T09:06:05Z RATE LIMIT: received 5 addresses, tokens 8.38568, since last addr message: 0.141040 addr/sec, peer shh2ewyegnuwnmdse5kl5toybdvzkvk2yj4zcowz6iwhhh3ykdfa.b32.i2p
     322021-07-07T09:06:06Z RATE LIMIT: received 10 addresses, tokens 9.32125, since last addr message: 0.148789 addr/sec, peer 83.150.56.145
     332021-07-07T09:06:11Z RATE LIMIT: received 1 addresses, tokens 1.4728, since last addr message: 0.127586 addr/sec, peer 168.119.79.89
     342021-07-07T09:06:15Z RATE LIMIT: received 4 addresses, tokens 5.84985, since last addr message: 0.074630 addr/sec, peer 35.197.140.219
     352021-07-07T09:06:16Z RATE LIMIT: received 1 addresses, tokens 1.37637, since last addr message: 0.094775 addr/sec, peer 83.150.56.145
     362021-07-07T09:06:17Z RATE LIMIT: received 4 addresses, tokens 11.158, since last addr message: 0.059187 addr/sec, peer q5csjdscadbsm27ceyuk7naxveak5yevqlnrowhgcnaxxauwc24zvhqd.onion
     372021-07-07T09:06:18Z RATE LIMIT: received 176 addresses, tokens 6.29241, since last addr message: 7.998060 addr/sec, peer 70.64.27.12
     382021-07-07T09:06:28Z RATE LIMIT: received 6 addresses, tokens 8.51784, since last addr message: 0.203409 addr/sec, peer 2a01:4f8:140:948b::2
     392021-07-07T09:06:30Z RATE LIMIT: received 2 addresses, tokens 1.46008, since last addr message: 0.171282 addr/sec, peer 70.64.27.12
     402021-07-07T09:06:30Z RATE LIMIT: received 4 addresses, tokens 1.75868, since last addr message: 0.289371 addr/sec, peer 83.150.56.145
     412021-07-07T09:06:36Z RATE LIMIT: received 2 addresses, tokens 2.9657, since last addr message: 0.080228 addr/sec, peer 168.119.79.89
     422021-07-07T09:06:36Z RATE LIMIT: received 3 addresses, tokens 3.91656, since last addr message: 0.145159 addr/sec, peer 35.197.140.219
     432021-07-07T09:06:39Z RATE LIMIT: received 10 addresses, tokens 11.8759, since last addr message: 0.084204 addr/sec, peer 99.108.237.173
     442021-07-07T09:06:44Z RATE LIMIT: received 2 addresses, tokens 7.27696, since last addr message: 0.051397 addr/sec, peer shh2ewyegnuwnmdse5kl5toybdvzkvk2yj4zcowz6iwhhh3ykdfa.b32.i2p
     452021-07-07T09:06:49Z RATE LIMIT: received 91 addresses, tokens 12.7167, since last addr message: 1.325119 addr/sec, peer ppsmb5ln3rx6mfdzx2nwsleug5etsavbbzjkdealaybrh2jo2n6a.b32.i2p
     462021-07-07T09:06:51Z RATE LIMIT: received 1 addresses, tokens 2.41899, since last addr message: 0.066559 addr/sec, peer 35.197.140.219
     472021-07-07T09:07:01Z RATE LIMIT: received 94 addresses, tokens 3.825, since last addr message: 3.065569 addr/sec, peer 83.150.56.145
     482021-07-07T09:07:03Z RATE LIMIT: received 8 addresses, tokens 10.7864, since last addr message: 0.108616 addr/sec, peer 60.244.109.19
     492021-07-07T09:07:03Z RATE LIMIT: received 6 addresses, tokens 7.15104, since last addr message: 0.320157 addr/sec, peer shh2ewyegnuwnmdse5kl5toybdvzkvk2yj4zcowz6iwhhh3ykdfa.b32.i2p
     502021-07-07T09:07:07Z RATE LIMIT: received 1 addresses, tokens 1.54945, since last addr message: 0.250995 addr/sec, peer shh2ewyegnuwnmdse5kl5toybdvzkvk2yj4zcowz6iwhhh3ykdfa.b32.i2p
     512021-07-07T09:07:07Z RATE LIMIT: received 6 addresses, tokens 4.06796, since last addr message: 0.193407 addr/sec, peer 168.119.79.89
     522021-07-07T09:07:08Z RATE LIMIT: received 4 addresses, tokens 12.2409, since last addr message: 0.078696 addr/sec, peer q5csjdscadbsm27ceyuk7naxveak5yevqlnrowhgcnaxxauwc24zvhqd.onion
     532021-07-07T09:07:11Z RATE LIMIT: received 2 addresses, tokens 0.442696, since last addr message: 0.533716 addr/sec, peer 168.119.79.89
     542021-07-07T09:07:16Z RATE LIMIT: received 1 addresses, tokens 1.41633, since last addr message: 0.115357 addr/sec, peer shh2ewyegnuwnmdse5kl5toybdvzkvk2yj4zcowz6iwhhh3ykdfa.b32.i2p
     552021-07-07T09:07:16Z RATE LIMIT: received 5 addresses, tokens 5.07261, since last addr message: 0.108400 addr/sec, peer 70.64.27.12
     562021-07-07T09:07:17Z RATE LIMIT: received 2 addresses, tokens 4.17754, since last addr message: 0.143771 addr/sec, peer 60.244.109.19
     572021-07-07T09:07:22Z RATE LIMIT: received 8 addresses, tokens 6.1308, since last addr message: 0.188019 addr/sec, peer 99.108.237.173
     582021-07-07T09:07:22Z RATE LIMIT: received 1 addresses, tokens 4.49512, since last addr message: 0.032508 addr/sec, peer 35.197.140.219
     592021-07-07T09:07:29Z RATE LIMIT: received 14 addresses, tokens 3.67892, since last addr message: 0.490554 addr/sec, peer 83.150.56.145
     602021-07-07T09:07:40Z RATE LIMIT: received 2 addresses, tokens 1.93094, since last addr message: 0.111102 addr/sec, peer 99.108.237.173
     612021-07-07T09:07:51Z RATE LIMIT: received 1 addresses, tokens 2.06634, since last addr message: 0.088075 addr/sec, peer 99.108.237.173
     622021-07-07T09:07:56Z RATE LIMIT: received 2 addresses, tokens 4.44477, since last addr message: 0.049647 addr/sec, peer shh2ewyegnuwnmdse5kl5toybdvzkvk2yj4zcowz6iwhhh3ykdfa.b32.i2p
     632021-07-07T09:07:57Z RATE LIMIT: received 1 addresses, tokens 6.9955, since last addr message: 0.028568 addr/sec, peer 35.197.140.219
     642021-07-07T09:08:05Z RATE LIMIT: received 1 addresses, tokens 2.4855, since last addr message: 0.070464 addr/sec, peer 99.108.237.173
     652021-07-07T09:08:20Z RATE LIMIT: received 10 addresses, tokens 5.77878, since last addr message: 0.196084 addr/sec, peer 83.150.56.145
     662021-07-07T09:08:24Z RATE LIMIT: received 1 addresses, tokens 1.10281, since last addr message: 0.308609 addr/sec, peer 83.150.56.145
     672021-07-07T09:08:28Z RATE LIMIT: received 7 addresses, tokens 9.35216, since last addr message: 0.097566 addr/sec, peer 60.244.109.19
     682021-07-07T09:08:30Z RATE LIMIT: received 10 addresses, tokens 16.4104, since last addr message: 0.122406 addr/sec, peer q5csjdscadbsm27ceyuk7naxveak5yevqlnrowhgcnaxxauwc24zvhqd.onion
     692021-07-07T09:08:33Z RATE LIMIT: received 5 addresses, tokens 9.62191, since last addr message: 0.137877 addr/sec, peer 35.197.140.219
     702021-07-07T09:08:34Z RATE LIMIT: received 83 addresses, tokens 8.73494, since last addr message: 1.000935 addr/sec, peer 168.119.79.89
     712021-07-07T09:08:40Z RATE LIMIT: received 2 addresses, tokens 3.47649, since last addr message: 0.177884 addr/sec, peer 60.244.109.19
     722021-07-07T09:08:46Z RATE LIMIT: received 199 addresses, tokens 12.4127, since last addr message: 1.701439 addr/sec, peer ppsmb5ln3rx6mfdzx2nwsleug5etsavbbzjkdealaybrh2jo2n6a.b32.i2p
     732021-07-07T09:08:49Z RATE LIMIT: received 2 addresses, tokens 7.70887, since last addr message: 0.037993 addr/sec, peer shh2ewyegnuwnmdse5kl5toybdvzkvk2yj4zcowz6iwhhh3ykdfa.b32.i2p
     742021-07-07T09:08:52Z RATE LIMIT: received 15 addresses, tokens 9.61034, since last addr message: 0.157270 addr/sec, peer 70.64.27.12
     752021-07-07T09:08:59Z RATE LIMIT: received 8 addresses, tokens 31.1254, since last addr message: 0.026321 addr/sec, peer 94.237.44.67
     762021-07-07T09:08:59Z RATE LIMIT: received 1 addresses, tokens 6.76573, since last addr message: 0.094620 addr/sec, peer shh2ewyegnuwnmdse5kl5toybdvzkvk2yj4zcowz6iwhhh3ykdfa.b32.i2p
     772021-07-07T09:08:59Z RATE LIMIT: received 7 addresses, tokens 9.35899, since last addr message: 0.237402 addr/sec, peer q5csjdscadbsm27ceyuk7naxveak5yevqlnrowhgcnaxxauwc24zvhqd.onion
     782021-07-07T09:09:04Z RATE LIMIT: received 1 addresses, tokens 7.66611, since last addr message: 0.032849 addr/sec, peer 35.197.140.219
     792021-07-07T09:09:06Z RATE LIMIT: received 2 addresses, tokens 6.43881, since last addr message: 0.297140 addr/sec, peer shh2ewyegnuwnmdse5kl5toybdvzkvk2yj4zcowz6iwhhh3ykdfa.b32.i2p
     802021-07-07T09:09:06Z RATE LIMIT: received 3 addresses, tokens 7.07634, since last addr message: 0.049372 addr/sec, peer 88.99.167.186
     812021-07-07T09:09:08Z RATE LIMIT: received 4 addresses, tokens 4.15081, since last addr message: 0.117101 addr/sec, peer 168.119.79.89
     822021-07-07T09:09:09Z RATE LIMIT: received 6 addresses, tokens 4.63341, since last addr message: 0.132433 addr/sec, peer 83.150.56.145
     832021-07-07T09:09:09Z RATE LIMIT: received 2 addresses, tokens 7.86447, since last addr message: 0.031353 addr/sec, peer 99.108.237.173
     842021-07-07T09:09:14Z RATE LIMIT: received 2 addresses, tokens 4.91522, since last addr message: 0.058161 addr/sec, peer 60.244.109.19
     852021-07-07T09:09:17Z RATE LIMIT: received 1 addresses, tokens 6.63053, since last addr message: 0.130539 addr/sec, peer 99.108.237.173
     862021-07-07T09:09:20Z RATE LIMIT: received 1 addresses, tokens 1.77158, since last addr message: 0.087860 addr/sec, peer 83.150.56.145
     872021-07-07T09:09:21Z RATE LIMIT: received 1 addresses, tokens 6.02009, since last addr message: 0.256700 addr/sec, peer 99.108.237.173
     882021-07-07T09:09:33Z RATE LIMIT: received 1 addresses, tokens 2.69065, since last addr message: 0.039372 addr/sec, peer 168.119.79.89
     892021-07-07T09:09:37Z RATE LIMIT: received 4 addresses, tokens 6.63737, since last addr message: 0.247329 addr/sec, peer 99.108.237.173
     902021-07-07T09:09:42Z RATE LIMIT: received 5 addresses, tokens 2.89588, since last addr message: 0.235373 addr/sec, peer 83.150.56.145
     912021-07-07T09:09:44Z RATE LIMIT: received 3 addresses, tokens 2.74131, since last addr message: 0.285537 addr/sec, peer 168.119.79.89
     922021-07-07T09:09:48Z RATE LIMIT: received 6 addresses, tokens 6.61979, since last addr message: 0.096663 addr/sec, peer ppsmb5ln3rx6mfdzx2nwsleug5etsavbbzjkdealaybrh2jo2n6a.b32.i2p
     932021-07-07T09:09:58Z RATE LIMIT: received 2 addresses, tokens 7.25036, since last addr message: 0.030120 addr/sec, peer 70.64.27.12
     942021-07-07T09:10:03Z RATE LIMIT: received 6 addresses, tokens 1.12039, since last addr message: 4.983790 addr/sec, peer kokkmpquqlkptu5hkmzqlttsmtwxicldr4so7wqsufk6bwf32nma.b32.i2p
     952021-07-07T09:10:03Z RATE LIMIT: received 10 addresses, tokens 35.459, since last addr message: 0.028256 addr/sec, peer 140.143.155.41
     962021-07-07T09:10:04Z RATE LIMIT: received 4 addresses, tokens 8.84326, since last addr message: 0.061688 addr/sec, peer q5csjdscadbsm27ceyuk7naxveak5yevqlnrowhgcnaxxauwc24zvhqd.onion
     972021-07-07T09:10:06Z RATE LIMIT: received 2 addresses, tokens 3.35639, since last addr message: 0.081284 addr/sec, peer 83.150.56.145
     982021-07-07T09:10:08Z RATE LIMIT: received 1 addresses, tokens 8.26627, since last addr message: 0.018688 addr/sec, peer 60.244.109.19
     992021-07-07T09:10:21Z RATE LIMIT: received 2 addresses, tokens 11.9936, since last addr message: 0.026473 addr/sec, peer shh2ewyegnuwnmdse5kl5toybdvzkvk2yj4zcowz6iwhhh3ykdfa.b32.i2p
    1002021-07-07T09:10:22Z RATE LIMIT: received 22 addresses, tokens 25.9338, since last addr message: 0.093953 addr/sec, peer 2a01:4f8:140:948b::2
    1012021-07-07T09:10:25Z RATE LIMIT: received 6 addresses, tokens 14.8514, since last addr message: 0.073303 addr/sec, peer 35.197.140.219
    1022021-07-07T09:10:28Z RATE LIMIT: received 6 addresses, tokens 7.7032, since last addr message: 0.118441 addr/sec, peer 99.108.237.173
    1032021-07-07T09:10:28Z RATE LIMIT: received 4 addresses, tokens 5.13672, since last addr message: 0.091004 addr/sec, peer 168.119.79.89
    1042021-07-07T09:10:30Z RATE LIMIT: received 1 addresses, tokens 1.98525, since last addr message: 0.354553 addr/sec, peer 99.108.237.173
    1052021-07-07T09:10:31Z RATE LIMIT: received 3 addresses, tokens 3.85494, since last addr message: 0.120070 addr/sec, peer 83.150.56.145
    1062021-07-07T09:10:33Z RATE LIMIT: received 1 addresses, tokens 5.02189, since last addr message: 0.091907 addr/sec, peer 2a01:4f8:140:948b::2
    1072021-07-07T09:10:34Z RATE LIMIT: received 8 addresses, tokens 7.1298, since last addr message: 0.130510 addr/sec, peer 188.166.69.73
    1082021-07-07T09:10:37Z RATE LIMIT: received 1 addresses, tokens 10.0062, since last addr message: 0.086591 addr/sec, peer 35.197.140.219
    1092021-07-07T09:10:40Z RATE LIMIT: received 1 addresses, tokens 1.95125, since last addr message: 0.103520 addr/sec, peer 99.108.237.173
    1102021-07-07T09:10:40Z RATE LIMIT: received 1 addresses, tokens 1.76504, since last addr message: 0.109878 addr/sec, peer 83.150.56.145
    1112021-07-07T09:10:53Z RATE LIMIT: received 3 addresses, tokens 6.07525, since last addr message: 0.146101 addr/sec, peer 2a01:4f8:140:948b::2
    1122021-07-07T09:11:01Z RATE LIMIT: received 1 addresses, tokens 11.3949, since last addr message: 0.041864 addr/sec, peer 35.197.140.219
    1132021-07-07T09:11:01Z RATE LIMIT: received 1 addresses, tokens 7.93659, since last addr message: 0.013667 addr/sec, peer ppsmb5ln3rx6mfdzx2nwsleug5etsavbbzjkdealaybrh2jo2n6a.b32.i2p
    1142021-07-07T09:11:04Z RATE LIMIT: received 4 addresses, tokens 4.73447, since last addr message: 0.111181 addr/sec, peer 168.119.79.89
    1152021-07-07T09:11:06Z RATE LIMIT: received 5 addresses, tokens 12.0644, since last addr message: 0.073378 addr/sec, peer 70.64.27.12
    1162021-07-07T09:11:10Z RATE LIMIT: received 1 addresses, tokens 1.39425, since last addr message: 0.151567 addr/sec, peer 168.119.79.89
    1172021-07-07T09:11:19Z RATE LIMIT: received 7 addresses, tokens 7.78929, since last addr message: 0.091278 addr/sec, peer kokkmpquqlkptu5hkmzqlttsmtwxicldr4so7wqsufk6bwf32nma.b32.i2p
    1182021-07-07T09:11:25Z RATE LIMIT: received 1 addresses, tokens 12.7883, since last addr message: 0.041782 addr/sec, peer 35.197.140.219
    1192021-07-07T09:11:27Z RATE LIMIT: received 4 addresses, tokens 9.56786, since last addr message: 0.152018 addr/sec, peer ppsmb5ln3rx6mfdzx2nwsleug5etsavbbzjkdealaybrh2jo2n6a.b32.i2p
    1202021-07-07T09:11:30Z RATE LIMIT: received 11 addresses, tokens 16.8545, since last addr message: 0.160329 addr/sec, peer shh2ewyegnuwnmdse5kl5toybdvzkvk2yj4zcowz6iwhhh3ykdfa.b32.i2p
    1212021-07-07T09:11:33Z RATE LIMIT: received 5 addresses, tokens 15.7998, since last addr message: 0.058592 addr/sec, peer 60.244.109.19
    1222021-07-07T09:11:37Z RATE LIMIT: received 7 addresses, tokens 14.1585, since last addr message: 0.075146 addr/sec, peer q5csjdscadbsm27ceyuk7naxveak5yevqlnrowhgcnaxxauwc24zvhqd.onion
    1232021-07-07T09:11:38Z RATE LIMIT: received 1 addresses, tokens 13.0788, since last addr message: 0.077490 addr/sec, peer 35.197.140.219
    1242021-07-07T09:11:38Z RATE LIMIT: received 1 addresses, tokens 6.52139, since last addr message: 0.017372 addr/sec, peer 83.150.56.145
    1252021-07-07T09:11:44Z RATE LIMIT: received 2 addresses, tokens 10.8577, since last addr message: 0.052725 addr/sec, peer 70.64.27.12
    1262021-07-07T09:11:49Z RATE LIMIT: received 3 addresses, tokens 8.67377, since last addr message: 0.053586 addr/sec, peer 2a01:4f8:140:948b::2
    1272021-07-07T09:11:53Z RATE LIMIT: received 4 addresses, tokens 8.10142, since last addr message: 0.157881 addr/sec, peer ppsmb5ln3rx6mfdzx2nwsleug5etsavbbzjkdealaybrh2jo2n6a.b32.i2p
    1282021-07-07T09:11:54Z RATE LIMIT: received 5 addresses, tokens 8.37188, since last addr message: 0.067380 addr/sec, peer 99.108.237.173
    1292021-07-07T09:11:55Z RATE LIMIT: received 6 addresses, tokens 4.32853, since last addr message: 0.169528 addr/sec, peer kokkmpquqlkptu5hkmzqlttsmtwxicldr4so7wqsufk6bwf32nma.b32.i2p
    1302021-07-07T09:12:05Z RATE LIMIT: received 6 addresses, tokens 1.37154, since last addr message: 1.614886 addr/sec, peer bitcornrd36coazsbzsz4pdebyzvaplmsalq4kpoljmn6cg6x5zq.b32.i2p
    1312021-07-07T09:12:10Z RATE LIMIT: received 1 addresses, tokens 1.8576, since last addr message: 0.065399 addr/sec, peer kokkmpquqlkptu5hkmzqlttsmtwxicldr4so7wqsufk6bwf32nma.b32.i2p
    1322021-07-07T09:12:18Z RATE LIMIT: received 1 addresses, tokens 1.6976, since last addr message: 0.075411 addr/sec, peer bitcornrd36coazsbzsz4pdebyzvaplmsalq4kpoljmn6cg6x5zq.b32.i2p
    1332021-07-07T09:12:25Z RATE LIMIT: received 3 addresses, tokens 2.36533, since last addr message: 0.198975 addr/sec, peer kokkmpquqlkptu5hkmzqlttsmtwxicldr4so7wqsufk6bwf32nma.b32.i2p
    1342021-07-07T09:12:27Z RATE LIMIT: received 4 addresses, tokens 9.48712, since last addr message: 0.104895 addr/sec, peer 2a01:4f8:140:948b::2
    1352021-07-07T09:12:27Z RATE LIMIT: received 4 addresses, tokens 11.5973, since last addr message: 0.069652 addr/sec, peer shh2ewyegnuwnmdse5kl5toybdvzkvk2yj4zcowz6iwhhh3ykdfa.b32.i2p
    1362021-07-07T09:12:33Z RATE LIMIT: received 3 addresses, tokens 8.14854, since last addr message: 0.074127 addr/sec, peer ppsmb5ln3rx6mfdzx2nwsleug5etsavbbzjkdealaybrh2jo2n6a.b32.i2p
    1372021-07-07T09:12:35Z RATE LIMIT: received 1 addresses, tokens 8.33247, since last addr message: 0.136026 addr/sec, peer shh2ewyegnuwnmdse5kl5toybdvzkvk2yj4zcowz6iwhhh3ykdfa.b32.i2p
    1382021-07-07T09:12:36Z RATE LIMIT: received 14 addresses, tokens 8.95071, since last addr message: 0.163619 addr/sec, peer 168.119.79.89
    1392021-07-07T09:12:40Z RATE LIMIT: received 4 addresses, tokens 17.5469, since last addr message: 0.059285 addr/sec, peer 60.244.109.19
    1402021-07-07T09:12:48Z RATE LIMIT: received 2 addresses, tokens 7.52695, since last addr message: 0.098047 addr/sec, peer 2a01:4f8:140:948b::2
    1412021-07-07T09:12:56Z RATE LIMIT: received 11 addresses, tokens 13.2845, since last addr message: 0.141696 addr/sec, peer 83.150.56.145
    1422021-07-07T09:12:57Z RATE LIMIT: received 2 addresses, tokens 15.1406, since last addr message: 0.025056 addr/sec, peer q5csjdscadbsm27ceyuk7naxveak5yevqlnrowhgcnaxxauwc24zvhqd.onion
    1432021-07-07T09:12:57Z RATE LIMIT: received 1 addresses, tokens 16.1891, since last addr message: 0.013640 addr/sec, peer 70.64.27.12
    1442021-07-07T09:12:58Z RATE LIMIT: received 7 addresses, tokens 9.76227, since last addr message: 0.109539 addr/sec, peer 99.108.237.173
    1452021-07-07T09:13:02Z RATE LIMIT: received 1 addresses, tokens 20.5312, since last addr message: 0.011831 addr/sec, peer 35.197.140.219
    1462021-07-07T09:13:05Z RATE LIMIT: received 1 addresses, tokens 3.88256, since last addr message: 0.034108 addr/sec, peer 168.119.79.89
    1472021-07-07T09:13:13Z RATE LIMIT: received 1 addresses, tokens 20.5826, since last addr message: 0.095115 addr/sec, peer 35.197.140.219
    1482021-07-07T09:13:18Z RATE LIMIT: received 2 addresses, tokens 17.2855, since last addr message: 0.053496 addr/sec, peer 60.244.109.19
    1492021-07-07T09:13:19Z RATE LIMIT: received 2 addresses, tokens 4.66017, since last addr message: 0.084186 addr/sec, peer 83.150.56.145
    1502021-07-07T09:13:21Z RATE LIMIT: received 6 addresses, tokens 5.90778, since last addr message: 0.108256 addr/sec, peer kokkmpquqlkptu5hkmzqlttsmtwxicldr4so7wqsufk6bwf32nma.b32.i2p
    1512021-07-07T09:13:23Z RATE LIMIT: received 1 addresses, tokens 17.7021, since last addr message: 0.039794 addr/sec, peer 70.64.27.12
    1522021-07-07T09:13:28Z RATE LIMIT: received 6 addresses, tokens 7.67042, since last addr message: 0.086048 addr/sec, peer bitcornrd36coazsbzsz4pdebyzvaplmsalq4kpoljmn6cg6x5zq.b32.i2p
    1532021-07-07T09:13:30Z RATE LIMIT: received 1 addresses, tokens 21.2579, since last addr message: 0.059689 addr/sec, peer 35.197.140.219
    1542021-07-07T09:13:34Z RATE LIMIT: received 2 addresses, tokens 11.2143, since last addr message: 0.032972 addr/sec, peer ppsmb5ln3rx6mfdzx2nwsleug5etsavbbzjkdealaybrh2jo2n6a.b32.i2p
    1552021-07-07T09:13:34Z RATE LIMIT: received 1 addresses, tokens 17.8771, since last addr message: 0.085106 addr/sec, peer 70.64.27.12
    1562021-07-07T09:13:38Z RATE LIMIT: received 1 addresses, tokens 6.73124, since last addr message: 0.025195 addr/sec, peer 99.108.237.173
    1572021-07-07T09:13:42Z RATE LIMIT: received 3 addresses, tokens 14.0147, since last addr message: 0.044895 addr/sec, peer shh2ewyegnuwnmdse5kl5toybdvzkvk2yj4zcowz6iwhhh3ykdfa.b32.i2p
    1582021-07-07T09:13:42Z RATE LIMIT: received 4 addresses, tokens 10.9478, since last addr message: 0.073789 addr/sec, peer 2a01:4f8:140:948b::2
    1592021-07-07T09:13:45Z RATE LIMIT: received 66 addresses, tokens 6.83065, since last addr message: 1.671692 addr/sec, peer 168.119.79.89
    1602021-07-07T09:13:52Z RATE LIMIT: received 9 addresses, tokens 52.4549, since last addr message: 0.030686 addr/sec, peer 94.237.44.67
    1612021-07-07T09:13:54Z RATE LIMIT: received 2 addresses, tokens 7.35356, since last addr message: 0.123280 addr/sec, peer 99.108.237.173
    1622021-07-07T09:13:57Z RATE LIMIT: received 1 addresses, tokens 4.54626, since last addr message: 0.034772 addr/sec, peer bitcornrd36coazsbzsz4pdebyzvaplmsalq4kpoljmn6cg6x5zq.b32.i2p
    1632021-07-07T09:14:00Z RATE LIMIT: received 2 addresses, tokens 19.4917, since last addr message: 0.076494 addr/sec, peer 70.64.27.12
    1642021-07-07T09:14:08Z RATE LIMIT: received 2 addresses, tokens 5.61784, since last addr message: 0.042462 addr/sec, peer kokkmpquqlkptu5hkmzqlttsmtwxicldr4so7wqsufk6bwf32nma.b32.i2p
    1652021-07-07T09:14:12Z RATE LIMIT: received 1 addresses, tokens 9.95957, since last addr message: 0.033203 addr/sec, peer 2a01:4f8:140:948b::2
    1662021-07-07T09:14:20Z RATE LIMIT: received 1 addresses, tokens 25.3504, since last addr message: 0.019637 addr/sec, peer 35.197.140.219
    1672021-07-07T09:14:21Z RATE LIMIT: received 2 addresses, tokens 14.9628, since last addr message: 0.050657 addr/sec, peer shh2ewyegnuwnmdse5kl5toybdvzkvk2yj4zcowz6iwhhh3ykdfa.b32.i2p
    1682021-07-07T09:14:29Z RATE LIMIT: received 3 addresses, tokens 9.6525, since last addr message: 0.042904 addr/sec, peer 83.150.56.145
    1692021-07-07T09:14:34Z RATE LIMIT: received 2 addresses, tokens 14.2092, since last addr message: 0.160458 addr/sec, peer shh2ewyegnuwnmdse5kl5toybdvzkvk2yj4zcowz6iwhhh3ykdfa.b32.i2p
    1702021-07-07T09:14:34Z RATE LIMIT: received 2 addresses, tokens 11.1131, since last addr message: 0.092873 addr/sec, peer 2a01:4f8:140:948b::2
    1712021-07-07T09:14:34Z RATE LIMIT: received 2 addresses, tokens 22.9471, since last addr message: 0.026104 addr/sec, peer 60.244.109.19
    1722021-07-07T09:14:37Z RATE LIMIT: received 4 addresses, tokens 23.1445, since last addr message: 0.039984 addr/sec, peer q5csjdscadbsm27ceyuk7naxveak5yevqlnrowhgcnaxxauwc24zvhqd.onion
    1732021-07-07T09:14:39Z RATE LIMIT: received 1 addresses, tokens 21.4509, since last addr message: 0.198521 addr/sec, peer 60.244.109.19
    1742021-07-07T09:14:44Z RATE LIMIT: received 1 addresses, tokens 19.7678, since last addr message: 0.160441 addr/sec, peer q5csjdscadbsm27ceyuk7naxveak5yevqlnrowhgcnaxxauwc24zvhqd.onion
    1752021-07-07T09:14:44Z RATE LIMIT: received 3 addresses, tokens 6.76405, since last addr message: 0.050561 addr/sec, peer 168.119.79.89
    1762021-07-07T09:14:49Z RATE LIMIT: received 5 addresses, tokens 7.78816, since last addr message: 0.119895 addr/sec, peer kokkmpquqlkptu5hkmzqlttsmtwxicldr4so7wqsufk6bwf32nma.b32.i2p
    1772021-07-07T09:14:57Z RATE LIMIT: received 2 addresses, tokens 9.54201, since last addr message: 0.033357 addr/sec, peer bitcornrd36coazsbzsz4pdebyzvaplmsalq4kpoljmn6cg6x5zq.b32.i2p
    1782021-07-07T09:14:58Z RATE LIMIT: received 3 addresses, tokens 11.7892, since last addr message: 0.046615 addr/sec, peer 99.108.237.173
    1792021-07-07T09:15:00Z RATE LIMIT: received 2 addresses, tokens 5.3318, since last addr message: 0.127571 addr/sec, peer 168.119.79.89
    1802021-07-07T09:15:10Z RATE LIMIT: received 1 addresses, tokens 21.4629, since last addr message: 0.037105 addr/sec, peer q5csjdscadbsm27ceyuk7naxveak5yevqlnrowhgcnaxxauwc24zvhqd.onion
    1812021-07-07T09:15:13Z RATE LIMIT: received 3 addresses, tokens 11.0482, since last addr message: 0.068249 addr/sec, peer 83.150.56.145
    1822021-07-07T09:15:19Z RATE LIMIT: received 2 addresses, tokens 10.858, since last addr message: 0.096673 addr/sec, peer 99.108.237.173
    1832021-07-07T09:15:20Z RATE LIMIT: received 10 addresses, tokens 16.8365, since last addr message: 0.216110 addr/sec, peer shh2ewyegnuwnmdse5kl5toybdvzkvk2yj4zcowz6iwhhh3ykdfa.b32.i2p
    1842021-07-07T09:15:22Z RATE LIMIT: received 4 addresses, tokens 30.4833, since last addr message: 0.065221 addr/sec, peer 35.197.140.219
    1852021-07-07T09:15:26Z RATE LIMIT: received 2 addresses, tokens 14.3614, since last addr message: 0.038107 addr/sec, peer 2a01:4f8:140:948b::2
    1862021-07-07T09:15:30Z RATE LIMIT: received 3 addresses, tokens 20.8126, since last addr message: 0.025866 addr/sec, peer ppsmb5ln3rx6mfdzx2nwsleug5etsavbbzjkdealaybrh2jo2n6a.b32.i2p
    1872021-07-07T09:15:32Z RATE LIMIT: received 4 addresses, tokens 25.7308, since last addr message: 0.075759 addr/sec, peer 60.244.109.19
    1882021-07-07T09:15:35Z RATE LIMIT: received 1 addresses, tokens 10.4747, since last addr message: 0.061857 addr/sec, peer 99.108.237.173
    1892021-07-07T09:15:42Z RATE LIMIT: received 1 addresses, tokens 22.7058, since last addr message: 0.102559 addr/sec, peer 60.244.109.19
    1902021-07-07T09:15:44Z RATE LIMIT: received 214 addresses, tokens 27.8031, since last addr message: 2.075361 addr/sec, peer 70.64.27.12
    1912021-07-07T09:15:46Z RATE LIMIT: received 1 addresses, tokens 19.4894, since last addr message: 0.059634 addr/sec, peer ppsmb5ln3rx6mfdzx2nwsleug5etsavbbzjkdealaybrh2jo2n6a.b32.i2p
    1922021-07-07T09:15:53Z RATE LIMIT: received 2 addresses, tokens 9.19042, since last addr message: 0.031239 addr/sec, peer kokkmpquqlkptu5hkmzqlttsmtwxicldr4so7wqsufk6bwf32nma.b32.i2p
    1932021-07-07T09:15:56Z RATE LIMIT: received 1 addresses, tokens 12.2993, since last addr message: 0.023523 addr/sec, peer 83.150.56.145
    1942021-07-07T09:16:00Z RATE LIMIT: received 8 addresses, tokens 13.8318, since last addr message: 0.127190 addr/sec, peer bitcornrd36coazsbzsz4pdebyzvaplmsalq4kpoljmn6cg6x5zq.b32.i2p
    1952021-07-07T09:16:04Z RATE LIMIT: received 5 addresses, tokens 23.8656, since last addr message: 0.231506 addr/sec, peer 60.244.109.19
    1962021-07-07T09:16:07Z RATE LIMIT: received 6 addresses, tokens 8.72865, since last addr message: 0.077633 addr/sec, peer 34.64.249.186
    1972021-07-07T09:16:08Z RATE LIMIT: received 2 addresses, tokens 12.7048, since last addr message: 0.061916 addr/sec, peer 99.108.237.173
    1982021-07-07T09:16:13Z RATE LIMIT: received 4 addresses, tokens 12.1641, since last addr message: 0.075080 addr/sec, peer shh2ewyegnuwnmdse5kl5toybdvzkvk2yj4zcowz6iwhhh3ykdfa.b32.i2p
    1992021-07-07T09:16:14Z RATE LIMIT: received 2 addresses, tokens 9.2765, since last addr message: 0.095874 addr/sec, peer kokkmpquqlkptu5hkmzqlttsmtwxicldr4so7wqsufk6bwf32nma.b32.i2p
    2002021-07-07T09:16:21Z RATE LIMIT: received 2 addresses, tokens 27.4736, since last addr message: 0.028528 addr/sec, peer q5csjdscadbsm27ceyuk7naxveak5yevqlnrowhgcnaxxauwc24zvhqd.onion
    2012021-07-07T09:16:24Z RATE LIMIT: received 2 addresses, tokens 4.89172, since last addr message: 0.048917 addr/sec, peer 70.64.27.12
    2022021-07-07T09:16:25Z RATE LIMIT: received 6 addresses, tokens 63.6259, since last addr message: 0.015720 addr/sec, peer 140.143.155.41
    2032021-07-07T09:16:31Z RATE LIMIT: received 5 addresses, tokens 33.3879, since last addr message: 0.072416 addr/sec, peer 35.197.140.219
    2042021-07-07T09:16:36Z RATE LIMIT: received 1 addresses, tokens 9.4441, since last addr message: 0.046134 addr/sec, peer kokkmpquqlkptu5hkmzqlttsmtwxicldr4so7wqsufk6bwf32nma.b32.i2p
    2052021-07-07T09:16:36Z RATE LIMIT: received 16 addresses, tokens 12.9596, since last addr message: 0.166185 addr/sec, peer 168.119.79.89
    2062021-07-07T09:16:36Z RATE LIMIT: received 1 addresses, tokens 22.1182, since last addr message: 0.030745 addr/sec, peer 60.244.109.19
    2072021-07-07T09:16:38Z RATE LIMIT: received 3 addresses, tokens 9.64981, since last addr message: 0.078575 addr/sec, peer bitcornrd36coazsbzsz4pdebyzvaplmsalq4kpoljmn6cg6x5zq.b32.i2p
    2082021-07-07T09:16:40Z RATE LIMIT: received 1 addresses, tokens 10.8341, since last addr message: 0.037454 addr/sec, peer shh2ewyegnuwnmdse5kl5toybdvzkvk2yj4zcowz6iwhhh3ykdfa.b32.i2p
    2092021-07-07T09:16:42Z RATE LIMIT: received 1 addresses, tokens 1.53153, since last addr message: 0.174854 addr/sec, peer 168.119.79.89
    2102021-07-07T09:16:42Z RATE LIMIT: received 1 addresses, tokens 4.65103, since last addr message: 0.056841 addr/sec, peer 70.64.27.12
    2112021-07-07T09:16:45Z RATE LIMIT: received 8 addresses, tokens 20.2268, since last addr message: 0.101711 addr/sec, peer 2a01:4f8:140:948b::2
    2122021-07-07T09:16:46Z RATE LIMIT: received 2 addresses, tokens 10.4692, since last addr message: 0.314913 addr/sec, peer shh2ewyegnuwnmdse5kl5toybdvzkvk2yj4zcowz6iwhhh3ykdfa.b32.i2p
    2132021-07-07T09:16:49Z RATE LIMIT: received 1 addresses, tokens 7.75894, since last addr message: 0.090161 addr/sec, peer bitcornrd36coazsbzsz4pdebyzvaplmsalq4kpoljmn6cg6x5zq.b32.i2p
    2142021-07-07T09:16:50Z RATE LIMIT: received 3 addresses, tokens 22.5355, since last addr message: 0.211675 addr/sec, peer 60.244.109.19
    2152021-07-07T09:16:51Z RATE LIMIT: received 4 addresses, tokens 28.4708, since last addr message: 0.133455 addr/sec, peer q5csjdscadbsm27ceyuk7naxveak5yevqlnrowhgcnaxxauwc24zvhqd.onion
    2162021-07-07T09:17:01Z RATE LIMIT: received 2 addresses, tokens 25.9197, since last addr message: 0.026917 addr/sec, peer ppsmb5ln3rx6mfdzx2nwsleug5etsavbbzjkdealaybrh2jo2n6a.b32.i2p
    2172021-07-07T09:17:01Z RATE LIMIT: received 1 addresses, tokens 7.97517, since last addr message: 0.082222 addr/sec, peer bitcornrd36coazsbzsz4pdebyzvaplmsalq4kpoljmn6cg6x5zq.b32.i2p
    2182021-07-07T09:17:09Z RATE LIMIT: received 1 addresses, tokens 6.37987, since last addr message: 0.036646 addr/sec, peer 70.64.27.12
    2192021-07-07T09:17:15Z RATE LIMIT: received 5 addresses, tokens 12.2982, since last addr message: 0.129731 addr/sec, peer kokkmpquqlkptu5hkmzqlttsmtwxicldr4so7wqsufk6bwf32nma.b32.i2p
    2202021-07-07T09:17:27Z RATE LIMIT: received 2 addresses, tokens 34.0466, since last addr message: 0.035344 addr/sec, peer 35.197.140.219
    2212021-07-07T09:17:28Z RATE LIMIT: received 3 addresses, tokens 9.66036, since last addr message: 0.111724 addr/sec, peer bitcornrd36coazsbzsz4pdebyzvaplmsalq4kpoljmn6cg6x5zq.b32.i2p
    2222021-07-07T09:17:31Z RATE LIMIT: received 6 addresses, tokens 12.9883, since last addr message: 0.132769 addr/sec, peer shh2ewyegnuwnmdse5kl5toybdvzkvk2yj4zcowz6iwhhh3ykdfa.b32.i2p
    2232021-07-07T09:17:39Z RATE LIMIT: received 1 addresses, tokens 33.2238, since last addr message: 0.084950 addr/sec, peer 35.197.140.219
    2242021-07-07T09:17:40Z RATE LIMIT: received 9 addresses, tokens 19.9434, since last addr message: 0.097418 addr/sec, peer 99.108.237.173
    2252021-07-07T09:17:47Z RATE LIMIT: received 15 addresses, tokens 22.4076, since last addr message: 0.135034 addr/sec, peer 83.150.56.145
    2262021-07-07T09:17:50Z RATE LIMIT: received 8 addresses, tokens 7.37865, since last addr message: 0.116837 addr/sec, peer 168.119.79.89
    2272021-07-07T09:17:59Z RATE LIMIT: received 2 addresses, tokens 12.8546, since last addr message: 0.104646 addr/sec, peer 99.108.237.173
    2282021-07-07T09:18:04Z RATE LIMIT: received 5 addresses, tokens 30.2376, since last addr message: 0.079140 addr/sec, peer ppsmb5ln3rx6mfdzx2nwsleug5etsavbbzjkdealaybrh2jo2n6a.b32.i2p
    2292021-07-07T09:18:06Z RATE LIMIT: received 4 addresses, tokens 12.4384, since last addr message: 0.077818 addr/sec, peer kokkmpquqlkptu5hkmzqlttsmtwxicldr4so7wqsufk6bwf32nma.b32.i2p
    2302021-07-07T09:18:07Z RATE LIMIT: received 3 addresses, tokens 9.46511, since last addr message: 0.145804 addr/sec, peer 83.150.56.145
    2312021-07-07T09:18:13Z RATE LIMIT: received 4 addresses, tokens 32.7461, since last addr message: 0.048337 addr/sec, peer q5csjdscadbsm27ceyuk7naxveak5yevqlnrowhgcnaxxauwc24zvhqd.onion
    2322021-07-07T09:18:18Z RATE LIMIT: received 1 addresses, tokens 12.7406, since last addr message: 0.053024 addr/sec, peer 99.108.237.173
    2332021-07-07T09:18:19Z RATE LIMIT: received 9 addresses, tokens 28.4098, since last addr message: 0.101416 addr/sec, peer 60.244.109.19
    2342021-07-07T09:18:28Z RATE LIMIT: received 7 addresses, tokens 13.2928, since last addr message: 0.088463 addr/sec, peer 70.64.27.12
    2352021-07-07T09:18:32Z RATE LIMIT: received 2 addresses, tokens 28.085, since last addr message: 0.070241 addr/sec, peer ppsmb5ln3rx6mfdzx2nwsleug5etsavbbzjkdealaybrh2jo2n6a.b32.i2p
    2362021-07-07T09:18:34Z RATE LIMIT: received 7 addresses, tokens 4.74655, since last addr message: 0.160260 addr/sec, peer 168.119.79.89
    2372021-07-07T09:18:37Z RATE LIMIT: received 9 addresses, tokens 71.9678, since last addr message: 0.031565 addr/sec, peer 94.237.44.67
    2382021-07-07T09:18:44Z RATE LIMIT: received 2 addresses, tokens 10.1363, since last addr message: 0.054478 addr/sec, peer 83.150.56.145
    2392021-07-07T09:18:46Z RATE LIMIT: received 3 addresses, tokens 8.03067, since last addr message: 0.172626 addr/sec, peer 70.64.27.12
    2402021-07-07T09:18:46Z RATE LIMIT: received 2 addresses, tokens 5.03104, since last addr message: 540.394488 addr/sec, peer 70.64.27.12
    2412021-07-07T09:18:46Z RATE LIMIT: received 9 addresses, tokens 14.4638, since last addr message: 0.120394 addr/sec, peer shh2ewyegnuwnmdse5kl5toybdvzkvk2yj4zcowz6iwhhh3ykdfa.b32.i2p
    2422021-07-07T09:18:47Z RATE LIMIT: received 2 addresses, tokens 27.5203, since last addr message: 0.139338 addr/sec, peer ppsmb5ln3rx6mfdzx2nwsleug5etsavbbzjkdealaybrh2jo2n6a.b32.i2p
    2432021-07-07T09:18:51Z RATE LIMIT: received 4 addresses, tokens 15.0162, since last addr message: 0.122112 addr/sec, peer 99.108.237.173
    2442021-07-07T09:18:51Z RATE LIMIT: received 9 addresses, tokens 24.8676, since last addr message: 0.071198 addr/sec, peer 2a01:4f8:140:948b::2
    2452021-07-07T09:18:53Z RATE LIMIT: received 1 addresses, tokens 2.62657, since last addr message: 0.053191 addr/sec, peer 168.119.79.89
    2462021-07-07T09:18:53Z RATE LIMIT: received 2 addresses, tokens 3.74545, since last addr message: 0.279951 addr/sec, peer 70.64.27.12
    2472021-07-07T09:18:53Z RATE LIMIT: received 5 addresses, tokens 13.1584, since last addr message: 0.105932 addr/sec, peer kokkmpquqlkptu5hkmzqlttsmtwxicldr4so7wqsufk6bwf32nma.b32.i2p
    2482021-07-07T09:18:56Z RATE LIMIT: received 1 addresses, tokens 16.3891, since last addr message: 0.191768 addr/sec, peer 2a01:4f8:140:948b::2
    2492021-07-07T09:19:02Z RATE LIMIT: received 2 addresses, tokens 15.9748, since last addr message: 0.341468 addr/sec, peer 2a01:4f8:140:948b::2
    2502021-07-07T09:19:03Z RATE LIMIT: received 1 addresses, tokens 2.73152, since last addr message: 0.101413 addr/sec, peer 70.64.27.12
    2512021-07-07T09:19:03Z RATE LIMIT: received 14 addresses, tokens 16.171, since last addr message: 0.147203 addr/sec, peer bitcornrd36coazsbzsz4pdebyzvaplmsalq4kpoljmn6cg6x5zq.b32.i2p
    2522021-07-07T09:19:06Z RATE LIMIT: received 1 addresses, tokens 14.3582, since last addr message: 0.260813 addr/sec, peer 2a01:4f8:140:948b::2
    2532021-07-07T09:19:12Z RATE LIMIT: received 1 addresses, tokens 3.11512, since last addr message: 0.105922 addr/sec, peer bitcornrd36coazsbzsz4pdebyzvaplmsalq4kpoljmn6cg6x5zq.b32.i2p
    2542021-07-07T09:19:15Z RATE LIMIT: received 1 addresses, tokens 2.39884, since last addr message: 0.352464 addr/sec, peer bitcornrd36coazsbzsz4pdebyzvaplmsalq4kpoljmn6cg6x5zq.b32.i2p
    2552021-07-07T09:19:18Z RATE LIMIT: received 1 addresses, tokens 8.62582, since last addr message: 0.031625 addr/sec, peer shh2ewyegnuwnmdse5kl5toybdvzkvk2yj4zcowz6iwhhh3ykdfa.b32.i2p
    2562021-07-07T09:19:27Z RATE LIMIT: received 5 addresses, tokens 43.0025, since last addr message: 0.046388 addr/sec, peer 35.197.140.219
    2572021-07-07T09:19:30Z RATE LIMIT: received 2 addresses, tokens 38.3174, since last addr message: 0.635193 addr/sec, peer 35.197.140.219
    2582021-07-07T09:19:32Z RATE LIMIT: received 4 addresses, tokens 15.128, since last addr message: 0.097281 addr/sec, peer 99.108.237.173
    2592021-07-07T09:19:33Z RATE LIMIT: received 1 addresses, tokens 30.1271, since last addr message: 0.021707 addr/sec, peer ppsmb5ln3rx6mfdzx2nwsleug5etsavbbzjkdealaybrh2jo2n6a.b32.i2p
    2602021-07-07T09:19:33Z RATE LIMIT: received 3 addresses, tokens 16.073, since last addr message: 0.110506 addr/sec, peer 2a01:4f8:140:948b::2
    2612021-07-07T09:19:33Z RATE LIMIT: received 8 addresses, tokens 13.0779, since last addr message: 0.161893 addr/sec, peer 83.150.56.145
    2622021-07-07T09:19:34Z RATE LIMIT: received 5 addresses, tokens 26.8733, since last addr message: 0.066993 addr/sec, peer 60.244.109.19
    2632021-07-07T09:19:37Z RATE LIMIT: received 1 addresses, tokens 36.9902, since last addr message: 0.148625 addr/sec, peer 35.197.140.219
    2642021-07-07T09:19:42Z RATE LIMIT: received 6 addresses, tokens 37.6269, since last addr message: 0.067562 addr/sec, peer q5csjdscadbsm27ceyuk7naxveak5yevqlnrowhgcnaxxauwc24zvhqd.onion
    2652021-07-07T09:19:43Z RATE LIMIT: received 2 addresses, tokens 10.1248, since last addr message: 0.080033 addr/sec, peer shh2ewyegnuwnmdse5kl5toybdvzkvk2yj4zcowz6iwhhh3ykdfa.b32.i2p
    2662021-07-07T09:19:44Z RATE LIMIT: received 4 addresses, tokens 4.23541, since last addr message: 0.141016 addr/sec, peer bitcornrd36coazsbzsz4pdebyzvaplmsalq4kpoljmn6cg6x5zq.b32.i2p
    2672021-07-07T09:19:46Z RATE LIMIT: received 5 addresses, tokens 13.4185, since last addr message: 0.095056 addr/sec, peer kokkmpquqlkptu5hkmzqlttsmtwxicldr4so7wqsufk6bwf32nma.b32.i2p
    2682021-07-07T09:19:50Z RATE LIMIT: received 2 addresses, tokens 8.9049, since last addr message: 0.256379 addr/sec, peer shh2ewyegnuwnmdse5kl5toybdvzkvk2yj4zcowz6iwhhh3ykdfa.b32.i2p
    2692021-07-07T09:19:56Z RATE LIMIT: received 2 addresses, tokens 31.4362, since last addr message: 0.086615 addr/sec, peer ppsmb5ln3rx6mfdzx2nwsleug5etsavbbzjkdealaybrh2jo2n6a.b32.i2p
    2702021-07-07T09:19:58Z RATE LIMIT: received 4 addresses, tokens 7.20972, since last addr message: 0.073017 addr/sec, peer 70.64.27.12
    2712021-07-07T09:20:03Z RATE LIMIT: received 2 addresses, tokens 38.6171, since last addr message: 0.076138 addr/sec, peer 35.197.140.219
    2722021-07-07T09:20:05Z RATE LIMIT: received 3 addresses, tokens 24.9634, since last addr message: 0.097085 addr/sec, peer 60.244.109.19
    2732021-07-07T09:20:10Z RATE LIMIT: received 3 addresses, tokens 8.72288, since last addr message: 0.082304 addr/sec, peer 83.150.56.145
    2742021-07-07T09:20:12Z RATE LIMIT: received 2 addresses, tokens 9.03493, since last addr message: 0.093895 addr/sec, peer shh2ewyegnuwnmdse5kl5toybdvzkvk2yj4zcowz6iwhhh3ykdfa.b32.i2p
    2752021-07-07T09:20:17Z RATE LIMIT: received 2 addresses, tokens 6.40706, since last addr message: 0.292323 addr/sec, peer 83.150.56.145
    2762021-07-07T09:20:19Z RATE LIMIT: received 1 addresses, tokens 7.76774, since last addr message: 0.136461 addr/sec, peer shh2ewyegnuwnmdse5kl5toybdvzkvk2yj4zcowz6iwhhh3ykdfa.b32.i2p
    2772021-07-07T09:20:24Z RATE LIMIT: received 1 addresses, tokens 35.8485, since last addr message: 0.023687 addr/sec, peer q5csjdscadbsm27ceyuk7naxveak5yevqlnrowhgcnaxxauwc24zvhqd.onion
    2782021-07-07T09:20:32Z RATE LIMIT: received 5 addresses, tokens 5.11436, since last addr message: 0.102481 addr/sec, peer bitcornrd36coazsbzsz4pdebyzvaplmsalq4kpoljmn6cg6x5zq.b32.i2p
    2792021-07-07T09:20:35Z RATE LIMIT: received 6 addresses, tokens 6.9078, since last addr message: 0.162246 addr/sec, peer 70.64.27.12
    2802021-07-07T09:20:38Z RATE LIMIT: received 8 addresses, tokens 12.1765, since last addr message: 0.075830 addr/sec, peer 168.119.79.89
    2812021-07-07T09:20:43Z RATE LIMIT: received 2 addresses, tokens 18.2824, since last addr message: 0.027955 addr/sec, peer 99.108.237.173
    2822021-07-07T09:20:50Z RATE LIMIT: received 1 addresses, tokens 37.4015, since last addr message: 0.039169 addr/sec, peer q5csjdscadbsm27ceyuk7naxveak5yevqlnrowhgcnaxxauwc24zvhqd.onion
    2832021-07-07T09:20:57Z RATE LIMIT: received 1 addresses, tokens 37.094, since last addr message: 0.144418 addr/sec, peer q5csjdscadbsm27ceyuk7naxveak5yevqlnrowhgcnaxxauwc24zvhqd.onion
    2842021-07-07T09:20:59Z RATE LIMIT: received 9 addresses, tokens 15.781, since last addr message: 0.122241 addr/sec, peer kokkmpquqlkptu5hkmzqlttsmtwxicldr4so7wqsufk6bwf32nma.b32.i2p
    2852021-07-07T09:21:02Z RATE LIMIT: received 5 addresses, tokens 21.9935, since last addr message: 0.056050 addr/sec, peer 2a01:4f8:140:948b::2
    2862021-07-07T09:21:03Z RATE LIMIT: received 1 addresses, tokens 3.16555, since last addr message: 0.032774 addr/sec, peer bitcornrd36coazsbzsz4pdebyzvaplmsalq4kpoljmn6cg6x5zq.b32.i2p
    2872021-07-07T09:21:06Z RATE LIMIT: received 4 addresses, tokens 9.3157, since last addr message: 0.081489 addr/sec, peer 83.150.56.145
    2882021-07-07T09:21:09Z RATE LIMIT: received 3 addresses, tokens 11.7394, since last addr message: 0.060342 addr/sec, peer shh2ewyegnuwnmdse5kl5toybdvzkvk2yj4zcowz6iwhhh3ykdfa.b32.i2p
    2892021-07-07T09:21:26Z RATE LIMIT: received 1 addresses, tokens 19.3838, since last addr message: 0.041837 addr/sec, peer 2a01:4f8:140:948b::2
    2902021-07-07T09:21:27Z RATE LIMIT: received 3 addresses, tokens 10.5198, since last addr message: 0.168494 addr/sec, peer shh2ewyegnuwnmdse5kl5toybdvzkvk2yj4zcowz6iwhhh3ykdfa.b32.i2p
    2912021-07-07T09:21:29Z RATE LIMIT: received 1 addresses, tokens 7.67079, since last addr message: 0.042461 addr/sec, peer 83.150.56.145
    2922021-07-07T09:21:31Z RATE LIMIT: received 9 addresses, tokens 30.6118, since last addr message: 0.104065 addr/sec, peer 60.244.109.19
    2932021-07-07T09:21:33Z RATE LIMIT: received 1 addresses, tokens 8.1774, since last addr message: 0.152077 addr/sec, peer shh2ewyegnuwnmdse5kl5toybdvzkvk2yj4zcowz6iwhhh3ykdfa.b32.i2p
    2942021-07-07T09:21:39Z RATE LIMIT: received 4 addresses, tokens 39.7242, since last addr message: 0.038880 addr/sec, peer ppsmb5ln3rx6mfdzx2nwsleug5etsavbbzjkdealaybrh2jo2n6a.b32.i2p
    2952021-07-07T09:21:40Z RATE LIMIT: received 12 addresses, tokens 5.88517, since last addr message: 0.322613 addr/sec, peer bitcornrd36coazsbzsz4pdebyzvaplmsalq4kpoljmn6cg6x5zq.b32.i2p
    2962021-07-07T09:21:42Z RATE LIMIT: received 10 addresses, tokens 7.64514, since last addr message: 0.148427 addr/sec, peer 70.64.27.12
    2972021-07-07T09:21:43Z RATE LIMIT: received 3 addresses, tokens 20.0595, since last addr message: 0.179032 addr/sec, peer 2a01:4f8:140:948b::2
    2982021-07-07T09:21:44Z RATE LIMIT: received 7 addresses, tokens 11.2075, since last addr message: 0.158139 addr/sec, peer kokkmpquqlkptu5hkmzqlttsmtwxicldr4so7wqsufk6bwf32nma.b32.i2p
    2992021-07-07T09:21:48Z RATE LIMIT: received 5 addresses, tokens 22.7058, since last addr message: 0.077841 addr/sec, peer 99.108.237.173
    3002021-07-07T09:21:49Z RATE LIMIT: received 1 addresses, tokens 1.24254, since last addr message: 0.412299 addr/sec, peer i3hcdakiz2tyvggkwefvdjoi7444kgvd2mbdfizjvv43q7zukezq.b32.i2p
    3012021-07-07T09:21:49Z RATE LIMIT: received 1 addresses, tokens 4.78603, since last addr message: 0.172842 addr/sec, peer kokkmpquqlkptu5hkmzqlttsmtwxicldr4so7wqsufk6bwf32nma.b32.i2p
    3022021-07-07T09:21:55Z RATE LIMIT: received 6 addresses, tokens 41.8893, since last addr message: 0.103532 addr/sec, peer q5csjdscadbsm27ceyuk7naxveak5yevqlnrowhgcnaxxauwc24zvhqd.onion
    3032021-07-07T09:21:56Z RATE LIMIT: received 1 addresses, tokens 18.5135, since last addr message: 0.123799 addr/sec, peer 99.108.237.173
    3042021-07-07T09:21:58Z RATE LIMIT: received 10 addresses, tokens 48.1238, since last addr message: 0.086906 addr/sec, peer 35.197.140.219
    3052021-07-07T09:21:59Z RATE LIMIT: received 3 addresses, tokens 9.75226, since last addr message: 0.116511 addr/sec, peer shh2ewyegnuwnmdse5kl5toybdvzkvk2yj4zcowz6iwhhh3ykdfa.b32.i2p
    3062021-07-07T09:22:01Z RATE LIMIT: received 1 addresses, tokens 18.8451, since last addr message: 0.056002 addr/sec, peer 2a01:4f8:140:948b::2
    3072021-07-07T09:22:04Z RATE LIMIT: received 2 addresses, tokens 10.1175, since last addr message: 0.058026 addr/sec, peer 83.150.56.145
    3082021-07-07T09:22:13Z RATE LIMIT: received 17 addresses, tokens 13.6067, since last addr message: 0.180273 addr/sec, peer 168.119.79.89
    3092021-07-07T09:22:15Z RATE LIMIT: received 4 addresses, tokens 3.94619, since last addr message: 0.121173 addr/sec, peer 70.64.27.12
    3102021-07-07T09:22:17Z RATE LIMIT: received 2 addresses, tokens 19.6542, since last addr message: 0.093428 addr/sec, peer 99.108.237.173
    3112021-07-07T09:22:28Z RATE LIMIT: received 8 addresses, tokens 5.69023, since last addr message: 0.166491 addr/sec, peer bitcornrd36coazsbzsz4pdebyzvaplmsalq4kpoljmn6cg6x5zq.b32.i2p
    3122021-07-07T09:22:28Z RATE LIMIT: received 2 addresses, tokens 18.7796, since last addr message: 0.177723 addr/sec, peer 99.108.237.173
    3132021-07-07T09:22:30Z RATE LIMIT: received 5 addresses, tokens 40.8701, since last addr message: 0.097166 addr/sec, peer ppsmb5ln3rx6mfdzx2nwsleug5etsavbbzjkdealaybrh2jo2n6a.b32.i2p
    3142021-07-07T09:22:32Z RATE LIMIT: received 5 addresses, tokens 8.00999, since last addr message: 0.118372 addr/sec, peer kokkmpquqlkptu5hkmzqlttsmtwxicldr4so7wqsufk6bwf32nma.b32.i2p
    3152021-07-07T09:22:33Z RATE LIMIT: received 4 addresses, tokens 39.7383, since last addr message: 0.103922 addr/sec, peer q5csjdscadbsm27ceyuk7naxveak5yevqlnrowhgcnaxxauwc24zvhqd.onion
    3162021-07-07T09:22:38Z RATE LIMIT: received 3 addresses, tokens 21.595, since last addr message: 0.080003 addr/sec, peer 2a01:4f8:140:948b::2
    3172021-07-07T09:22:41Z RATE LIMIT: received 4 addresses, tokens 3.42258, since last addr message: 0.142050 addr/sec, peer 168.119.79.89
    3182021-07-07T09:22:41Z RATE LIMIT: received 6 addresses, tokens 11.7974, since last addr message: 0.163051 addr/sec, peer 83.150.56.145
    3192021-07-07T09:22:44Z RATE LIMIT: received 7 addresses, tokens 5.69418, since last addr message: 0.128402 addr/sec, peer i3hcdakiz2tyvggkwefvdjoi7444kgvd2mbdfizjvv43q7zukezq.b32.i2p
    3202021-07-07T09:22:49Z RATE LIMIT: received 3 addresses, tokens 2.77222, since last addr message: 0.144092 addr/sec, peer bitcornrd36coazsbzsz4pdebyzvaplmsalq4kpoljmn6cg6x5zq.b32.i2p
    3212021-07-07T09:22:50Z RATE LIMIT: received 2 addresses, tokens 1.28916, since last addr message: 0.336147 addr/sec, peer i3hcdakiz2tyvggkwefvdjoi7444kgvd2mbdfizjvv43q7zukezq.b32.i2p
    3222021-07-07T09:22:52Z RATE LIMIT: received 5 addresses, tokens 19.1385, since last addr message: 0.211963 addr/sec, peer 99.108.237.173
    3232021-07-07T09:22:53Z RATE LIMIT: received 1 addresses, tokens 4.04238, since last addr message: 0.032869 addr/sec, peer 3.236.255.16
    3242021-07-07T09:22:53Z RATE LIMIT: received 5 addresses, tokens 29.8344, since last addr message: 0.060808 addr/sec, peer 60.244.109.19
    3252021-07-07T09:22:55Z RATE LIMIT: received 1 addresses, tokens 14.3993, since last addr message: 0.383415 addr/sec, peer 99.108.237.173
    3262021-07-07T09:22:55Z RATE LIMIT: received 7 addresses, tokens 96.6163, since last addr message: 0.017953 addr/sec, peer 140.143.155.41
    3272021-07-07T09:22:56Z RATE LIMIT: received 1 addresses, tokens 38.4714, since last addr message: 0.038442 addr/sec, peer ppsmb5ln3rx6mfdzx2nwsleug5etsavbbzjkdealaybrh2jo2n6a.b32.i2p
    3282021-07-07T09:22:58Z RATE LIMIT: received 1 addresses, tokens 38.1765, since last addr message: 0.041014 addr/sec, peer q5csjdscadbsm27ceyuk7naxveak5yevqlnrowhgcnaxxauwc24zvhqd.onion
    3292021-07-07T09:23:10Z RATE LIMIT: received 2 addresses, tokens 26.4842, since last addr message: 0.121229 addr/sec, peer 60.244.109.19
    3302021-07-07T09:23:11Z RATE LIMIT: received 67 addresses, tokens 13.97, since last addr message: 0.928271 addr/sec, peer shh2ewyegnuwnmdse5kl5toybdvzkvk2yj4zcowz6iwhhh3ykdfa.b32.i2p
    3312021-07-07T09:23:26Z RATE LIMIT: received 8 addresses, tokens 91.8624, since last addr message: 0.027687 addr/sec, peer 94.237.44.67
    3322021-07-07T09:23:30Z RATE LIMIT: received 4 addresses, tokens 8.40881, since last addr message: 0.053601 addr/sec, peer 70.64.27.12
    3332021-07-07T09:24:14Z RATE LIMIT: received 11 addresses, tokens 8.88125, since last addr message: 0.245951 addr/sec, peer 70.64.27.12
    3342021-07-07T09:24:18Z RATE LIMIT: received 2 addresses, tokens 28.5825, since last addr message: 0.020025 addr/sec, peer 2a01:4f8:140:948b::2
    3352021-07-07T09:24:18Z RATE LIMIT: received 1 addresses, tokens 1.12454, since last addr message: 0.802931 addr/sec, peer 127.0.0.1
    3362021-07-07T09:24:31Z RATE LIMIT: received 2 addresses, tokens 14.9516, since last addr message: 0.016748 addr/sec, peer kokkmpquqlkptu5hkmzqlttsmtwxicldr4so7wqsufk6bwf32nma.b32.i2p
    3372021-07-07T09:24:31Z RATE LIMIT: received 4 addresses, tokens 32.6281, since last addr message: 0.049116 addr/sec, peer 60.244.109.19
    3382021-07-07T09:24:34Z RATE LIMIT: received 2 addresses, tokens 17.1213, since last addr message: 0.017662 addr/sec, peer 83.150.56.145
    3392021-07-07T09:24:49Z RATE LIMIT: received 4 addresses, tokens 10.795, since last addr message: 0.040712 addr/sec, peer shh2ewyegnuwnmdse5kl5toybdvzkvk2yj4zcowz6iwhhh3ykdfa.b32.i2p
    3402021-07-07T09:24:51Z RATE LIMIT: received 2 addresses, tokens 48.4897, since last addr message: 0.017679 addr/sec, peer q5csjdscadbsm27ceyuk7naxveak5yevqlnrowhgcnaxxauwc24zvhqd.onion
    3412021-07-07T09:24:54Z RATE LIMIT: received 1 addresses, tokens 55.7466, since last addr message: 0.005674 addr/sec, peer 35.197.140.219
    3422021-07-07T09:24:57Z RATE LIMIT: received 1 addresses, tokens 13.0575, since last addr message: 0.007832 addr/sec, peer i3hcdakiz2tyvggkwefvdjoi7444kgvd2mbdfizjvv43q7zukezq.b32.i2p
    3432021-07-07T09:25:03Z RATE LIMIT: received 2 addresses, tokens 50.1586, since last addr message: 0.015764 addr/sec, peer ppsmb5ln3rx6mfdzx2nwsleug5etsavbbzjkdealaybrh2jo2n6a.b32.i2p
    3442021-07-07T09:25:03Z RATE LIMIT: received 139 addresses, tokens 5.77002, since last addr message: 2.843251 addr/sec, peer 70.64.27.12
    3452021-07-07T09:25:05Z RATE LIMIT: received 2 addresses, tokens 14.8264, since last addr message: 0.013885 addr/sec, peer 168.119.79.89
    3462021-07-07T09:25:07Z RATE LIMIT: received 1 addresses, tokens 16.4715, since last addr message: 0.007447 addr/sec, peer 3.236.255.16
    3472021-07-07T09:25:12Z RATE LIMIT: received 1 addresses, tokens 15.0343, since last addr message: 0.007012 addr/sec, peer bitcornrd36coazsbzsz4pdebyzvaplmsalq4kpoljmn6cg6x5zq.b32.i2p
    3482021-07-07T09:25:24Z RATE LIMIT: received 2 addresses, tokens 14.7207, since last addr message: 0.105579 addr/sec, peer 168.119.79.89
    3492021-07-07T09:25:28Z RATE LIMIT: received 3 addresses, tokens 15.6521, since last addr message: 0.185433 addr/sec, peer bitcornrd36coazsbzsz4pdebyzvaplmsalq4kpoljmn6cg6x5zq.b32.i2p
    3502021-07-07T09:25:29Z RATE LIMIT: received 5 addresses, tokens 28.8106, since last addr message: 0.032444 addr/sec, peer 99.108.237.173
    3512021-07-07T09:25:32Z RATE LIMIT: received 7 addresses, tokens 89.8954, since last addr message: 0.007798 addr/sec, peer 188.166.69.73
    3522021-07-07T09:25:35Z RATE LIMIT: received 1 addresses, tokens 51.3696, since last addr message: 0.031143 addr/sec, peer ppsmb5ln3rx6mfdzx2nwsleug5etsavbbzjkdealaybrh2jo2n6a.b32.i2p
    3532021-07-07T09:25:39Z RATE LIMIT: received 1 addresses, tokens 21.6319, since last addr message: 0.015359 addr/sec, peer 83.150.56.145
    3542021-07-07T09:25:49Z RATE LIMIT: received 1 addresses, tokens 14.8163, since last addr message: 0.046206 addr/sec, peer bitcornrd36coazsbzsz4pdebyzvaplmsalq4kpoljmn6cg6x5zq.b32.i2p
    3552021-07-07T09:25:50Z RATE LIMIT: received 4 addresses, tokens 35.7147, since last addr message: 0.043801 addr/sec, peer 2a01:4f8:140:948b::2
    3562021-07-07T09:25:54Z RATE LIMIT: received 1 addresses, tokens 5.84196, since last addr message: 0.019716 addr/sec, peer 70.64.27.12
    3572021-07-07T09:25:56Z RATE LIMIT: received 2 addresses, tokens 15.9426, since last addr message: 0.062076 addr/sec, peer 168.119.79.89
    3582021-07-07T09:25:59Z RATE LIMIT: received 10 addresses, tokens 7.73151, since last addr message: 0.148555 addr/sec, peer 2a03:b0c0:2:d0::4bc:2001
    3592021-07-07T09:26:09Z RATE LIMIT: received 169 addresses, tokens 6.35832, since last addr message: 11.145061 addr/sec, peer 70.64.27.12
    3602021-07-07T09:26:27Z RATE LIMIT: received 2 addresses, tokens 13.0207, since last addr message: 0.015509 addr/sec, peer 127.0.0.1
    3612021-07-07T09:26:28Z RATE LIMIT: received 3 addresses, tokens 108.281, since last addr message: 0.002879 addr/sec, peer 88.99.167.186
    3622021-07-07T09:26:31Z RATE LIMIT: received 1 addresses, tokens 25.827, since last addr message: 0.019249 addr/sec, peer 83.150.56.145
    3632021-07-07T09:26:34Z RATE LIMIT: received 1 addresses, tokens 24.1384, since last addr message: 0.011538 addr/sec, peer 3.236.255.16
    3642021-07-07T09:26:37Z RATE LIMIT: received 4 addresses, tokens 41.2226, since last addr message: 0.031760 addr/sec, peer 60.244.109.19
    3652021-07-07T09:26:47Z RATE LIMIT: received 2 addresses, tokens 57.502, since last addr message: 0.028041 addr/sec, peer ppsmb5ln3rx6mfdzx2nwsleug5etsavbbzjkdealaybrh2jo2n6a.b32.i2p
    3662021-07-07T09:26:55Z RATE LIMIT: received 7 addresses, tokens 66.8491, since last addr message: 0.057839 addr/sec, peer 35.197.140.219
    3672021-07-07T09:27:00Z RATE LIMIT: received 2 addresses, tokens 27.7685, since last addr message: 0.067991 addr/sec, peer 83.150.56.145
    3682021-07-07T09:27:03Z RATE LIMIT: received 2 addresses, tokens 5.74193, since last addr message: 0.037150 addr/sec, peer 70.64.27.12
    3692021-07-07T09:27:05Z RATE LIMIT: received 4 addresses, tokens 33.3955, since last addr message: 0.041733 addr/sec, peer 99.108.237.173
    3702021-07-07T09:27:13Z RATE LIMIT: received 2 addresses, tokens 40.8211, since last addr message: 0.055579 addr/sec, peer 60.244.109.19
    3712021-07-07T09:27:15Z RATE LIMIT: received 1 addresses, tokens 15.81, since last addr message: 0.020880 addr/sec, peer 127.0.0.1
    3722021-07-07T09:27:22Z RATE LIMIT: received 1 addresses, tokens 31.1008, since last addr message: 0.058641 addr/sec, peer 99.108.237.173
    3732021-07-07T09:27:23Z RATE LIMIT: received 7 addresses, tokens 22.1772, since last addr message: 0.045507 addr/sec, peer shh2ewyegnuwnmdse5kl5toybdvzkvk2yj4zcowz6iwhhh3ykdfa.b32.i2p
    3742021-07-07T09:27:27Z RATE LIMIT: received 1 addresses, tokens 62.9918, since last addr message: 0.031820 addr/sec, peer 35.197.140.219
    3752021-07-07T09:27:30Z RATE LIMIT: received 4 addresses, tokens 30.8593, since last addr message: 0.022337 addr/sec, peer kokkmpquqlkptu5hkmzqlttsmtwxicldr4so7wqsufk6bwf32nma.b32.i2p
    3762021-07-07T09:27:33Z RATE LIMIT: received 1 addresses, tokens 6.79025, since last addr message: 0.032805 addr/sec, peer 70.64.27.12
    3772021-07-07T09:27:41Z RATE LIMIT: received 2 addresses, tokens 41.6232, since last addr message: 0.071376 addr/sec, peer 60.244.109.19
    3782021-07-07T09:27:42Z RATE LIMIT: received 3 addresses, tokens 17.0461, since last addr message: 0.160520 addr/sec, peer shh2ewyegnuwnmdse5kl5toybdvzkvk2yj4zcowz6iwhhh3ykdfa.b32.i2p
    3792021-07-07T09:27:46Z RATE LIMIT: received 8 addresses, tokens 24.9899, since last addr message: 0.072416 addr/sec, peer 168.119.79.89
    3802021-07-07T09:27:48Z RATE LIMIT: received 1 addresses, tokens 32.7755, since last addr message: 0.037387 addr/sec, peer 99.108.237.173
    3812021-07-07T09:27:51Z RATE LIMIT: received 7 addresses, tokens 30.8192, since last addr message: 0.138594 addr/sec, peer 83.150.56.145
    3822021-07-07T09:27:53Z RATE LIMIT: received 2 addresses, tokens 7.76158, since last addr message: 0.101455 addr/sec, peer 70.64.27.12
    3832021-07-07T09:27:54Z RATE LIMIT: received 10 addresses, tokens 29.7359, since last addr message: 0.056566 addr/sec, peer i3hcdakiz2tyvggkwefvdjoi7444kgvd2mbdfizjvv43q7zukezq.b32.i2p
    3842021-07-07T09:27:55Z RATE LIMIT: received 2 addresses, tokens 18.742, since last addr message: 0.050864 addr/sec, peer 127.0.0.1
    3852021-07-07T09:28:01Z RATE LIMIT: received 3 addresses, tokens 26.9711, since last addr message: 0.022805 addr/sec, peer bitcornrd36coazsbzsz4pdebyzvaplmsalq4kpoljmn6cg6x5zq.b32.i2p
    3862021-07-07T09:28:05Z RATE LIMIT: received 3 addresses, tokens 65.8521, since last addr message: 0.077714 addr/sec, peer 35.197.140.219
    3872021-07-07T09:28:13Z RATE LIMIT: received 10 addresses, tokens 112.573, since last addr message: 0.034830 addr/sec, peer 94.237.44.67
    3882021-07-07T09:28:14Z RATE LIMIT: received 1 addresses, tokens 63.6564, since last addr message: 0.124334 addr/sec, peer 35.197.140.219
    3892021-07-07T09:28:14Z RATE LIMIT: received 4 addresses, tokens 19.7099, since last addr message: 0.147059 addr/sec, peer 168.119.79.89
    3902021-07-07T09:28:20Z RATE LIMIT: received 5 addresses, tokens 67.3685, since last addr message: 0.023948 addr/sec, peer q5csjdscadbsm27ceyuk7naxveak5yevqlnrowhgcnaxxauwc24zvhqd.onion
    3912021-07-07T09:28:42Z RATE LIMIT: received 2 addresses, tokens 10.5981, since last addr message: 0.041352 addr/sec, peer 70.64.27.12
    3922021-07-07T09:28:43Z RATE LIMIT: received 2 addresses, tokens 37.2551, since last addr message: 0.036499 addr/sec, peer 99.108.237.173
    3932021-07-07T09:28:45Z RATE LIMIT: received 1 addresses, tokens 8.97894, since last addr message: 0.262600 addr/sec, peer 70.64.27.12
    3942021-07-07T09:28:46Z RATE LIMIT: received 2 addresses, tokens 21.842, since last addr message: 0.039216 addr/sec, peer 127.0.0.1
    3952021-07-07T09:28:46Z RATE LIMIT: received 5 addresses, tokens 34.4238, since last addr message: 0.066099 addr/sec, peer kokkmpquqlkptu5hkmzqlttsmtwxicldr4so7wqsufk6bwf32nma.b32.i2p
    3962021-07-07T09:28:47Z RATE LIMIT: received 2 addresses, tokens 20.0081, since last addr message: 1.203536 addr/sec, peer 127.0.0.1
    3972021-07-07T09:28:55Z RATE LIMIT: received 3 addresses, tokens 25.8147, since last addr message: 0.049352 addr/sec, peer i3hcdakiz2tyvggkwefvdjoi7444kgvd2mbdfizjvv43q7zukezq.b32.i2p
    3982021-07-07T09:28:55Z RATE LIMIT: received 5 addresses, tokens 30.2442, since last addr message: 0.077822 addr/sec, peer 83.150.56.145
    3992021-07-07T09:29:04Z RATE LIMIT: received 4 addresses, tokens 69.2401, since last addr message: 0.029116 addr/sec, peer ppsmb5ln3rx6mfdzx2nwsleug5etsavbbzjkdealaybrh2jo2n6a.b32.i2p
    4002021-07-07T09:29:04Z RATE LIMIT: received 1 addresses, tokens 19.7004, since last addr message: 0.059092 addr/sec, peer 127.0.0.1
    4012021-07-07T09:29:05Z RATE LIMIT: received 11 addresses, tokens 30.3621, since last addr message: 0.172116 addr/sec, peer bitcornrd36coazsbzsz4pdebyzvaplmsalq4kpoljmn6cg6x5zq.b32.i2p
    4022021-07-07T09:29:12Z RATE LIMIT: received 1 addresses, tokens 66.0485, since last addr message: 0.123702 addr/sec, peer ppsmb5ln3rx6mfdzx2nwsleug5etsavbbzjkdealaybrh2jo2n6a.b32.i2p
    4032021-07-07T09:29:12Z RATE LIMIT: received 1 addresses, tokens 38.1886, since last addr message: 0.034089 addr/sec, peer 99.108.237.173
    4042021-07-07T09:29:16Z RATE LIMIT: received 4 addresses, tokens 27.2911, since last addr message: 0.195411 addr/sec, peer 83.150.56.145
    4052021-07-07T09:29:16Z RATE LIMIT: received 10 addresses, tokens 127.77, since last addr message: 0.026210 addr/sec, peer 140.143.155.41
    4062021-07-07T09:29:17Z RATE LIMIT: received 15 addresses, tokens 52.4344, since last addr message: 0.072395 addr/sec, peer 2a01:4f8:140:948b::2
    4072021-07-07T09:29:22Z RATE LIMIT: received 3 addresses, tokens 49.6783, since last addr message: 0.029835 addr/sec, peer 60.244.109.19
    4082021-07-07T09:29:24Z RATE LIMIT: received 2 addresses, tokens 21.2732, since last addr message: 0.104653 addr/sec, peer bitcornrd36coazsbzsz4pdebyzvaplmsalq4kpoljmn6cg6x5zq.b32.i2p
    4092021-07-07T09:29:25Z RATE LIMIT: received 8 addresses, tokens 22.8582, since last addr message: 0.111915 addr/sec, peer 168.119.79.89
    4102021-07-07T09:29:30Z RATE LIMIT: received 7 addresses, tokens 33.8481, since last addr message: 0.158218 addr/sec, peer kokkmpquqlkptu5hkmzqlttsmtwxicldr4so7wqsufk6bwf32nma.b32.i2p
    4112021-07-07T09:29:31Z RATE LIMIT: received 11 addresses, tokens 24.9301, since last addr message: 0.101066 addr/sec, peer shh2ewyegnuwnmdse5kl5toybdvzkvk2yj4zcowz6iwhhh3ykdfa.b32.i2p
    4122021-07-07T09:29:36Z RATE LIMIT: received 4 addresses, tokens 39.5649, since last addr message: 0.168328 addr/sec, peer 99.108.237.173
    4132021-07-07T09:29:37Z RATE LIMIT: received 1 addresses, tokens 20.5993, since last addr message: 0.075412 addr/sec, peer bitcornrd36coazsbzsz4pdebyzvaplmsalq4kpoljmn6cg6x5zq.b32.i2p
    4142021-07-07T09:29:38Z RATE LIMIT: received 3 addresses, tokens 22.0442, since last addr message: 0.089719 addr/sec, peer 127.0.0.1
    4152021-07-07T09:29:38Z RATE LIMIT: received 4 addresses, tokens 71.0752, since last addr message: 0.047512 addr/sec, peer 35.197.140.219
    4162021-07-07T09:29:39Z RATE LIMIT: received 1 addresses, tokens 19.1469, since last addr message: 0.973562 addr/sec, peer 127.0.0.1
    4172021-07-07T09:29:45Z RATE LIMIT: received 10 addresses, tokens 27.8786, since last addr message: 0.197475 addr/sec, peer i3hcdakiz2tyvggkwefvdjoi7444kgvd2mbdfizjvv43q7zukezq.b32.i2p
    4182021-07-07T09:29:46Z RATE LIMIT: received 1 addresses, tokens 20.4307, since last addr message: 0.120277 addr/sec, peer bitcornrd36coazsbzsz4pdebyzvaplmsalq4kpoljmn6cg6x5zq.b32.i2p
    4192021-07-07T09:29:53Z RATE LIMIT: received 1 addresses, tokens 19.5322, since last addr message: 0.072186 addr/sec, peer 127.0.0.1
    4202021-07-07T09:30:00Z RATE LIMIT: received 2 addresses, tokens 18.3813, since last addr message: 0.056769 addr/sec, peer 168.119.79.89
    4212021-07-07T09:30:08Z RATE LIMIT: received 6 addresses, tokens 21.6649, since last addr message: 0.268554 addr/sec, peer bitcornrd36coazsbzsz4pdebyzvaplmsalq4kpoljmn6cg6x5zq.b32.i2p
    4222021-07-07T09:30:09Z RATE LIMIT: received 3 addresses, tokens 28.6407, since last addr message: 0.056079 addr/sec, peer 83.150.56.145
    4232021-07-07T09:30:14Z RATE LIMIT: received 7 addresses, tokens 31.2775, since last addr message: 0.158035 addr/sec, peer kokkmpquqlkptu5hkmzqlttsmtwxicldr4so7wqsufk6bwf32nma.b32.i2p
    4242021-07-07T09:30:15Z RATE LIMIT: received 4 addresses, tokens 20.8598, since last addr message: 0.134174 addr/sec, peer i3hcdakiz2tyvggkwefvdjoi7444kgvd2mbdfizjvv43q7zukezq.b32.i2p
    4252021-07-07T09:30:19Z RATE LIMIT: received 2 addresses, tokens 71.1889, since last addr message: 0.048618 addr/sec, peer 35.197.140.219
    4262021-07-07T09:30:22Z RATE LIMIT: received 14 addresses, tokens 17.6941, since last addr message: 0.144104 addr/sec, peer 70.64.27.12
    4272021-07-07T09:30:29Z RATE LIMIT: received 2 addresses, tokens 27.662, since last addr message: 0.098947 addr/sec, peer 83.150.56.145
    4282021-07-07T09:30:30Z RATE LIMIT: received 7 addresses, tokens 19.8997, since last addr message: 0.117261 addr/sec, peer shh2ewyegnuwnmdse5kl5toybdvzkvk2yj4zcowz6iwhhh3ykdfa.b32.i2p
    4292021-07-07T09:30:31Z RATE LIMIT: received 7 addresses, tokens 41.0844, since last addr message: 0.126824 addr/sec, peer 99.108.237.173
    4302021-07-07T09:30:39Z RATE LIMIT: received 6 addresses, tokens 73.6987, since last addr message: 0.069362 addr/sec, peer ppsmb5ln3rx6mfdzx2nwsleug5etsavbbzjkdealaybrh2jo2n6a.b32.i2p
    4312021-07-07T09:30:39Z RATE LIMIT: received 2 addresses, tokens 54.366, since last addr message: 0.026016 addr/sec, peer 60.244.109.19
    4322021-07-07T09:30:39Z RATE LIMIT: received 7 addresses, tokens 45.6739, since last addr message: 0.084957 addr/sec, peer 2a01:4f8:140:948b::2
    4332021-07-07T09:30:39Z RATE LIMIT: received 2 addresses, tokens 26.6596, since last addr message: 0.200475 addr/sec, peer 83.150.56.145
    4342021-07-07T09:30:41Z RATE LIMIT: received 4 addresses, tokens 23.331, since last addr message: 0.083353 addr/sec, peer 127.0.0.1
    4352021-07-07T09:30:48Z RATE LIMIT: received 3 addresses, tokens 21.1905, since last addr message: 0.062381 addr/sec, peer 168.119.79.89
    4362021-07-07T09:30:52Z RATE LIMIT: received 2 addresses, tokens 6.60666, since last addr message: 0.068669 addr/sec, peer 70.64.27.12
    4372021-07-07T09:30:53Z RATE LIMIT: received 1 addresses, tokens 26.0741, since last addr message: 0.070698 addr/sec, peer 83.150.56.145
    4382021-07-07T09:30:57Z RATE LIMIT: received 1 addresses, tokens 20.9865, since last addr message: 0.060407 addr/sec, peer 127.0.0.1
    4392021-07-07T09:30:57Z RATE LIMIT: received 2 addresses, tokens 19.064, since last addr message: 0.228958 addr/sec, peer 168.119.79.89
    4402021-07-07T09:31:03Z RATE LIMIT: received 2 addresses, tokens 73.5559, since last addr message: 0.045798 addr/sec, peer 35.197.140.219
    4412021-07-07T09:31:04Z RATE LIMIT: received 9 addresses, tokens 78.864, since last addr message: 0.054560 addr/sec, peer q5csjdscadbsm27ceyuk7naxveak5yevqlnrowhgcnaxxauwc24zvhqd.onion
    4422021-07-07T09:31:05Z RATE LIMIT: received 1 addresses, tokens 17.8422, since last addr message: 0.128491 addr/sec, peer 168.119.79.89
    4432021-07-07T09:31:08Z RATE LIMIT: received 2 addresses, tokens 16.6413, since last addr message: 0.053454 addr/sec, peer shh2ewyegnuwnmdse5kl5toybdvzkvk2yj4zcowz6iwhhh3ykdfa.b32.i2p
    4442021-07-07T09:31:08Z RATE LIMIT: received 1 addresses, tokens 41.573, since last addr message: 0.034493 addr/sec, peer 2a01:4f8:140:948b::2
    4452021-07-07T09:31:14Z RATE LIMIT: received 5 addresses, tokens 22.6933, since last addr message: 0.085712 addr/sec, peer i3hcdakiz2tyvggkwefvdjoi7444kgvd2mbdfizjvv43q7zukezq.b32.i2p
    4462021-07-07T09:31:18Z RATE LIMIT: received 11 addresses, tokens 22.6464, since last addr message: 0.157558 addr/sec, peer bitcornrd36coazsbzsz4pdebyzvaplmsalq4kpoljmn6cg6x5zq.b32.i2p
    4472021-07-07T09:31:18Z RATE LIMIT: received 1 addresses, tokens 71.2122, since last addr message: 0.074171 addr/sec, peer q5csjdscadbsm27ceyuk7naxveak5yevqlnrowhgcnaxxauwc24zvhqd.onion
    4482021-07-07T09:31:24Z RATE LIMIT: received 5 addresses, tokens 39.2992, since last addr message: 0.095880 addr/sec, peer 99.108.237.173
    4492021-07-07T09:31:25Z RATE LIMIT: received 81 addresses, tokens 28.2396, since last addr message: 2.558828 addr/sec, peer 83.150.56.145
    4502021-07-07T09:31:26Z RATE LIMIT: received 2 addresses, tokens 8.05444, since last addr message: 0.058008 addr/sec, peer 70.64.27.12
    4512021-07-07T09:31:27Z RATE LIMIT: received 2 addresses, tokens 22.9725, since last addr message: 0.066978 addr/sec, peer 127.0.0.1
    4522021-07-07T09:31:29Z RATE LIMIT: received 1 addresses, tokens 16.7921, since last addr message: 0.046493 addr/sec, peer shh2ewyegnuwnmdse5kl5toybdvzkvk2yj4zcowz6iwhhh3ykdfa.b32.i2p
    4532021-07-07T09:31:32Z RATE LIMIT: received 9 addresses, tokens 32.0212, since last addr message: 0.116223 addr/sec, peer kokkmpquqlkptu5hkmzqlttsmtwxicldr4so7wqsufk6bwf32nma.b32.i2p
    4542021-07-07T09:31:33Z RATE LIMIT: received 1 addresses, tokens 71.7163, since last addr message: 0.066484 addr/sec, peer q5csjdscadbsm27ceyuk7naxveak5yevqlnrowhgcnaxxauwc24zvhqd.onion
    4552021-07-07T09:31:33Z RATE LIMIT: received 3 addresses, tokens 73.1855, since last addr message: 0.054677 addr/sec, peer ppsmb5ln3rx6mfdzx2nwsleug5etsavbbzjkdealaybrh2jo2n6a.b32.i2p
    4562021-07-07T09:31:37Z RATE LIMIT: received 3 addresses, tokens 20.0313, since last addr message: 0.094072 addr/sec, peer 168.119.79.89
    4572021-07-07T09:31:43Z RATE LIMIT: received 1 addresses, tokens 36.1974, since last addr message: 0.052682 addr/sec, peer 99.108.237.173
    4582021-07-07T09:31:46Z RATE LIMIT: received 1 addresses, tokens 17.4726, since last addr message: 0.059506 addr/sec, peer shh2ewyegnuwnmdse5kl5toybdvzkvk2yj4zcowz6iwhhh3ykdfa.b32.i2p
    4592021-07-07T09:31:47Z RATE LIMIT: received 2 addresses, tokens 24.4996, since last addr message: 0.135285 addr/sec, peer kokkmpquqlkptu5hkmzqlttsmtwxicldr4so7wqsufk6bwf32nma.b32.i2p
    4602021-07-07T09:31:51Z RATE LIMIT: received 1 addresses, tokens 23.3658, since last addr message: 0.041785 addr/sec, peer 127.0.0.1
    4612021-07-07T09:31:51Z RATE LIMIT: received 1 addresses, tokens 44.8552, since last addr message: 0.023353 addr/sec, peer 2a01:4f8:140:948b::2
    4622021-07-07T09:31:53Z RATE LIMIT: received 4 addresses, tokens 8.78532, since last addr message: 0.146473 addr/sec, peer 70.64.27.12
    4632021-07-07T09:32:01Z RATE LIMIT: received 6 addresses, tokens 15.9341, since last addr message: 0.139936 addr/sec, peer bitcornrd36coazsbzsz4pdebyzvaplmsalq4kpoljmn6cg6x5zq.b32.i2p
    4642021-07-07T09:32:02Z RATE LIMIT: received 1 addresses, tokens 3.95673, since last addr message: 0.026902 addr/sec, peer 83.150.56.145
    4652021-07-07T09:32:15Z RATE LIMIT: received 2 addresses, tokens 74.9639, since last addr message: 0.047085 addr/sec, peer q5csjdscadbsm27ceyuk7naxveak5yevqlnrowhgcnaxxauwc24zvhqd.onion
    4662021-07-07T09:32:16Z RATE LIMIT: received 3 addresses, tokens 20.9848, since last addr message: 0.075882 addr/sec, peer 168.119.79.89
    4672021-07-07T09:32:17Z RATE LIMIT: received 1 addresses, tokens 74.5224, since last addr message: 0.023057 addr/sec, peer ppsmb5ln3rx6mfdzx2nwsleug5etsavbbzjkdealaybrh2jo2n6a.b32.i2p
    4682021-07-07T09:32:19Z RATE LIMIT: received 6 addresses, tokens 19.7569, since last addr message: 0.182688 addr/sec, peer shh2ewyegnuwnmdse5kl5toybdvzkvk2yj4zcowz6iwhhh3ykdfa.b32.i2p
    4692021-07-07T09:32:19Z RATE LIMIT: received 4 addresses, tokens 11.7915, since last addr message: 0.215358 addr/sec, peer bitcornrd36coazsbzsz4pdebyzvaplmsalq4kpoljmn6cg6x5zq.b32.i2p
    4702021-07-07T09:32:21Z RATE LIMIT: received 1 addresses, tokens 4.87072, since last addr message: 0.052247 addr/sec, peer 83.150.56.145
    4712021-07-07T09:32:26Z RATE LIMIT: received 1 addresses, tokens 74.4344, since last addr message: 0.109659 addr/sec, peer ppsmb5ln3rx6mfdzx2nwsleug5etsavbbzjkdealaybrh2jo2n6a.b32.i2p
    4722021-07-07T09:32:30Z RATE LIMIT: received 6 addresses, tokens 80.3127, since last addr message: 0.068518 addr/sec, peer 35.197.140.219
    4732021-07-07T09:32:35Z RATE LIMIT: received 6 addresses, tokens 25.8138, since last addr message: 0.073887 addr/sec, peer i3hcdakiz2tyvggkwefvdjoi7444kgvd2mbdfizjvv43q7zukezq.b32.i2p
    4742021-07-07T09:32:35Z RATE LIMIT: received 4 addresses, tokens 19.8732, since last addr message: 0.211816 addr/sec, peer 168.119.79.89
    4752021-07-07T09:32:37Z RATE LIMIT: received 5 addresses, tokens 9.1063, since last addr message: 0.115714 addr/sec, peer 70.64.27.12
    4762021-07-07T09:32:39Z RATE LIMIT: received 1 addresses, tokens 16.267, since last addr message: 0.253979 addr/sec, peer 168.119.79.89
    4772021-07-07T09:32:41Z RATE LIMIT: received 3 addresses, tokens 48.8933, since last addr message: 0.059546 addr/sec, peer 2a01:4f8:140:948b::2
    4782021-07-07T09:32:42Z RATE LIMIT: received 1 addresses, tokens 75.0179, since last addr message: 0.063151 addr/sec, peer ppsmb5ln3rx6mfdzx2nwsleug5etsavbbzjkdealaybrh2jo2n6a.b32.i2p
    4792021-07-07T09:32:46Z RATE LIMIT: received 1 addresses, tokens 46.3505, since last addr message: 0.218705 addr/sec, peer 2a01:4f8:140:948b::2
    4802021-07-07T09:32:49Z RATE LIMIT: received 5 addresses, tokens 28.7318, since last addr message: 0.080228 addr/sec, peer kokkmpquqlkptu5hkmzqlttsmtwxicldr4so7wqsufk6bwf32nma.b32.i2p
    4812021-07-07T09:32:49Z RATE LIMIT: received 1 addresses, tokens 74.7787, since last addr message: 0.131431 addr/sec, peer ppsmb5ln3rx6mfdzx2nwsleug5etsavbbzjkdealaybrh2jo2n6a.b32.i2p
    4822021-07-07T09:32:49Z RATE LIMIT: received 3 addresses, tokens 6.67285, since last addr message: 0.107062 addr/sec, peer 83.150.56.145
    4832021-07-07T09:32:54Z RATE LIMIT: received 7 addresses, tokens 42.3425, since last addr message: 0.097968 addr/sec, peer 99.108.237.173
    4842021-07-07T09:32:58Z RATE LIMIT: received 1 addresses, tokens 17.1481, since last addr message: 0.053158 addr/sec, peer 168.119.79.89
    4852021-07-07T09:32:59Z RATE LIMIT: received 8 addresses, tokens 29.1874, since last addr message: 0.117275 addr/sec, peer 127.0.0.1
    4862021-07-07T09:32:59Z RATE LIMIT: received 3 addresses, tokens 46.6947, since last addr message: 0.223185 addr/sec, peer 2a01:4f8:140:948b::2
    4872021-07-07T09:33:02Z RATE LIMIT: received 9 addresses, tokens 131.469, since last addr message: 0.031146 addr/sec, peer 94.237.44.67
    4882021-07-07T09:33:06Z RATE LIMIT: received 2 addresses, tokens 5.28086, since last addr message: 0.124377 addr/sec, peer 83.150.56.145
    4892021-07-07T09:33:09Z RATE LIMIT: received 6 addresses, tokens 18.7308, since last addr message: 0.120630 addr/sec, peer shh2ewyegnuwnmdse5kl5toybdvzkvk2yj4zcowz6iwhhh3ykdfa.b32.i2p
    4902021-07-07T09:33:21Z RATE LIMIT: received 1 addresses, tokens 13.9776, since last addr message: 0.080209 addr/sec, peer shh2ewyegnuwnmdse5kl5toybdvzkvk2yj4zcowz6iwhhh3ykdfa.b32.i2p
    4912021-07-07T09:33:22Z RATE LIMIT: received 1 addresses, tokens 27.023, since last addr message: 0.030384 addr/sec, peer kokkmpquqlkptu5hkmzqlttsmtwxicldr4so7wqsufk6bwf32nma.b32.i2p
    4922021-07-07T09:33:23Z RATE LIMIT: received 9 addresses, tokens 14.1404, since last addr message: 0.141758 addr/sec, peer bitcornrd36coazsbzsz4pdebyzvaplmsalq4kpoljmn6cg6x5zq.b32.i2p
    4932021-07-07T09:33:28Z RATE LIMIT: received 2 addresses, tokens 77.599, since last addr message: 0.052352 addr/sec, peer ppsmb5ln3rx6mfdzx2nwsleug5etsavbbzjkdealaybrh2jo2n6a.b32.i2p
    4942021-07-07T09:33:28Z RATE LIMIT: received 5 addresses, tokens 19.1636, since last addr message: 0.165813 addr/sec, peer 168.119.79.89
    4952021-07-07T09:33:29Z RATE LIMIT: received 1 addresses, tokens 13.7815, since last addr message: 0.124381 addr/sec, peer shh2ewyegnuwnmdse5kl5toybdvzkvk2yj4zcowz6iwhhh3ykdfa.b32.i2p
    4962021-07-07T09:33:34Z RATE LIMIT: received 3 addresses, tokens 47.1297, since last addr message: 0.087336 addr/sec, peer 2a01:4f8:140:948b::2
    4972021-07-07T09:33:35Z RATE LIMIT: received 2 addresses, tokens 6.34495, since last addr message: 0.166030 addr/sec, peer bitcornrd36coazsbzsz4pdebyzvaplmsalq4kpoljmn6cg6x5zq.b32.i2p
    4982021-07-07T09:33:39Z RATE LIMIT: received 8 addresses, tokens 10.347, since last addr message: 0.128192 addr/sec, peer 70.64.27.12
    4992021-07-07T09:33:39Z RATE LIMIT: received 5 addresses, tokens 81.3454, since last addr message: 0.059655 addr/sec, peer q5csjdscadbsm27ceyuk7naxveak5yevqlnrowhgcnaxxauwc24zvhqd.onion
    5002021-07-07T09:33:47Z RATE LIMIT: received 4 addresses, tokens 7.41258, since last addr message: 0.096812 addr/sec, peer 83.150.56.145
    5012021-07-07T09:33:47Z RATE LIMIT: received 4 addresses, tokens 40.6426, since last addr message: 0.075471 addr/sec, peer 99.108.237.173
    5022021-07-07T09:33:52Z RATE LIMIT: received 7 addresses, tokens 82.4911, since last addr message: 0.085591 addr/sec, peer 35.197.140.219
    5032021-07-07T09:33:58Z RATE LIMIT: received 2 addresses, tokens 67.6079, since last addr message: 0.004497 addr/sec, peer 3.236.255.16
    5042021-07-07T09:34:02Z RATE LIMIT: received 4 addresses, tokens 28.542, since last addr message: 0.045828 addr/sec, peer i3hcdakiz2tyvggkwefvdjoi7444kgvd2mbdfizjvv43q7zukezq.b32.i2p
    5052021-07-07T09:34:03Z RATE LIMIT: received 1 addresses, tokens 47.0135, since last addr message: 0.034677 addr/sec, peer 2a01:4f8:140:948b::2
    5062021-07-07T09:34:05Z RATE LIMIT: received 5 addresses, tokens 79.2993, since last addr message: 0.135124 addr/sec, peer ppsmb5ln3rx6mfdzx2nwsleug5etsavbbzjkdealaybrh2jo2n6a.b32.i2p
    5072021-07-07T09:34:07Z RATE LIMIT: received 2 addresses, tokens 79.1146, since last addr message: 0.072224 addr/sec, peer q5csjdscadbsm27ceyuk7naxveak5yevqlnrowhgcnaxxauwc24zvhqd.onion
    5082021-07-07T09:34:08Z RATE LIMIT: received 4 addresses, tokens 30.6025, since last addr message: 0.087346 addr/sec, peer kokkmpquqlkptu5hkmzqlttsmtwxicldr4so7wqsufk6bwf32nma.b32.i2p
    5092021-07-07T09:34:08Z RATE LIMIT: received 1 addresses, tokens 38.7138, since last addr message: 0.048280 addr/sec, peer 99.108.237.173
    5102021-07-07T09:34:08Z RATE LIMIT: received 8 addresses, tokens 18.1791, since last addr message: 0.199228 addr/sec, peer 168.119.79.89
    5112021-07-07T09:34:14Z RATE LIMIT: received 2 addresses, tokens 8.26433, since last addr message: 0.051028 addr/sec, peer bitcornrd36coazsbzsz4pdebyzvaplmsalq4kpoljmn6cg6x5zq.b32.i2p
    5122021-07-07T09:34:16Z RATE LIMIT: received 2 addresses, tokens 78.0296, since last addr message: 0.218570 addr/sec, peer q5csjdscadbsm27ceyuk7naxveak5yevqlnrowhgcnaxxauwc24zvhqd.onion
    5132021-07-07T09:34:21Z RATE LIMIT: received 7 addresses, tokens 17.9077, since last addr message: 0.136554 addr/sec, peer shh2ewyegnuwnmdse5kl5toybdvzkvk2yj4zcowz6iwhhh3ykdfa.b32.i2p
    5142021-07-07T09:34:24Z RATE LIMIT: received 1 addresses, tokens 76.829, since last addr message: 0.125097 addr/sec, peer q5csjdscadbsm27ceyuk7naxveak5yevqlnrowhgcnaxxauwc24zvhqd.onion
    5152021-07-07T09:34:31Z RATE LIMIT: received 1 addresses, tokens 28.9857, since last addr message: 0.041960 addr/sec, peer kokkmpquqlkptu5hkmzqlttsmtwxicldr4so7wqsufk6bwf32nma.b32.i2p
    5162021-07-07T09:34:35Z RATE LIMIT: received 5 addresses, tokens 8.21945, since last addr message: 0.104018 addr/sec, peer 83.150.56.145
    5172021-07-07T09:34:35Z RATE LIMIT: received 3 addresses, tokens 49.2939, since last addr message: 0.091453 addr/sec, peer 2a01:4f8:140:948b::2
    5182021-07-07T09:34:43Z RATE LIMIT: received 1 addresses, tokens 1.01468, since last addr message: 6.813521 addr/sec, peer 46.101.235.143
    5192021-07-07T09:34:44Z RATE LIMIT: received 2 addresses, tokens 28.6852, since last addr message: 0.048273 addr/sec, peer i3hcdakiz2tyvggkwefvdjoi7444kgvd2mbdfizjvv43q7zukezq.b32.i2p
    5202021-07-07T09:34:44Z RATE LIMIT: received 1 addresses, tokens 70.154, since last addr message: 0.021997 addr/sec, peer 3.236.255.16
    5212021-07-07T09:34:45Z RATE LIMIT: received 11 addresses, tokens 76.9947, since last addr message: 0.044663 addr/sec, peer 60.244.109.19
    5222021-07-07T09:34:45Z RATE LIMIT: received 2 addresses, tokens 78.3444, since last addr message: 0.049443 addr/sec, peer ppsmb5ln3rx6mfdzx2nwsleug5etsavbbzjkdealaybrh2jo2n6a.b32.i2p
    5232021-07-07T09:34:45Z RATE LIMIT: received 3 addresses, tokens 9.41524, since last addr message: 0.095211 addr/sec, peer bitcornrd36coazsbzsz4pdebyzvaplmsalq4kpoljmn6cg6x5zq.b32.i2p
    5242021-07-07T09:34:47Z RATE LIMIT: received 3 addresses, tokens 13.5318, since last addr message: 0.114324 addr/sec, peer shh2ewyegnuwnmdse5kl5toybdvzkvk2yj4zcowz6iwhhh3ykdfa.b32.i2p
    5252021-07-07T09:34:47Z RATE LIMIT: received 166 addresses, tokens 9.13735, since last addr message: 2.444632 addr/sec, peer 70.64.27.12
    5262021-07-07T09:34:48Z RATE LIMIT: received 4 addresses, tokens 78.2268, since last addr message: 0.166820 addr/sec, peer q5csjdscadbsm27ceyuk7naxveak5yevqlnrowhgcnaxxauwc24zvhqd.onion
    5272021-07-07T09:34:48Z RATE LIMIT: received 15 addresses, tokens 32.1046, since last addr message: 0.137398 addr/sec, peer 127.0.0.1
    5282021-07-07T09:34:55Z RATE LIMIT: received 4 addresses, tokens 48.2641, since last addr message: 0.203019 addr/sec, peer 2a01:4f8:140:948b::2
    5292021-07-07T09:34:55Z RATE LIMIT: received 5 addresses, tokens 81.8274, since last addr message: 0.078910 addr/sec, peer 35.197.140.219
    5302021-07-07T09:35:01Z RATE LIMIT: received 8 addresses, tokens 152.246, since last addr message: 0.023204 addr/sec, peer 140.143.155.41
    5312021-07-07T09:35:01Z RATE LIMIT: received 1 addresses, tokens 7.99851, since last addr message: 0.063160 addr/sec, peer bitcornrd36coazsbzsz4pdebyzvaplmsalq4kpoljmn6cg6x5zq.b32.i2p
    5322021-07-07T09:35:08Z RATE LIMIT: received 1 addresses, tokens 31.6315, since last addr message: 0.027429 addr/sec, peer kokkmpquqlkptu5hkmzqlttsmtwxicldr4so7wqsufk6bwf32nma.b32.i2p
    5332021-07-07T09:35:10Z RATE LIMIT: received 1 addresses, tokens 78.2754, since last addr message: 0.069060 addr/sec, peer 35.197.140.219
    5342021-07-07T09:35:11Z RATE LIMIT: received 6 addresses, tokens 16.4986, since last addr message: 0.094944 addr/sec, peer 168.119.79.89
    5352021-07-07T09:35:13Z RATE LIMIT: received 12 addresses, tokens 7.06091, since last addr message: 0.312381 addr/sec, peer 83.150.56.145
    5362021-07-07T09:35:15Z RATE LIMIT: received 3 addresses, tokens 79.3107, since last addr message: 0.101138 addr/sec, peer ppsmb5ln3rx6mfdzx2nwsleug5etsavbbzjkdealaybrh2jo2n6a.b32.i2p
    5372021-07-07T09:35:17Z RATE LIMIT: received 2 addresses, tokens 30.0216, since last addr message: 0.059944 addr/sec, peer i3hcdakiz2tyvggkwefvdjoi7444kgvd2mbdfizjvv43q7zukezq.b32.i2p
    5382021-07-07T09:35:21Z RATE LIMIT: received 2 addresses, tokens 78.421, since last addr message: 0.174589 addr/sec, peer 35.197.140.219
    5392021-07-07T09:35:21Z RATE LIMIT: received 4 addresses, tokens 45.0891, since last addr message: 0.054235 addr/sec, peer 99.108.237.173
    5402021-07-07T09:35:22Z RATE LIMIT: received 5 addresses, tokens 3.66563, since last addr message: 0.141712 addr/sec, peer 70.64.27.12
    5412021-07-07T09:35:23Z RATE LIMIT: received 1 addresses, tokens 41.2917, since last addr message: 0.493515 addr/sec, peer 99.108.237.173
    5422021-07-07T09:35:25Z RATE LIMIT: received 1 addresses, tokens 47.2442, since last addr message: 0.033557 addr/sec, peer 2a01:4f8:140:948b::2
    5432021-07-07T09:35:25Z RATE LIMIT: received 29 addresses, tokens 1.24595, since last addr message: 2.447167 addr/sec, peer 83.150.56.145
    5442021-07-07T09:35:27Z RATE LIMIT: received 2 addresses, tokens 12.0333, since last addr message: 0.130321 addr/sec, peer 168.119.79.89
    5452021-07-07T09:35:30Z RATE LIMIT: received 2 addresses, tokens 0.738324, since last addr message: 0.406198 addr/sec, peer 83.150.56.145
    5462021-07-07T09:35:30Z RATE LIMIT: received 2 addresses, tokens 77.8555, since last addr message: 0.129461 addr/sec, peer ppsmb5ln3rx6mfdzx2nwsleug5etsavbbzjkdealaybrh2jo2n6a.b32.i2p
    5472021-07-07T09:35:31Z RATE LIMIT: received 2 addresses, tokens 9.93625, since last addr message: 0.068080 addr/sec, peer bitcornrd36coazsbzsz4pdebyzvaplmsalq4kpoljmn6cg6x5zq.b32.i2p
    5482021-07-07T09:35:31Z RATE LIMIT: received 2 addresses, tokens 77.3954, since last addr message: 0.205255 addr/sec, peer 35.197.140.219
    5492021-07-07T09:35:34Z RATE LIMIT: received 1 addresses, tokens 70.9405, since last addr message: 0.020219 addr/sec, peer 60.244.109.19
    5502021-07-07T09:35:36Z RATE LIMIT: received 4 addresses, tokens 21.8702, since last addr message: 0.083934 addr/sec, peer 127.0.0.1
    5512021-07-07T09:35:42Z RATE LIMIT: received 3 addresses, tokens 30.521, since last addr message: 0.120032 addr/sec, peer i3hcdakiz2tyvggkwefvdjoi7444kgvd2mbdfizjvv43q7zukezq.b32.i2p
    5522021-07-07T09:35:46Z RATE LIMIT: received 3 addresses, tokens 48.3494, since last addr message: 0.142499 addr/sec, peer 2a01:4f8:140:948b::2
    5532021-07-07T09:35:50Z RATE LIMIT: received 4 addresses, tokens 80.4118, since last addr message: 0.064672 addr/sec, peer q5csjdscadbsm27ceyuk7naxveak5yevqlnrowhgcnaxxauwc24zvhqd.onion
    5542021-07-07T09:35:55Z RATE LIMIT: received 2 addresses, tokens 28.7855, since last addr message: 0.158164 addr/sec, peer i3hcdakiz2tyvggkwefvdjoi7444kgvd2mbdfizjvv43q7zukezq.b32.i2p
    5552021-07-07T09:35:56Z RATE LIMIT: received 1 addresses, tokens 72.1071, since last addr message: 0.046156 addr/sec, peer 60.244.109.19
    5562021-07-07T09:35:57Z RATE LIMIT: received 6 addresses, tokens 13.0157, since last addr message: 0.201181 addr/sec, peer 168.119.79.89
    5572021-07-07T09:36:01Z RATE LIMIT: received 2 addresses, tokens 77.4711, since last addr message: 0.188820 addr/sec, peer q5csjdscadbsm27ceyuk7naxveak5yevqlnrowhgcnaxxauwc24zvhqd.onion
    5582021-07-07T09:36:08Z RATE LIMIT: received 3 addresses, tokens 4.49408, since last addr message: 0.079877 addr/sec, peer 83.150.56.145
    5592021-07-07T09:36:11Z RATE LIMIT: received 4 addresses, tokens 5.58052, since last addr message: 0.081385 addr/sec, peer 70.64.27.12
    5602021-07-07T09:36:14Z RATE LIMIT: received 6 addresses, tokens 12.2396, since last addr message: 0.139425 addr/sec, peer bitcornrd36coazsbzsz4pdebyzvaplmsalq4kpoljmn6cg6x5zq.b32.i2p
    5612021-07-07T09:36:18Z RATE LIMIT: received 1 addresses, tokens 78.5741, since last addr message: 0.010616 addr/sec, peer 3.236.255.16
    5622021-07-07T09:36:19Z RATE LIMIT: received 3 addresses, tokens 48.6127, since last addr message: 0.091933 addr/sec, peer 2a01:4f8:140:948b::2
    5632021-07-07T09:36:21Z RATE LIMIT: received 1 addresses, tokens 9.46512, since last addr message: 0.040826 addr/sec, peer 168.119.79.89
    5642021-07-07T09:36:23Z RATE LIMIT: received 9 addresses, tokens 20.1561, since last addr message: 0.093514 addr/sec, peer shh2ewyegnuwnmdse5kl5toybdvzkvk2yj4zcowz6iwhhh3ykdfa.b32.i2p
    5652021-07-07T09:36:28Z RATE LIMIT: received 2 addresses, tokens 81.6888, since last addr message: 0.034286 addr/sec, peer ppsmb5ln3rx6mfdzx2nwsleug5etsavbbzjkdealaybrh2jo2n6a.b32.i2p
    5662021-07-07T09:36:30Z RATE LIMIT: received 2 addresses, tokens 9.3169, since last addr message: 0.234801 addr/sec, peer 168.119.79.89
    5672021-07-07T09:36:32Z RATE LIMIT: received 1 addresses, tokens 74.6905, since last addr message: 0.027906 addr/sec, peer 60.244.109.19
    5682021-07-07T09:36:34Z RATE LIMIT: received 2 addresses, tokens 47.1096, since last addr message: 0.133611 addr/sec, peer 2a01:4f8:140:948b::2
    5692021-07-07T09:36:36Z RATE LIMIT: received 5 addresses, tokens 47.5107, since last addr message: 0.069262 addr/sec, peer 99.108.237.173
    5702021-07-07T09:36:48Z RATE LIMIT: received 5 addresses, tokens 9.69295, since last addr message: 0.144789 addr/sec, peer bitcornrd36coazsbzsz4pdebyzvaplmsalq4kpoljmn6cg6x5zq.b32.i2p
    5712021-07-07T09:36:49Z RATE LIMIT: received 1 addresses, tokens 32.2199, since last addr message: 0.018401 addr/sec, peer i3hcdakiz2tyvggkwefvdjoi7444kgvd2mbdfizjvv43q7zukezq.b32.i2p
    5722021-07-07T09:36:55Z RATE LIMIT: received 1 addresses, tokens 5.36315, since last addr message: 0.149209 addr/sec, peer bitcornrd36coazsbzsz4pdebyzvaplmsalq4kpoljmn6cg6x5zq.b32.i2p
    5732021-07-07T09:36:55Z RATE LIMIT: received 2 addresses, tokens 25.8086, since last addr message: 0.025194 addr/sec, peer 127.0.0.1
    5742021-07-07T09:36:56Z RATE LIMIT: received 1 addresses, tokens 31.9382, since last addr message: 0.139211 addr/sec, peer i3hcdakiz2tyvggkwefvdjoi7444kgvd2mbdfizjvv43q7zukezq.b32.i2p
    5752021-07-07T09:36:59Z RATE LIMIT: received 1 addresses, tokens 81.6314, since last addr message: 0.024647 addr/sec, peer 3.236.255.16
    5762021-07-07T09:37:03Z RATE LIMIT: received 6 addresses, tokens 81.7179, since last addr message: 0.096048 addr/sec, peer q5csjdscadbsm27ceyuk7naxveak5yevqlnrowhgcnaxxauwc24zvhqd.onion
    5772021-07-07T09:37:21Z RATE LIMIT: received 20 addresses, tokens 8.7848, since last addr message: 0.274321 addr/sec, peer 83.150.56.145
    5782021-07-07T09:37:22Z RATE LIMIT: received 9 addresses, tokens 47.1074, since last addr message: 0.195796 addr/sec, peer 99.108.237.173
    5792021-07-07T09:37:24Z RATE LIMIT: received 45 addresses, tokens 1.10409, since last addr message: 14.093766 addr/sec, peer 83.150.56.145
    5802021-07-07T09:37:30Z RATE LIMIT: received 3 addresses, tokens 27.231, since last addr message: 0.087656 addr/sec, peer 127.0.0.1
    5812021-07-07T09:37:32Z RATE LIMIT: received 147 addresses, tokens 18.0625, since last addr message: 2.128447 addr/sec, peer shh2ewyegnuwnmdse5kl5toybdvzkvk2yj4zcowz6iwhhh3ykdfa.b32.i2p
    5822021-07-07T09:37:40Z RATE LIMIT: received 12 addresses, tokens 88.2762, since last addr message: 0.093162 addr/sec, peer 35.197.140.219
    5832021-07-07T09:37:46Z RATE LIMIT: received 3 addresses, tokens 9.43458, since last addr message: 0.059155 addr/sec, peer bitcornrd36coazsbzsz4pdebyzvaplmsalq4kpoljmn6cg6x5zq.b32.i2p
    5842021-07-07T09:37:49Z RATE LIMIT: received 1 addresses, tokens 40.8886, since last addr message: 0.035954 addr/sec, peer 99.108.237.173
    5852021-07-07T09:38:04Z RATE LIMIT: received 18 addresses, tokens 48.2704, since last addr message: 0.102047 addr/sec, peer kokkmpquqlkptu5hkmzqlttsmtwxicldr4so7wqsufk6bwf32nma.b32.i2p
    5862021-07-07T09:38:06Z RATE LIMIT: received 9 addresses, tokens 8.19879, since last addr message: 0.125021 addr/sec, peer 94.237.44.67
    5872021-07-07T09:38:11Z RATE LIMIT: received 101 addresses, tokens 89.9936, since last addr message: 0.980125 addr/sec, peer ppsmb5ln3rx6mfdzx2nwsleug5etsavbbzjkdealaybrh2jo2n6a.b32.i2p
    5882021-07-07T09:38:12Z RATE LIMIT: received 9 addresses, tokens 83.6881, since last addr message: 0.090022 addr/sec, peer 60.244.109.19
    5892021-07-07T09:38:14Z RATE LIMIT: received 2 addresses, tokens 5.11676, since last addr message: 0.039899 addr/sec, peer 83.150.56.145
    5902021-07-07T09:38:18Z RATE LIMIT: received 5 addresses, tokens 9.68561, since last addr message: 0.153798 addr/sec, peer bitcornrd36coazsbzsz4pdebyzvaplmsalq4kpoljmn6cg6x5zq.b32.i2p
    5912021-07-07T09:38:29Z RATE LIMIT: received 5 addresses, tokens 84.271, since last addr message: 0.058458 addr/sec, peer q5csjdscadbsm27ceyuk7naxveak5yevqlnrowhgcnaxxauwc24zvhqd.onion
    5922021-07-07T09:38:29Z RATE LIMIT: received 1 addresses, tokens 89.6849, since last addr message: 0.011045 addr/sec, peer 3.236.255.16
    5932021-07-07T09:38:30Z RATE LIMIT: received 8 addresses, tokens 19.3853, since last addr message: 0.066289 addr/sec, peer 168.119.79.89
    5942021-07-07T09:38:31Z RATE LIMIT: received 3 addresses, tokens 32.9822, since last addr message: 0.110629 addr/sec, peer kokkmpquqlkptu5hkmzqlttsmtwxicldr4so7wqsufk6bwf32nma.b32.i2p
    5952021-07-07T09:38:36Z RATE LIMIT: received 1 addresses, tokens 6.5182, since last addr message: 0.054568 addr/sec, peer bitcornrd36coazsbzsz4pdebyzvaplmsalq4kpoljmn6cg6x5zq.b32.i2p
    5962021-07-07T09:38:38Z RATE LIMIT: received 1 addresses, tokens 5.67741, since last addr message: 0.628110 addr/sec, peer bitcornrd36coazsbzsz4pdebyzvaplmsalq4kpoljmn6cg6x5zq.b32.i2p
    5972021-07-07T09:38:40Z RATE LIMIT: received 1 addresses, tokens 77.554, since last addr message: 0.034893 addr/sec, peer 60.244.109.19
    5982021-07-07T09:38:43Z RATE LIMIT: received 1 addresses, tokens 90.0297, since last addr message: 0.074362 addr/sec, peer 3.236.255.16
    5992021-07-07T09:38:43Z RATE LIMIT: received 3 addresses, tokens 82.6335, since last addr message: 0.047190 addr/sec, peer 35.197.140.219
    6002021-07-07T09:38:53Z RATE LIMIT: received 1 addresses, tokens 7.00546, since last addr message: 0.025716 addr/sec, peer 83.150.56.145
    6012021-07-07T09:38:58Z RATE LIMIT: received 70 addresses, tokens 8.67673, since last addr message: 0.812611 addr/sec, peer shh2ewyegnuwnmdse5kl5toybdvzkvk2yj4zcowz6iwhhh3ykdfa.b32.i2p
    6022021-07-07T09:39:01Z RATE LIMIT: received 8 addresses, tokens 43.4237, since last addr message: 0.064074 addr/sec, peer i3hcdakiz2tyvggkwefvdjoi7444kgvd2mbdfizjvv43q7zukezq.b32.i2p
    6032021-07-07T09:39:03Z RATE LIMIT: received 2 addresses, tokens 6.1267, since last addr message: 0.038963 addr/sec, peer ppsmb5ln3rx6mfdzx2nwsleug5etsavbbzjkdealaybrh2jo2n6a.b32.i2p
    6042021-07-07T09:39:05Z RATE LIMIT: received 7 addresses, tokens 82.8845, since last addr message: 0.193719 addr/sec, peer q5csjdscadbsm27ceyuk7naxveak5yevqlnrowhgcnaxxauwc24zvhqd.onion
    6052021-07-07T09:39:06Z RATE LIMIT: received 1 addresses, tokens 7.3268, since last addr message: 0.075680 addr/sec, peer 83.150.56.145
    6062021-07-07T09:39:09Z RATE LIMIT: received 2 addresses, tokens 82.1869, since last addr message: 0.078329 addr/sec, peer 35.197.140.219
    6072021-07-07T09:39:10Z RATE LIMIT: received 1 addresses, tokens 15.341, since last addr message: 0.025280 addr/sec, peer 168.119.79.89
    6082021-07-07T09:39:14Z RATE LIMIT: received 2 addresses, tokens 79.9275, since last addr message: 0.059286 addr/sec, peer 60.244.109.19
    6092021-07-07T09:39:29Z RATE LIMIT: received 5 addresses, tokens 8.60318, since last addr message: 0.219647 addr/sec, peer 83.150.56.145
    6102021-07-07T09:39:31Z RATE LIMIT: received 14 addresses, tokens 50.0018, since last addr message: 0.138434 addr/sec, peer 99.108.237.173
    6112021-07-07T09:39:35Z RATE LIMIT: received 2 addresses, tokens 7.36424, since last addr message: 0.061775 addr/sec, peer ppsmb5ln3rx6mfdzx2nwsleug5etsavbbzjkdealaybrh2jo2n6a.b32.i2p
    6122021-07-07T09:39:36Z RATE LIMIT: received 2 addresses, tokens 79.0007, since last addr message: 0.064181 addr/sec, peer q5csjdscadbsm27ceyuk7naxveak5yevqlnrowhgcnaxxauwc24zvhqd.onion
    6132021-07-07T09:39:37Z RATE LIMIT: received 9 addresses, tokens 36.5186, since last addr message: 0.137689 addr/sec, peer kokkmpquqlkptu5hkmzqlttsmtwxicldr4so7wqsufk6bwf32nma.b32.i2p
    6142021-07-07T09:39:42Z RATE LIMIT: received 18 addresses, tokens 37.5215, since last addr message: 0.135436 addr/sec, peer 127.0.0.1
    6152021-07-07T09:39:43Z RATE LIMIT: received 8 addresses, tokens 39.622, since last addr message: 0.190555 addr/sec, peer i3hcdakiz2tyvggkwefvdjoi7444kgvd2mbdfizjvv43q7zukezq.b32.i2p
    6162021-07-07T09:39:48Z RATE LIMIT: received 2 addresses, tokens 37.7395, since last addr message: 0.115091 addr/sec, peer 99.108.237.173
    6172021-07-07T09:39:51Z RATE LIMIT: received 3 addresses, tokens 18.4526, since last addr message: 0.072964 addr/sec, peer 168.119.79.89
    6182021-07-07T09:39:57Z RATE LIMIT: received 1 addresses, tokens 7.50869, since last addr message: 0.046632 addr/sec, peer ppsmb5ln3rx6mfdzx2nwsleug5etsavbbzjkdealaybrh2jo2n6a.b32.i2p
    6192021-07-07T09:40:01Z RATE LIMIT: received 1 addresses, tokens 33.4199, since last addr message: 0.055620 addr/sec, peer i3hcdakiz2tyvggkwefvdjoi7444kgvd2mbdfizjvv43q7zukezq.b32.i2p
    6202021-07-07T09:40:01Z RATE LIMIT: received 2 addresses, tokens 21.4168, since last addr message: 0.105524 addr/sec, peer 127.0.0.1
    6212021-07-07T09:40:04Z RATE LIMIT: received 8 addresses, tokens 13.298, since last addr message: 0.092801 addr/sec, peer bitcornrd36coazsbzsz4pdebyzvaplmsalq4kpoljmn6cg6x5zq.b32.i2p
    6222021-07-07T09:40:08Z RATE LIMIT: received 1 addresses, tokens 37.7125, since last addr message: 0.050683 addr/sec, peer 99.108.237.173
    6232021-07-07T09:40:08Z RATE LIMIT: received 87 addresses, tokens 7.64895, since last addr message: 7.629815 addr/sec, peer ppsmb5ln3rx6mfdzx2nwsleug5etsavbbzjkdealaybrh2jo2n6a.b32.i2p
    6242021-07-07T09:40:11Z RATE LIMIT: received 2 addresses, tokens 86.4075, since last addr message: 0.032151 addr/sec, peer 35.197.140.219
    6252021-07-07T09:40:15Z RATE LIMIT: received 1 addresses, tokens 84.8092, since last addr message: 0.248938 addr/sec, peer 35.197.140.219
    6262021-07-07T09:40:16Z RATE LIMIT: received 1 addresses, tokens 31.4715, since last addr message: 0.025298 addr/sec, peer kokkmpquqlkptu5hkmzqlttsmtwxicldr4so7wqsufk6bwf32nma.b32.i2p
    6272021-07-07T09:40:18Z RATE LIMIT: received 19 addresses, tokens 67.5595, since last addr message: 0.084633 addr/sec, peer 2a01:4f8:140:948b::2
    6282021-07-07T09:40:20Z RATE LIMIT: received 1 addresses, tokens 1.80042, since last addr message: 0.086846 addr/sec, peer ppsmb5ln3rx6mfdzx2nwsleug5etsavbbzjkdealaybrh2jo2n6a.b32.i2p
    6292021-07-07T09:40:20Z RATE LIMIT: received 1 addresses, tokens 6.83211, since last addr message: 0.065183 addr/sec, peer bitcornrd36coazsbzsz4pdebyzvaplmsalq4kpoljmn6cg6x5zq.b32.i2p
    6302021-07-07T09:40:20Z RATE LIMIT: received 1 addresses, tokens 21.2516, since last addr message: 0.054502 addr/sec, peer 127.0.0.1
    6312021-07-07T09:40:28Z RATE LIMIT: received 6 addresses, tokens 9.50376, since last addr message: 0.101685 addr/sec, peer 83.150.56.145
    6322021-07-07T09:40:34Z RATE LIMIT: received 6 addresses, tokens 85.9494, since last addr message: 0.074795 addr/sec, peer 60.244.109.19
    6332021-07-07T09:40:35Z RATE LIMIT: received 2 addresses, tokens 32.36, since last addr message: 0.105902 addr/sec, peer kokkmpquqlkptu5hkmzqlttsmtwxicldr4so7wqsufk6bwf32nma.b32.i2p
    6342021-07-07T09:40:37Z RATE LIMIT: received 2 addresses, tokens 21.9911, since last addr message: 0.114970 addr/sec, peer 127.0.0.1
    6352021-07-07T09:40:39Z RATE LIMIT: received 2 addresses, tokens 86.1762, since last addr message: 0.084493 addr/sec, peer 35.197.140.219
    6362021-07-07T09:40:39Z RATE LIMIT: received 82 addresses, tokens 10.796, since last addr message: 0.810331 addr/sec, peer shh2ewyegnuwnmdse5kl5toybdvzkvk2yj4zcowz6iwhhh3ykdfa.b32.i2p
    6372021-07-07T09:40:41Z RATE LIMIT: received 1 addresses, tokens 20.4395, since last addr message: 0.020053 addr/sec, peer 168.119.79.89
    6382021-07-07T09:40:44Z RATE LIMIT: received 2 addresses, tokens 36.7779, since last addr message: 0.045893 addr/sec, peer i3hcdakiz2tyvggkwefvdjoi7444kgvd2mbdfizjvv43q7zukezq.b32.i2p
    6392021-07-07T09:40:49Z RATE LIMIT: received 6 addresses, tokens 21.1393, since last addr message: 0.522559 addr/sec, peer 127.0.0.1
    6402021-07-07T09:40:52Z RATE LIMIT: received 1 addresses, tokens 20.5433, since last addr message: 0.090589 addr/sec, peer 168.119.79.89
    6412021-07-07T09:40:55Z RATE LIMIT: received 1 addresses, tokens 6.18741, since last addr message: 0.037263 addr/sec, peer 83.150.56.145
    6422021-07-07T09:40:55Z RATE LIMIT: received 2 addresses, tokens 41.4496, since last addr message: 0.042221 addr/sec, peer 99.108.237.173
    6432021-07-07T09:41:02Z RATE LIMIT: received 1 addresses, tokens 36.4862, since last addr message: 0.058538 addr/sec, peer i3hcdakiz2tyvggkwefvdjoi7444kgvd2mbdfizjvv43q7zukezq.b32.i2p
    6442021-07-07T09:41:02Z RATE LIMIT: received 1 addresses, tokens 20.5747, since last addr message: 0.096961 addr/sec, peer 168.119.79.89
    6452021-07-07T09:41:03Z RATE LIMIT: received 3 addresses, tokens 3.20141, since last addr message: 0.124722 addr/sec, peer shh2ewyegnuwnmdse5kl5toybdvzkvk2yj4zcowz6iwhhh3ykdfa.b32.i2p
    6462021-07-07T09:41:03Z RATE LIMIT: received 1 addresses, tokens 5.19149, since last addr message: 0.022773 addr/sec, peer ppsmb5ln3rx6mfdzx2nwsleug5etsavbbzjkdealaybrh2jo2n6a.b32.i2p
    6472021-07-07T09:41:07Z RATE LIMIT: received 1 addresses, tokens 0.602009, since last addr message: 0.249623 addr/sec, peer shh2ewyegnuwnmdse5kl5toybdvzkvk2yj4zcowz6iwhhh3ykdfa.b32.i2p
    6482021-07-07T09:41:08Z RATE LIMIT: received 6 addresses, tokens 33.6194, since last addr message: 0.184085 addr/sec, peer kokkmpquqlkptu5hkmzqlttsmtwxicldr4so7wqsufk6bwf32nma.b32.i2p
    6492021-07-07T09:41:12Z RATE LIMIT: received 10 addresses, tokens 176.895, since last addr message: 0.010638 addr/sec, peer 188.166.69.73
    6502021-07-07T09:41:14Z RATE LIMIT: received 11 addresses, tokens 11.2737, since last addr message: 0.202147 addr/sec, peer bitcornrd36coazsbzsz4pdebyzvaplmsalq4kpoljmn6cg6x5zq.b32.i2p
    6512021-07-07T09:41:14Z RATE LIMIT: received 7 addresses, tokens 92.2651, since last addr message: 0.007647 addr/sec, peer 2a03:b0c0:2:d0::4bc:2001
    6522021-07-07T09:41:18Z RATE LIMIT: received 1 addresses, tokens 18.0789, since last addr message: 0.034019 addr/sec, peer 127.0.0.1
    6532021-07-07T09:41:21Z RATE LIMIT: received 2 addresses, tokens 5.9012, since last addr message: 0.116979 addr/sec, peer ppsmb5ln3rx6mfdzx2nwsleug5etsavbbzjkdealaybrh2jo2n6a.b32.i2p
    6542021-07-07T09:41:23Z RATE LIMIT: received 10 addresses, tokens 182.417, since last addr message: 0.026198 addr/sec, peer 140.143.155.41
    6552021-07-07T09:41:26Z RATE LIMIT: received 1 addresses, tokens 4.40764, since last addr message: 0.197455 addr/sec, peer ppsmb5ln3rx6mfdzx2nwsleug5etsavbbzjkdealaybrh2jo2n6a.b32.i2p
    6562021-07-07T09:41:26Z RATE LIMIT: received 1 addresses, tokens 1.49683, since last addr message: 0.081757 addr/sec, peer bitcornrd36coazsbzsz4pdebyzvaplmsalq4kpoljmn6cg6x5zq.b32.i2p
    

    There seems to be way too many cases where we receive more addresses than available tokens (so addresses will be dropped) and rates of more than 0.1 addr/sec (not necessary meaning that addresses will be dropped because that is only since the last addr message received). I assume nobody was attacking my node at the time with addr messages flood.

  47. naumenkogs commented at 11:46 am on July 7, 2021: member

    I have 2 conceptual questions to this PR:

    1. How does it work against the “bottlenecking problem” (something we saw in the dandelion/rate-limiting discussion too)? Let’s say your reachable node has 10 outbound conns, and couple inbounds. An attacker makes 100 connections to your node, and constantly spends all tokens by transmitting more-than-average addrs. Now, when your peers receive announcements from your node, they might very likely exclude your honest inbounds (you announced to them) from relay, and announce only those Sybil nodes instead. Previously, they would relay everything I guess?

    2. Do we want to design these tokens while keeping in mind that we also wanna reuse them for other kinds of p2p dos? Or are we going to have separate tokens for other use-cases in the future? Or do you want to ignore this aspect for now?

  48. glozow commented at 1:13 pm on July 7, 2021: member

    re ACK dc8a1863f30b5944490cdbaa3271afbf8cd6da9a via git range-diff dade562...dc8a186

    • New constant MAX_ADDR_PROCESSING_TOKEN_BUCKET
    • Comments about exceeding [soft] limit when incrementing for GETADDR
    • const time_diff and increment
    • break out of addrs loop when tokens run out
    • rand ranges {1,255} + refactors in test
  49. in src/net_processing.cpp:2845 in cb0c885fbb outdated
    2840@@ -2837,6 +2841,9 @@ void PeerManagerImpl::ProcessMessage(CNode& pfrom, const std::string& msg_type,
    2841             if (fReachable)
    2842                 vAddrOk.push_back(addr);
    2843         }
    2844+        if (rate_limiting_triggered) {
    2845+            LogPrint(BCLog::NET, "Rate limiting an address message from peer=%d\n", pfrom.GetId());
    


    achow101 commented at 6:56 pm on July 7, 2021:
    Couldn’t this just be in the if where rate_limiting_triggered is being set and thus remove the need for the bool?

    sipa commented at 7:11 pm on July 7, 2021:
    Good idea, done.
  50. in test/functional/p2p_addr_relay.py:231 in dc8a1863f3 outdated
    224@@ -208,6 +225,69 @@ def blocksonly_mode_tests(self):
    225 
    226         self.nodes[0].disconnect_p2ps()
    227 
    228+    def rate_limit_tests(self):
    229+
    230+        for contype, tokens, no_relay in [("outbound-full-relay", 1001, False), ("block-relay-only", 0, True), ("inbound", 1, False)]:
    231+            self.log.info('Test rate limiting of addr processing for %s peers' % contype)
    


    achow101 commented at 6:57 pm on July 7, 2021:
    nit: use f-string instead?

    sipa commented at 7:12 pm on July 7, 2021:
    I don’t find those generally more readable.

    laanwj commented at 7:36 am on July 12, 2021:
    For more complex formatting I think f-strings are more readable, because they specify the value where it is inserted, but if there is only one value, I agree that doesn’t win anything.

    sipa commented at 7:16 pm on July 14, 2021:
    Done.
  51. achow101 commented at 6:57 pm on July 7, 2021: member
    ACK cb0c885fbbe05e73581de429d0c1d451eb4d2696
  52. sipa force-pushed on Jul 7, 2021
  53. sipa force-pushed on Jul 7, 2021
  54. sipa commented at 7:21 pm on July 7, 2021: member

    @vasild

    I think your logging exaggerates the effect, ecause it only prints #addr/time for individual messages, ignoring that the token bucket can accumulate across multiple messages.

    On my own nodes I do see occasional rate limiting, but they’re all (a) very early in a connection’s lifetime or (b) from very spammy nodes (with “bitnodes” or “multiven” in their user agent). @naumenkogs

    1. Good point, that’s perhaps interesting for a future improvement to consider. I don’t think this PR is making anything worse though - it stops spammy addr messages at a much earlier stage, but as is on the network, they are already stopped eventually due to the size limit of the m_addr_to_send buffer.
    2. I’m not sure yet, perhaps something to discuss when similar rate-limitings are being added for other things.
  55. achow101 commented at 7:56 pm on July 7, 2021: member
    re-ACK 8b60d6f538abbee5ea3ef6b49968f6afd2581877
  56. in test/functional/p2p_addr_relay.py:257 in f8e51a85ac outdated
    248+            addr_count_1 = len(self.nodes[0].getnodeaddresses(0))
    249+            assert_greater_than_or_equal(tokens, addr_count_1)
    250+            assert_greater_than_or_equal(addr_count_0 + 600, addr_count_1)
    251+            assert_equal(addr_count_1 > addr_count_0, tokens > 0)
    252+
    253+            # Send 600 more addresses. For the outbound-full-relay peer (which sends a GETADDR, and thus will
    


    mzumsande commented at 0:03 am on July 8, 2021:
    nit: this comment is backwards (our node sends a GETADDR and processes the incoming addresses, not the outbound peer)

    sipa commented at 11:30 pm on July 15, 2021:
    Done.
  57. theStack commented at 0:16 am on July 8, 2021: member
    Concept ACK
  58. mzumsande commented at 0:24 am on July 8, 2021: member

    Code-Review ACK 8b60d6f538abbee5ea3ef6b49968f6afd2581877

    I don’t think this PR is making anything worse though - it stops spammy addr messages at a much earlier stage, but as is on the network, they are already stopped eventually due to the size limit of the m_addr_to_send buffer.

    I think that for the network effects of addr relay, there is already some sort of rate limiting, because addr messages of size>10 are accepted to addrman but not relayed to other peers (code) which in a way behaves like a rate limit of 0.33 addr/s with AVG_ADDRESS_BROADCAST_INTERVAL = 30s . So most attempts to suppress the relay of certain addresses by intentionally triggering the rate limit were probably already possible before.

    But that existing mechanism does not apply to the node accepting addrs to addrman, so in my opinion the main benefit of this PR is to make all kinds of attacks trying to take over the new tables of addrman harder to pull off.

  59. in src/net_processing.cpp:243 in 4291de17e9 outdated
    239@@ -233,6 +240,11 @@ struct Peer {
    240     std::atomic_bool m_wants_addrv2{false};
    241     /** Whether this peer has already sent us a getaddr message. */
    242     bool m_getaddr_recvd{false};
    243+    /** Number of addr messages that can be processed from this peer. Start at 1 to
    


    naumenkogs commented at 5:34 am on July 8, 2021:
    I believe this is not about ‘Number of addr messages’ (because one message can contain 1000 items), but about number of addr items?

    jonatack commented at 2:51 pm on August 2, 2021:
    Proposed “addresses” in #22604.
  60. naumenkogs approved
  61. naumenkogs commented at 9:09 am on July 8, 2021: member
    utACK 8b60d6f538abbee5ea3ef6b49968f6afd2581877
  62. in src/net_processing.cpp:245 in 8b60d6f538 outdated
    239@@ -233,6 +240,11 @@ struct Peer {
    240     std::atomic_bool m_wants_addrv2{false};
    241     /** Whether this peer has already sent us a getaddr message. */
    242     bool m_getaddr_recvd{false};
    243+    /** Number of addr messages that can be processed from this peer. Start at 1 to
    244+     *  permit self-announcement. */
    245+    double m_addr_token_bucket{1.0};
    


    laanwj commented at 11:39 am on July 8, 2021:
    It looks like the code makes sure that this number never leaves the range 0.0..MAX_ADDR_PROCESSING_TOKEN_BUCKET, right? (I generally don’t like using floating point for countable objects because of potential infinite loops when the value becomes too large or negative to be represented with a granularity of 1, but I think this issue is avoided)

    vasild commented at 12:09 pm on July 8, 2021:
    It could exceed that limit - when we send getaddr we increment it with MAX_ADDR_TO_SEND (1000) regardless of its current value. It should be ok wrt concerns about floating point, given that we send getaddr just once.

    jnewbery commented at 12:42 pm on July 8, 2021:

    It looks like the code makes sure that this number never leaves the range 0.0..MAX_ADDR_PROCESSING_TOKEN_BUCKET, right?

    Not quite. m_addr_token_bucket may exceed MAX_ADDR_PROCESSING_TOKEN_BUCKET immediately after we send a getaddr message. I think that the theoretic maximum it can reach is 1007 (we send the getaddr as soon as we receive the peer’s version message, which can be up to 60 seconds after the connection is established).


    laanwj commented at 7:33 am on July 12, 2021:
    Right, thanks, that’s not really going to give problems.
  63. vasild commented at 12:01 pm on July 8, 2021: member

    I think your logging exaggerates the effect, ecause it only prints #addr/time for individual messages…

    It prints addr/time but it also prints number of addresses received (in the current addr message) and total tokens accumulated. If the former is larger than the latter, then addresses were dropped.

    Here is some crunching of the data:

    In the first 1h after startup:

    6891 addresses received in total, in 1123 addr/addrv2 messages 2496 addresses were dropped due to rate limiting

    rate_limiting_1h

  64. jnewbery commented at 1:52 pm on July 8, 2021: member

    @vasild, I’ve dug into your logs a bit:

    peer SUM of addresses received PERCENTAGE of addresses received SUM of addresses dropped PERCENTAGE of addresses dropped
    127.0.0.1 86 1.86% 0 0.00%
    140.143.155.41 61 1.32% 2 0.10%
    168.119.79.89 366 7.93% 163 7.79%
    188.166.69.73 25 0.54% 1 0.05%
    2a01:4f8:140:948b::2 173 3.75% 0 0.00%
    2a03:b0c0:2:d0::4bc:2001 17 0.37% 3 0.14%
    3.236.255.16 10 0.22% 0 0.00%
    34.64.249.186 6 0.13% 0 0.00%
    35.197.140.219 132 2.86% 0 0.00%
    46.101.235.143 1 0.02% 0 0.00%
    60.244.109.19 144 3.12% 0 0.00%
    70.64.27.12 1146 24.82% 949 45.34%
    83.150.56.145 479 10.37% 260 12.42%
    88.99.167.186 6 0.13% 0 0.00%
    94.237.44.67 71 1.54% 3 0.14%
    99.108.237.173 181 3.92% 3 0.14%
    bitcornrd36coazsbzsz4pdebyzvaplmsalq4kpoljmn6cg6x5zq.b32.i2p 193 4.18% 16 0.76%
    i3hcdakiz2tyvggkwefvdjoi7444kgvd2mbdfizjvv43q7zukezq.b32.i2p 84 1.82% 3 0.14%
    kokkmpquqlkptu5hkmzqlttsmtwxicldr4so7wqsufk6bwf32nma.b32.i2p 169 3.66% 9 0.43%
    ppsmb5ln3rx6mfdzx2nwsleug5etsavbbzjkdealaybrh2jo2n6a.b32.i2p 582 12.60% 358 17.10%
    q5csjdscadbsm27ceyuk7naxveak5yevqlnrowhgcnaxxauwc24zvhqd.onion 138 2.99% 0 0.00%
    shh2ewyegnuwnmdse5kl5toybdvzkvk2yj4zcowz6iwhhh3ykdfa.b32.i2p 548 11.87% 323 15.43%
    Grand Total 4618 100.00% 2093 100.00%

    So the majority of your peers are having 0-3 address records dropped, mostly in the first one or two addr messages received. There are a handful of peers that are sending a huge number of address records, which are consequently being strongly rate-limited. Those peers are:

    • 168.119.79.89
    • 70.64.27.12
    • 83.150.56.145
    • ppsmb5ln3rx6mfdzx2nwsleug5etsavbbzjkdealaybrh2jo2n6a.b32.i2p
    • shh2ewyegnuwnmdse5kl5toybdvzkvk2yj4zcowz6iwhhh3ykdfa.b32.i2p

    It’s probably worth checking those peers’ versions/user agent strings. I’d be very surprised to see so many addresses being gossipped by Bitcoin Core nodes. They’d have to be receiving hundreds of addr messages from their peers with <10 address records in each.

  65. jnewbery commented at 2:04 pm on July 8, 2021: member
    utACK 8b60d6f538
  66. vasild commented at 3:37 pm on July 8, 2021: member

    It’s probably worth checking those peers’ versions/user agent strings…

     0$ bitcoin-cli getpeerinfo |jq 'map(select(.addr |startswith("ppsmb5ln3rx6mfdzx2nwsleug5etsavbbzjkdealaybrh2jo2n6a.b32.i2p") or startswith("shh2ewyegnuwnmdse5kl5toybdvzkvk2yj4zcowz6iwhhh3ykdfa.b32.i2p") or startswith("168.119.79.89") or startswith("70.64.27.12") or startswith("83.150.56.145"))) |map({addr: .addr, subver: .subver})'
     1[
     2  {
     3    "addr": "shh2ewyegnuwnmdse5kl5toybdvzkvk2yj4zcowz6iwhhh3ykdfa.b32.i2p:0",
     4    "subver": "/Satoshi:21.99.0/"
     5  },
     6  {
     7    "addr": "ppsmb5ln3rx6mfdzx2nwsleug5etsavbbzjkdealaybrh2jo2n6a.b32.i2p:0",
     8    "subver": "/Satoshi:0.21.1/Knots:20210629/"
     9  },
    10  {
    11    "addr": "168.119.79.89:8333",
    12    "subver": "/Satoshi:0.21.1/"
    13  },
    14  {
    15    "addr": "70.64.27.12:8333",
    16    "subver": "/Satoshi:0.21.1/"
    17  },
    18  {
    19    "addr": "83.150.56.145:8333",
    20    "subver": "/Satoshi:0.21.1/"
    21  }
    22]
    

    Interesting… I am not sure how to interpret all this. My first thought is that the rate limit is too aggressive and is cutting normal traffic. OTOH I feel like I need more in order judge this properly.

  67. jnewbery commented at 5:06 pm on July 8, 2021: member

    I am not sure how to interpret all this

    Me neither! Here’s one example of addresses received from 70.64.27.12:

    time addresses received tokens rate peer
    2021-07-07T09:05:56 5 9.09188 0.079376 70.64.27.12
    2021-07-07T09:06:18 176 6.29241 7.99806 70.64.27.12

    They send us an addr message with 5 addresses, followed 22 seconds later by an addr messages with 176 addresses.

    There are only three ways that Bitcoin Core adds addresses to m_addrs_to_send for a peer:

    1. self announcement (on connection to outbound nodes, and once every 24 hours on average)
    2. a response to a getaddr request
    3. relaying to 2 random peers when receiving a gossipped addr (as long as the addr message it received had fewer than 10 addresses).

    (1) and (2) can’t be responsible here, so if 70.64.27.12 really is a Bitcoin Core v0.21.1 node, then it must be receiving a huge number of addr messages (containing fewer than 10 addresses each) from its peers, and then relaying them on.

    The next step might be to enable message capture (https://github.com/bitcoin/bitcoin/blob/master/contrib/message-capture/message-capture-docs.md) to see what the contents of those addr messages are.

  68. vasild commented at 4:15 pm on July 12, 2021: member

    I updated the printout to show also the addresses being dropped and to calculate the average addr/sec for the sender from the time they connected to the time a particular addr message was received. Results from running it for 1h are below.

    Total addresses received: 9917 Dropped addresses: 5073

    Total number of peers who sent us addresses: 26 Dropped at least one address from this number of peers: 22

    The addresses being dropped look legit. I tried connecting to a bunch of them and they are responsive and report some version of Bitcoin Core. Could not connect to some others (time out or connection refused), but it is expected that not all nodes are up all the time. So, the addresses being dropped by the rate limiter do not look like a trash.

    Here is a histogram of how often various addr/sec are observed (the red line is 0.1, everything right from it results in some dropping):

    histo

    To me it looks like that the rate limiter is too aggressive and is cutting legit traffic. What about increasing MAX_ADDR_RATE_PER_SECOND from 0.1 to something like 0.6?

    Log output

     0--- a/src/net_processing.cpp
     1+++ b/src/net_processing.cpp
     2@@ -242,12 +242,13 @@ struct Peer {
     3     bool m_getaddr_recvd{false};
     4     /** Number of addr messages that can be processed from this peer. Start at 1 to
     5      *  permit self-announcement. */
     6     double m_addr_token_bucket{1.0};
     7     /** When m_addr_token_bucket was last updated */
     8     std::chrono::microseconds m_addr_token_timestamp{GetTime<std::chrono::microseconds>()};
     9+    size_t m_total_addr_received{0};
    10
    11     /** Set of txids to reconsider once their parent transactions have been accepted **/
    12     std::set<uint256> m_orphan_work_set GUARDED_BY(g_cs_orphans);
    13
    14     /** Protects m_getdata_requests **/
    15     Mutex m_getdata_requests_mutex;
    16@@ -2797,12 +2798,36 @@ void PeerManagerImpl::ProcessMessage(CNode& pfrom, const std::string& msg_type,
    17         const auto current_time = GetTime<std::chrono::microseconds>();
    18         if (peer->m_addr_token_bucket < MAX_ADDR_PROCESSING_TOKEN_BUCKET) {
    19             // Don't increment bucket if it's already full
    20             const auto time_diff = std::max(current_time - peer->m_addr_token_timestamp, 0us);
    21             const double increment = CountSecondsDouble(time_diff) * MAX_ADDR_RATE_PER_SECOND;
    22             peer->m_addr_token_bucket = std::min<double>(peer->m_addr_token_bucket + increment, MAX_ADDR_PROCESSING_TOKEN_BUCKET);
    23+#if 1
    24+            peer->m_total_addr_received += vAddr.size();
    25+            const auto connection_duration =
    26+                std::max(count_microseconds(current_time) / 1000000 - pfrom.nTimeConnected, 1L);
    27+            std::string extra_msg;
    28+            // If will drop, log how many and the addresses themselves.
    29+            if (vAddr.size() > peer->m_addr_token_bucket) {
    30+                const auto num_drop = static_cast<size_t>(std::ceil(vAddr.size() - peer->m_addr_token_bucket));
    31+                extra_msg = strprintf(",num drop:%u,dropped:", num_drop);
    32+                for (size_t i = vAddr.size() - num_drop; i < vAddr.size(); ++i) {
    33+                    extra_msg += vAddr[i].ToStringIPPort();
    34+                    if (i < vAddr.size() - 1) {
    35+                        extra_msg += ";";
    36+                    }
    37+                }
    38+            }
    39+            LogPrintf("RATE LIMIT:received addresses:%u,available tokens:%.4lf,avg "
    40+                      "addr/sec:%.4lf,peer:%s%s\n",
    41+                      vAddr.size(),
    42+                      peer->m_addr_token_bucket,
    43+                      static_cast<double>(peer->m_total_addr_received) / connection_duration,
    44+                      pfrom.addr.ToStringIP(),
    45+                      extra_msg);
    46+#endif
    47         }
    48         peer->m_addr_token_timestamp = current_time;
    49
    50         Shuffle(vAddr.begin(), vAddr.end(), FastRandomContext());
    51         const bool rate_limited = !pfrom.HasPermission(NetPermissionFlags::Addr);
    52         for (CAddress& addr : vAddr)
    
  69. sipa commented at 4:23 pm on July 12, 2021: member
    @vasild Interesting. Are these by any chance onion/i2p peers? One theory could be that those peers generally are connected only/mostly to a small subset of nodes only, and thus the “pick one or two peers to relay to” policy results in a “funnel” effect for them?
  70. vasild commented at 4:37 pm on July 12, 2021: member

    Here are the 26 peers my node was connected to. The ones that triggered the rate limiter are marked with * (they are 22):

     0* 127.0.0.1
     1* 140.143.155.41
     2* 148.251.40.218
     3* 158.69.72.5
     4* 188.166.69.73
     5* 2001:19f0:6000:9008:5400:ff:fe1b:164b
     6* 22plzy5mqwz64iukd2hbsa5oo454iwkjko26tifi54ir4mbnpfea.b32.i2p
     7  2600:1f18:41a0:d000:cba6:77c8:4429:7ea
     8* 2600:1f1c:2d3:2400:4da7:c467:efd:8d03
     9* 2600:1f1c:2d3:2403:5bac:3fc6:6513:7a63
    10* 2604:a880:400:d0::1bdb:4001
    11* 2a01:4f8:160:832e::2
    12* 2a03:b0c0:2:d0::4bc:2001
    13* 2a04:3544:1000:1510:b08f:6fff:fe1b:3007
    14  2a0f:2a80::11
    15  3.236.255.16
    16* 34.87.112.13
    17* 35.228.225.73
    18* 35.247.228.106
    19* 39.101.136.226
    20* 94.237.44.67
    21* 95.217.41.235
    22* bitcornrd36coazsbzsz4pdebyzvaplmsalq4kpoljmn6cg6x5zq.b32.i2p
    23* ppsmb5ln3rx6mfdzx2nwsleug5etsavbbzjkdealaybrh2jo2n6a.b32.i2p
    24* shh2ewyegnuwnmdse5kl5toybdvzkvk2yj4zcowz6iwhhh3ykdfa.b32.i2p
    25  vnqix5uljfwssvzbexzjeuoehjujtw4iqftiu34nbvig64kkmnla.b32.i2p
    
  71. in src/net_processing.cpp:2806 in 8b60d6f538 outdated
    2791@@ -2777,11 +2792,32 @@ void PeerManagerImpl::ProcessMessage(CNode& pfrom, const std::string& msg_type,
    2792         std::vector<CAddress> vAddrOk;
    2793         int64_t nNow = GetAdjustedTime();
    2794         int64_t nSince = nNow - 10 * 60;
    2795+
    2796+        // Update/increment addr rate limiting bucket.
    2797+        const auto current_time = GetTime<std::chrono::microseconds>();
    2798+        if (peer->m_addr_token_bucket < MAX_ADDR_PROCESSING_TOKEN_BUCKET) {
    2799+            // Don't increment bucket if it's already full
    2800+            const auto time_diff = std::max(current_time - peer->m_addr_token_timestamp, 0us);
    


    GeneFerneau commented at 10:08 pm on July 12, 2021:
    This could result in a very large number if peer->m_addr_token_timestamp is negative. Maybe a check that peer->m_addr_token_timestamp is positive? Probably doesn’t matter with the std::min check below, just a thought.

    sipa commented at 10:13 pm on July 12, 2021:
    That variable is initialized to the current time, so it can’t be negative.

    GeneFerneau commented at 10:19 pm on July 12, 2021:
    I was under the impression this variable is under peer (attacker) control, so could take on any value.

    sipa commented at 10:20 pm on July 12, 2021:
    That’s incorrect. It’s just our local time when the m_addr_token_bucket variable was last updated.
  72. GeneFerneau commented at 10:27 pm on July 12, 2021: none
    Concept + review ACK 8b60d6f
  73. sipa force-pushed on Jul 12, 2021
  74. sipa commented at 11:31 pm on July 12, 2021: member
    @vasild I’ve added a commit that adds some statistics to getpeerinfo. So far it does indeed seem there are addr messages being sent from seemingly-honest peers that are being rate limited by it. I’m going to keep running this on a few nodes for a while to gather more statistics, but I’m beginning to agree that the 0.1 addr/s limit may be too strict.
  75. sipa commented at 0:38 am on July 13, 2021: member

    See the bitcoin-dev list mail, where there is a link to https://bitcointalk.org/index.php?topic=5348856.0.

    Could that be what we’re seeing?

  76. mzumsande commented at 0:53 am on July 13, 2021: member
    I think so too, I ran this patch last week and again today, for a few hours each. While I saw very few hits of the rate limit last week, I observed a similar pattern to @vasild’s data today: Some peers send spikes of large addr messages of size 50-100, alternating with several small addrs <10. So it seems like they may have some other peer that is spamming them - not continuously but every ~3 minutes or so.
  77. in src/net_processing.cpp:2826 in df1ddf8f08 outdated
    2821+            if (rate_limited) {
    2822+                if (peer->m_addr_token_bucket < 1.0) {
    2823+                    LogPrint(BCLog::NET, "Rate limiting an address message from peer=%d\n", pfrom.GetId());
    2824+                    num_rate_limit++;
    2825+                    continue;
    2826+                }
    


    vasild commented at 12:52 pm on July 13, 2021:
    If the peer sends us an addr message with 50 addresses and we drop the last 30, this would cause 30 printouts to the log, which may be a bit excessive. I think it would be possible to do the counting before the loop and also make the log message a bit more useful by printing the total number of addresses in the message and the number of the dropped ones.

    jnewbery commented at 1:37 pm on July 13, 2021:
    This used to be a break, which would mean that the log is printed only once. Is there a reason that it’s been reverted to continue?

    jnewbery commented at 2:23 pm on July 13, 2021:
    oh, I see it’s for the new metrics.

    sipa commented at 7:12 pm on July 14, 2021:
    This has been reverted by using your suggestion below.
  78. in src/net_processing.cpp:2808 in df1ddf8f08 outdated
    2803+        const auto current_time = GetTime<std::chrono::microseconds>();
    2804+        if (peer->m_addr_token_bucket < MAX_ADDR_PROCESSING_TOKEN_BUCKET) {
    2805+            // Don't increment bucket if it's already full
    2806+            const auto time_diff = std::max(current_time - peer->m_addr_token_timestamp, 0us);
    2807+            const double increment = CountSecondsDouble(time_diff) * MAX_ADDR_RATE_PER_SECOND;
    2808+            peer->m_addr_token_bucket = std::min<double>(peer->m_addr_token_bucket + increment, MAX_ADDR_PROCESSING_TOKEN_BUCKET);
    


    vasild commented at 1:05 pm on July 13, 2021:

    Here we can calculate the number of to be dropped addresses and also log the message, for example:

     0--- i/src/net_processing.cpp
     1+++ w/src/net_processing.cpp
     2@@ -2796,36 +2796,46 @@ void PeerManagerImpl::ProcessMessage(CNode& pfrom, const std::string& msg_type,
     3 
     4         // Store the new addresses
     5         std::vector<CAddress> vAddrOk;
     6         int64_t nNow = GetAdjustedTime();
     7         int64_t nSince = nNow - 10 * 60;
     8 
     9+        const bool rate_limited = !pfrom.HasPermission(NetPermissionFlags::Addr);
    10+        uint64_t num_proc = 0, num_rate_limit = 0;
    11+
    12         // Update/increment addr rate limiting bucket.
    13         const auto current_time = GetTime<std::chrono::microseconds>();
    14         if (peer->m_addr_token_bucket < MAX_ADDR_PROCESSING_TOKEN_BUCKET) {
    15             // Don't increment bucket if it's already full
    16             const auto time_diff = std::max(current_time - peer->m_addr_token_timestamp, 0us);
    17             const double increment = CountSecondsDouble(time_diff) * MAX_ADDR_RATE_PER_SECOND;
    18             peer->m_addr_token_bucket = std::min<double>(peer->m_addr_token_bucket + increment, MAX_ADDR_PROCESSING_TOKEN_BUCKET);
    19+
    20+            if (rate_limited && vAddr.size() > peer->m_addr_token_bucket) {
    21+                num_rate_limit =
    22+                    static_cast<uint64_t>(std::ceil(vAddr.size() - peer->m_addr_token_bucket));
    23+                LogPrint(BCLog::NET,
    24+                         "Rate limiting %u of %u addresses from a message from peer=%d%s\n",
    25+                         pfrom.GetId(),
    26+                         num_rate_limit,
    27+                         vAddr.size(),
    28+                         fLogIPs ? ", peeraddr=" + pfrom.addr.ToString() : "");
    29+            }
    30         }
    31         peer->m_addr_token_timestamp = current_time;
    32 
    33         Shuffle(vAddr.begin(), vAddr.end(), FastRandomContext());
    34-        const bool rate_limited = !pfrom.HasPermission(NetPermissionFlags::Addr);
    35-        uint64_t num_proc = 0, num_rate_limit = 0;
    36         for (CAddress& addr : vAddr)
    37         {
    38             if (interruptMsgProc)
    39                 return;
    40 
    41             // Apply rate limiting.
    42             if (rate_limited) {
    43                 if (peer->m_addr_token_bucket < 1.0) {
    44-                    LogPrint(BCLog::NET, "Rate limiting an address message from peer=%d\n", pfrom.GetId());
    45-                    num_rate_limit++;
    46-                    continue;
    47+                    break;
    48                 }
    49                 peer->m_addr_token_bucket -= 1.0;
    50             }
    51             // We only bother storing full nodes, though this may include
    52             // things which we would not make an outbound connection to, in
    53             // part because we may make feeler connections to them.
    

    vasild commented at 8:04 am on July 14, 2021:

    Now I see that I have messed up the order of the arguments to LogPrint() :facepalm:. Correction:

    0                 LogPrint(BCLog::NET, "Rate limiting %u of %u addresses from a message from peer=%d%s\n
    1-                         pfrom.GetId(),
    2                          num_rate_limit,
    3                          vAddr.size(),
    4+                         pfrom.GetId(),
    5                          fLogIPs ? ", peeraddr=" + pfrom.addr.ToString() : "");
    

    vasild commented at 9:18 am on July 14, 2021:

    This better be outside of the if:

     0         if (peer->m_addr_token_bucket < MAX_ADDR_PROCESSING_TOKEN_BUCKET) {
     1             // Don't increment bucket if it's already full
     2             const auto time_diff = std::max(current_time - peer->m_addr_token_timestamp, 0us);
     3             const double increment = CountSecondsDouble(time_diff) * MAX_ADDR_RATE_PER_SECOND;
     4             peer->m_addr_token_bucket = std::min<double>(peer->m_addr_token_bucket + increment, MAX_AD
     5-            if (rate_limited && vAddr.size() > peer->m_addr_token_bucket) {
     6-                num_rate_limit = (uint64_t)std::ceil(vAddr.size() - peer->m_addr_token_bucket);
     7-                LogPrint(BCLog::NET, "Rate limiting %u of %u addresses from a message from peer=%d%s\n
     8-                         pfrom.GetId(),
     9-                         num_rate_limit,
    10-                         vAddr.size(),
    11-                         fLogIPs ? ", peeraddr=" + pfrom.addr.ToString() : "");
    12-            }
    13         }
    14+        if (rate_limited && vAddr.size() > peer->m_addr_token_bucket) {
    15+            num_rate_limit = (uint64_t)std::ceil(vAddr.size() - peer->m_addr_token_bucket);
    16+            LogPrint(BCLog::NET,
    17+                     "Rate limiting %u of %u addresses from a message from peer=%d%s\n",
    18+                     num_rate_limit,
    19+                     vAddr.size(),
    20+                     pfrom.GetId(),
    21+                     fLogIPs ? ", peeraddr=" + pfrom.addr.ToString() : "");
    22+        }
    23         peer->m_addr_token_timestamp = current_time;
    

    sipa commented at 7:12 pm on July 14, 2021:
    Done, and moved using @jnewbery’s suggestion below.
  79. vasild commented at 1:09 pm on July 13, 2021: member

    I am running df1ddf8f08 and looking at the output of:

    0bitcoin-cli getpeerinfo |jq 'map({addr: .addr, addr_processed: .addr_processed, addr_rate_limited: .addr_rate_limited, avg_addr_recv_rate: ((.addr_processed + .addr_rate_limited) / (now - .conntime))})'
    

    it looks like something like this:

     0...
     1  {
     2    "addr": "34.83.222.21:8333",
     3    "addr_processed": 144,
     4    "addr_rate_limited": 0,
     5    "avg_addr_recv_rate": 0.038106087594527334
     6  },
     7  {
     8    "addr": "46.29.19.25:8333",
     9    "addr_processed": 1362,
    10    "addr_rate_limited": 1587,
    11    "avg_addr_recv_rate": 0.8066360758143002
    12  },
    13...
    
  80. vasild commented at 5:08 pm on July 13, 2021: member

    I observed a similar pattern to @vasild’s data today: Some peers send spikes of large addr messages of size 50-100, alternating with several small addrs <10

    I think it is more complicated :exploding_head:. From the log linked from #22387 (comment):

    Below, the numbers mean that an addr message with that many addresses was received. Messages from which addresses were dropped are marked with *. For example, 140.143.155.41 5 7* 15 means that this peer sent us 3 addr messages each containing 5, 7 and 15 addresses and something was dropped from the message that contained 7 addresses.

     0127.0.0.1                                                    1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 6 6 6 7 7 7 8* 9 9 10 12 12* 14 25
     1140.143.155.41                                               8 9 9 10 10 10 10 10*
     2148.251.40.218                                               1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1* 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2* 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4* 4* 4* 4* 5 6 6 6* 7 7 7* 8 8 8 8* 9 9* 10 10* 12 18* 24* 25* 27* 31* 45* 52* 59* 67* 78* 99*
     3158.69.72.5                                                  1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2* 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4* 5 5 5 5 5 5* 6 6 6 6 6 6 6* 6* 7 7 7 7 7 8 9 9 10* 12 83* 84* 88* 91* 105*
     4188.166.69.73                                                8* 9
     52001:19f0:6000:9008:5400:ff:fe1b:164b                        1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2* 2* 2* 3 3 3 3 3 3 3 3* 3* 4 4 4* 5 5 5 5 5 5* 5* 6 6* 6* 6* 7 7 8* 8* 9* 10 11* 13 16 19 26*
     622plzy5mqwz64iukd2hbsa5oo454iwkjko26tifi54ir4mbnpfea.b32.i2p 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2* 3 3 3 3 3 3 3 3 3 3 3 4 4 5 5 5 5 6 6 7 7 7 8 8 9 9 10 11 13 14 18
     72600:1f18:41a0:d000:cba6:77c8:4429:7ea                       1 2
     82600:1f1c:2d3:2400:4da7:c467:efd:8d03                        1 1 2 2 3 5 5*
     92600:1f1c:2d3:2403:5bac:3fc6:6513:7a63                       1 1 1 2 3 3 3* 4 4 4 5* 6 6 11
    102604:a880:400:d0::1bdb:4001                                  1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1* 1* 2 2 2 2 2 2 2 2 2 2 2 2 2* 2* 3 3 3 3 3 3 3 3* 4 4 4 4 4 4 4 4* 4* 4* 4* 5 5 5 5 5 6 6 6 7* 7* 7* 8 8 8 9 9 9* 10* 15 15* 26* 29* 65* 75* 82* 90* 94* 94* 96* 102* 107*
    112a01:4f8:160:832e::2                                         1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2* 2* 3 3 3 3 3 4 4 4 4 4 4 4 4 4* 5 5 5 5* 5* 6 6* 8* 9 11 27* 33* 34* 37* 39* 41* 42* 46* 46* 61* 71* 79* 81* 83* 84* 87* 92* 94* 94* 100* 113*
    122a03:b0c0:2:d0::4bc:2001                                     10*
    132a04:3544:1000:1510:b08f:6fff:fe1b:3007                      7 7 8 9 9 10* 10*
    142a0f:2a80::11                                                2 2 2 3 3 3 3 3 3 3
    153.236.255.16                                                 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 3 3 3 4 4 5 5
    1634.87.112.13                                                 1 1 1 1 1 1 1 1 1 1 1 1* 2 2 2 2 2 3 3 3 3 4 5 5 6 6 7 9 9 9* 13*
    1735.228.225.73                                                1 1 1 1 1 1 2 3 3 3 3 4 4 4 4 5 7 8 12 18*
    1835.247.228.106                                               1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3* 4 4 4 4 4 4* 4* 4* 5 5 5 6 6 6 6 6 6 7 8 8 8* 9 9 10 10 10 10* 11 12 12* 13*
    1939.101.136.226                                               1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1* 2 2 2 2 2 2 2 2 2* 3 3 3 3 3 3 3 3* 3* 3* 3* 3* 3* 4 4 4 4 4* 4* 4* 4* 4* 4* 5 5* 5* 5* 5* 5* 6* 6* 6* 7 7 7* 8 8 8* 8* 8* 9* 9* 11 11* 11* 11* 11* 12* 15* 15* 16* 17* 17* 31* 37* 38* 39* 41* 44* 46* 47* 50* 55* 55* 56* 59* 59* 62*
    2094.237.44.67                                                 6 7 7 9 9 9 9 10*
    2195.217.41.235                                                1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 4 5 10 40* 51* 63* 82* 82* 84* 87* 91* 92* 93*
    22bitcornrd36coazsbzsz4pdebyzvaplmsalq4kpoljmn6cg6x5zq.b32.i2p 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2* 3 3 3 3 3 3 3* 4 4 4 4 4 4 4* 5 5 5 6 6 6 6 6 6 7 7 8 8 8 8 8 8* 9 9* 10* 11 12 12 12 14 16* 18
    23ppsmb5ln3rx6mfdzx2nwsleug5etsavbbzjkdealaybrh2jo2n6a.b32.i2p 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 5 6 6 7 7 8 11 11 11 12 70* 83* 86*
    24shh2ewyegnuwnmdse5kl5toybdvzkvk2yj4zcowz6iwhhh3ykdfa.b32.i2p 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1* 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3* 3* 4 4 4 4 4 4 4 4* 4* 4* 5 5 5 5 5 5 6 6* 6* 6* 6* 7 7* 7* 8 8 9 9* 12* 14* 15 28* 32* 40* 50* 57* 81* 86* 88* 90* 94*
    25vnqix5uljfwssvzbexzjeuoehjujtw4iqftiu34nbvig64kkmnla.b32.i2p 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 5 5 5 5 5 6 6 6 6 7 7 9 9 10 11 14 16 19 19 23
    

    The numbers are sorted so it is easy to spot the peers who send us addr messages with >10 addresses. Lots of dropping also happens from smaller (<10) addr messages. Why nobody sent us a message with 1000 addresses?

     0127.0.0.1                                                    1 3 12 8 2 9 1 5 3 1 4 2 5 5 3 6 1 2 5 5 5 10 2 2 9 3 6 2 1 3 25 1 6 5 2 2 2 2 7 2 1 2 1 4 1 7 4 2 1 3 7 4 12 2 5 5 4 2 4 5 1 14 2 1 2
     1140.143.155.41                                               10 9 10 10 9 10 8 10
     2148.251.40.218                                               1 4 5 59 25 1 2 1 10 9 99 7 1 3 31 27 1 7 7 2 1 3 4 2 78 2 3 4 4 3 3 3 24 45 1 1 2 2 2 3 1 6 1 8 1 3 1 1 1 2 1 8 1 9 4 3 2 2 52 1 2 18 4 1 2 4 2 6 8 10 67 4 1 12 2 4 1 4 3 3 3 3 1 1 1 1 1 8 4 2 1 3 2 2 1 6 4
     3158.69.72.5                                                  1 1 1 1 2 2 1 12 4 4 83 2 1 91 2 5 2 5 9 3 2 1 1 3 2 2 9 3 6 2 2 1 2 1 3 1 5 5 7 6 4 84 3 3 2 2 6 105 3 8 1 2 2 1 1 7 6 1 3 2 4 7 3 6 1 2 2 1 7 5 4 1 2 6 2 3 2 88 6 1 1 4 1 2 2 2 6 1 7 1 4 5 10 2
     4188.166.69.73                                                8 9
     52001:19f0:6000:9008:5400:ff:fe1b:164b                        1 5 2 5 2 5 1 5 4 3 7 2 16 2 19 1 3 3 2 1 4 2 2 1 2 6 5 1 1 6 1 1 2 13 6 3 2 11 3 2 3 6 5 5 3 7 26 3 4 2 1 10 8 3 2 2 1 8 9
     622plzy5mqwz64iukd2hbsa5oo454iwkjko26tifi54ir4mbnpfea.b32.i2p 2 1 8 4 9 11 2 3 2 3 1 5 5 3 3 1 2 2 1 1 1 13 10 1 2 8 1 3 2 1 3 1 3 7 1 2 6 4 1 14 2 2 1 3 3 1 2 3 1 2 2 6 5 3 5 7 9 2 7 2 1 1 18
     72600:1f18:41a0:d000:cba6:77c8:4429:7ea                       1 2
     82600:1f1c:2d3:2400:4da7:c467:efd:8d03                        1 5 2 3 1 2 5
     92600:1f1c:2d3:2403:5bac:3fc6:6513:7a63                       3 6 6 4 2 1 4 11 1 3 4 3 5 1
    102604:a880:400:d0::1bdb:4001                                  26 7 4 3 2 1 1 1 7 1 1 2 5 4 1 6 2 1 1 5 94 1 1 2 10 2 1 65 29 1 4 2 2 2 4 5 1 2 1 107 3 1 1 94 3 8 1 9 4 6 1 1 1 15 82 3 4 9 6 4 1 2 9 1 90 1 3 4 1 2 1 1 7 96 8 15 4 1 2 1 3 3 1 102 1 2 1 4 1 1 5 4 5 8 3 75 1 2
    112a01:4f8:160:832e::2                                         37 1 4 46 34 2 4 11 61 27 4 8 1 2 94 1 4 79 92 5 2 1 113 2 1 1 3 2 1 5 3 1 87 2 1 1 2 81 4 1 4 2 2 2 3 1 1 1 84 6 5 3 94 1 5 2 39 46 1 1 2 100 4 1 1 3 42 1 4 1 83 1 4 2 5 71 6 2 9 1 33 41 1 1 2
    122a03:b0c0:2:d0::4bc:2001                                     10
    132a04:3544:1000:1510:b08f:6fff:fe1b:3007                      10 9 10 8 7 9 7
    142a0f:2a80::11                                                3 3 3 3 3 2 3 2 3 2
    153.236.255.16                                                 1 1 2 1 1 1 5 1 1 1 2 1 1 1 1 1 2 1 5 1 3 1 3 2 1 1 3 1 1 1 4 1 1 1 2 1 4 2 1 1 2 2 1 1 1 1
    1634.87.112.13                                                 3 2 2 9 1 1 1 1 6 6 2 9 3 2 7 1 9 1 1 3 13 4 1 3 5 2 1 1 1 1 5
    1735.228.225.73                                                4 1 12 18 1 8 5 3 3 4 1 2 1 3 4 1 7 1 3 4
    1835.247.228.106                                               3 2 3 13 4 10 1 1 1 9 2 2 4 4 2 3 3 12 8 4 10 3 3 3 3 6 5 2 6 2 1 1 3 2 7 2 8 1 1 2 2 2 9 4 1 6 4 4 2 5 6 2 12 10 2 2 1 3 2 1 10 1 6 2 3 2 2 3 1 3 3 5 1 3 11 8 2 4 3 2 6 2
    1939.101.136.226                                               11 56 1 8 2 62 1 6 4 5 1 5 1 11 15 5 4 3 1 7 3 59 2 1 6 3 4 1 46 3 8 1 2 47 3 3 11 1 2 3 55 15 4 8 38 17 2 1 2 2 1 7 55 11 5 8 1 1 3 11 3 37 4 1 1 5 9 17 31 3 4 8 3 1 2 1 2 39 3 44 1 9 3 5 1 7 6 41 12 4 4 4 59 16 50 1 1 4
    2094.237.44.67                                                 7 9 9 10 9 6 7 9
    2195.217.41.235                                                91 2 2 1 1 1 92 1 2 1 1 1 1 1 1 2 2 2 2 82 2 2 2 3 1 1 1 2 82 3 1 2 93 1 2 84 3 3 1 1 10 2 1 1 2 87 3 4 1 5 1 1 2 2 40 51 1 1 3 1 63 1 1 1 1 1 2 1 2 1 1 2 2
    22bitcornrd36coazsbzsz4pdebyzvaplmsalq4kpoljmn6cg6x5zq.b32.i2p 2 1 3 2 6 4 4 4 4 6 7 1 1 3 8 7 16 9 1 3 10 1 3 8 2 4 6 6 6 2 4 4 12 8 12 5 8 8 2 1 1 8 14 5 1 3 9 6 2 1 1 2 2 2 2 1 11 2 5 12 18 2 1 1 1 1 3 3
    23ppsmb5ln3rx6mfdzx2nwsleug5etsavbbzjkdealaybrh2jo2n6a.b32.i2p 2 12 1 2 2 3 1 11 2 1 3 1 86 4 3 4 3 83 7 3 1 3 1 8 70 2 3 2 2 3 1 2 2 1 2 1 11 3 6 3 1 1 2 2 3 1 7 1 4 1 2 6 1 4 2 5 4 3 1 11 3
    24shh2ewyegnuwnmdse5kl5toybdvzkvk2yj4zcowz6iwhhh3ykdfa.b32.i2p 3 3 9 4 1 88 8 3 6 1 28 1 4 1 5 1 1 2 57 12 1 3 6 86 2 6 9 4 7 3 3 3 2 15 3 40 5 2 3 4 1 5 1 8 1 4 1 94 1 14 4 3 1 4 1 4 2 5 32 50 3 1 2 1 2 4 1 81 2 6 6 1 7 1 1 2 3 2 5 5 4 2 7 2 90 1
    25vnqix5uljfwssvzbexzjeuoehjujtw4iqftiu34nbvig64kkmnla.b32.i2p 1 1 1 1 2 14 1 1 1 9 2 1 1 2 5 19 1 3 1 1 2 1 1 1 2 2 3 3 5 3 4 1 5 1 5 1 1 19 7 2 1 1 5 1 23 1 1 1 2 3 6 2 3 3 3 10 6 16 3 4 6 3 7 1 1 1 2 4 4 1 1 2 9 11 2 3 6 3
    

    Next thing would be to log the accepted and dropped addresses and sample the % of the ones that are responsive. If the good/responsive VS down/unresponsive/bogus? rate is the same in the accepted and dropped then the dropped traffic was legit and should not have been dropped.

  81. sipa commented at 1:08 am on July 14, 2021: member

    @vasild I assume that whoever is creating these spam addr messages isn’t sending them directly to you, and is probably sending them in batches of 10 (because when you send more, they don’t trigger relay, and thus we wouldn’t be seeing them). So what you’re seeing is the backscatter result of what ends up randomly relayed 1 or more steps on, split by the 1-to-2 peers selection, and merged by the m_addr_to_send vectors.

    What I’m observing is that there are sometimes hours of barely any rate-limiting going on, and then suddenly a ton, from multiple peers at once. This makes me think we should be primarily looking at those low-activity periods, as they are almost certainly more representative of honest traffic. In the presence of a spam attack, rate-limiting will drop things - including legitimate traffic - but I don’t think that’s fundamentally different from what would otherwise be happening; the loss would just happen in a different place (rate-limiting, vs overwriting in m_addr_to_send). So I think I prefer keeping it at 0.1/s for now.

  82. sipa force-pushed on Jul 14, 2021
  83. sipa force-pushed on Jul 14, 2021
  84. sipa force-pushed on Jul 14, 2021
  85. in src/net_processing.cpp:2848 in 759c3d4d28 outdated
    2844@@ -2795,6 +2845,7 @@ void PeerManagerImpl::ProcessMessage(CNode& pfrom, const std::string& msg_type,
    2845                 // Do not process banned/discouraged addresses beyond remembering we received them
    2846                 continue;
    2847             }
    2848+            num_proc++;
    


    vasild commented at 8:22 am on July 14, 2021:

    This was if (!peer->m_getaddr_sent) num_proc++; in a previous incarnation and I thought it was ok. With unconditional num_proc++, observing addr/sec ((addr_processed + addr_rate_limited) / connection_duration) in order to find a better value for MAX_ADDR_RATE_PER_SECOND is not appropriate because the calculated addr/sec may be allowed to go higher than 0.1 without causing any rate limiting (we increment the tokens by 1000 when we send getaddr). I guess either way is fine.

    About putting this increment after two possible continues: I think that if we do some processing (MayHaveUsefulAddressDB() or banmap lookup) and decide to continue, that should be counted as “processing” too. I.e. num_proc++; should be put before MayHaveUsefulAddressDB() above. Or if it remains here, then maybe addr_accepted or addr_added is a name that would better describe what we have done. Maybe have both addr_received (vAddr.size()) and addr_accepted?


    jnewbery commented at 9:37 am on July 14, 2021:
    Agree with logging the vAddr.size() as well as num_proc. I don’t have any strong opinion about the name: addrs_accepted or addrs_added implies that the address has been added to addrman, which is not necessarily the case. addrs_relayed is also inaccurate since the address might not actually be relayed. addrs_processed seems fine to me.

    sipa commented at 4:45 pm on July 14, 2021:
    @vasild I removed the “!peer->m_getaddr_sent” because it doesn’t work reliably. If we receive a randomly relayed addr before receiving the response to GETADDR, the getaddr response will still be counted (and I see that happen fairly regularly).
  86. in src/net_processing.cpp:2818 in 759c3d4d28 outdated
    2813+                LogPrint(BCLog::NET, "Rate limiting %u of %u addresses from a message from peer=%d%s\n",
    2814+                         pfrom.GetId(),
    2815+                         num_rate_limit,
    2816+                         vAddr.size(),
    2817+                         fLogIPs ? ", peeraddr=" + pfrom.addr.ToString() : "");
    2818+            }
    


    jnewbery commented at 9:29 am on July 14, 2021:

    I think instead of making this calculation up here and logging, it’d be clearer just to use a counter in the loop below and then log in the same place that the statistics are updated. That way, if the logic for address processing changes, then the logging will automatically be consistent with the true values and the statistics:

     0             const auto time_diff = std::max(current_time - peer->m_addr_token_timestamp, 0us);
     1             const double increment = CountSecondsDouble(time_diff) * MAX_ADDR_RATE_PER_SECOND;
     2             peer->m_addr_token_bucket = std::min<double>(peer->m_addr_token_bucket + increment, MAX_ADDR_PROCESSING_TOKEN_BUCKET);
     3-            if (rate_limited && vAddr.size() > peer->m_addr_token_bucket) {
     4-                num_rate_limit = (uint64_t)std::ceil(vAddr.size() - peer->m_addr_token_bucket);
     5-                LogPrint(BCLog::NET, "Rate limiting %u of %u addresses from a message from peer=%d%s\n",
     6-                         pfrom.GetId(),
     7-                         num_rate_limit,
     8-                         vAddr.size(),
     9-                         fLogIPs ? ", peeraddr=" + pfrom.addr.ToString() : "");
    10-            }
    11         }
    12         peer->m_addr_token_timestamp = current_time;
    13 
    14@@ -2828,7 +2820,8 @@ void PeerManagerImpl::ProcessMessage(CNode& pfrom, const std::string& msg_type,
    15             // Apply rate limiting.
    16             if (rate_limited) {
    17                 if (peer->m_addr_token_bucket < 1.0) {
    18-                    break;
    19+                    num_rate_limit++;
    20+                    continue;
    21                 }
    22                 peer->m_addr_token_bucket -= 1.0;
    23             }
    24@@ -2857,6 +2850,15 @@ void PeerManagerImpl::ProcessMessage(CNode& pfrom, const std::string& msg_type,
    25         }
    26         peer->m_addr_processed += num_proc;
    27         peer->m_addr_rate_limited += num_rate_limit;
    28+        if (num_rate_limit > 0) {
    29+            // Conditionally log if we rate-limited addresses from this peer.
    30+            LogPrint(BCLog::NET, "Received addr: %u addresses (%u processed, %u rate-limited) from peer=%d%s\n",
    31+                     vAddr.size(),
    32+                     num_proc,
    33+                     num_rate_limit,
    34+                     pfrom.GetId(),
    35+                     fLogIPs ? ", peeraddr=" + pfrom.addr.ToString() : "");
    36+        }
    37+
    38         m_addrman.Add(vAddrOk, pfrom.addr, 2 * 60 * 60);
    39         if (vAddr.size() < 1000) peer->m_getaddr_sent = false;
    40         if (pfrom.IsAddrFetchConn()) {
    

    (we could also log even if no addresses were rate-limited. We already log to BCLog::NET at the top of every ProcessMessage() call).


    sipa commented at 7:13 pm on July 14, 2021:
    That’s a lot cleaner; done (and made it unconditional).
  87. in src/net_processing.cpp:2804 in 759c3d4d28 outdated
    2797@@ -2777,11 +2798,40 @@ void PeerManagerImpl::ProcessMessage(CNode& pfrom, const std::string& msg_type,
    2798         std::vector<CAddress> vAddrOk;
    2799         int64_t nNow = GetAdjustedTime();
    2800         int64_t nSince = nNow - 10 * 60;
    2801+
    2802+        // Update/increment addr rate limiting bucket.
    2803+        const bool rate_limited = !pfrom.HasPermission(NetPermissionFlags::Addr);
    2804+        uint64_t num_proc = 0, num_rate_limit = 0;
    


    jnewbery commented at 9:30 am on July 14, 2021:

    sipa commented at 7:16 pm on July 14, 2021:
    Gone.
  88. in test/functional/p2p_addr_relay.py:248 in 759c3d4d28 outdated
    243+            addr_count_0 = len(self.nodes[0].getnodeaddresses(0))
    244+            assert_equal(addr_count_0, 0)
    245+
    246+            # Send 600 addresses. For all but the block-relay-only peer this should result in at least 1 address.
    247+            peer.send_and_ping(self.setup_rand_addr_msg(600))
    248+            addr_count_1 = len(self.nodes[0].getnodeaddresses(0))
    


    jnewbery commented at 10:23 am on July 14, 2021:

    Now that you’ve added addr relay statistics to getpeerinfo, you can isolate and observe the (predictable) p2p behaviour, rather than the (stochastic) addrman effects:

      0@@ -244,25 +244,55 @@ class AddrTest(BitcoinTestFramework):
      1             assert_equal(addr_count_0, 0)
      2 
      3             # Send 600 addresses. For all but the block-relay-only peer this should result in at least 1 address.
      4-            peer.send_and_ping(self.setup_rand_addr_msg(600))
      5-            addr_count_1 = len(self.nodes[0].getnodeaddresses(0))
      6-            assert_greater_than_or_equal(tokens, addr_count_1)
      7-            assert_greater_than_or_equal(addr_count_0 + 600, addr_count_1)
      8-            assert_equal(addr_count_1 > addr_count_0, tokens > 0)
      9+            addrs = 600
     10+            peer.send_and_ping(self.setup_rand_addr_msg(addrs))
     11+
     12+            peerinfo_1 = self.nodes[0].getpeerinfo()[0]
     13+            addrs_processed_1 = peerinfo_1['addr_processed']
     14+            addrs_rate_limited_1 = peerinfo_1['addr_rate_limited']
     15+            self.log.info(f"addrs_processed = {addrs_processed_1}, addrs_rate_limited = {addrs_rate_limited_1}")
     16+
     17+            if not no_relay:
     18+                assert_equal(addrs_processed_1, min(addrs, tokens))
     19+                assert_equal(addrs_rate_limited_1, addrs - min(addrs, tokens))
     20+            else:
     21+                assert_equal(addrs_processed_1, 0)
     22+                assert_equal(addrs_rate_limited_1, 0)
     23 
     24             # Send 600 more addresses. For the outbound-full-relay peer (which sends a GETADDR, and thus will
     25             # process up to 1001 incoming addresses), this means more entries will appear.
     26-            peer.send_and_ping(self.setup_rand_addr_msg(600))
     27-            addr_count_2 = len(self.nodes[0].getnodeaddresses(0))
     28-            assert_greater_than_or_equal(tokens, addr_count_2)
     29-            assert_greater_than_or_equal(addr_count_1 + 600, addr_count_2)
     30-            assert_equal(addr_count_2 > addr_count_1, tokens > 600)
     31+            new_addrs = 600
     32+            peer.send_and_ping(self.setup_rand_addr_msg(new_addrs))
     33+
     34+            addrs += new_addrs
     35+            peerinfo_2 = self.nodes[0].getpeerinfo()[0]
     36+            addrs_processed_2 = peerinfo_2['addr_processed']
     37+            addrs_rate_limited_2 = peerinfo_2['addr_rate_limited']
     38+            self.log.info(f"addrs_processed = {addrs_processed_2}, addrs_rate_limited = {addrs_rate_limited_2}")
     39+
     40+            if not no_relay:
     41+                assert_equal(addrs_processed_2, min(addrs, tokens))
     42+                assert_equal(addrs_rate_limited_2, addrs - min(addrs, tokens))
     43+            else:
     44+                assert_equal(addrs_processed_2, 0)
     45+                assert_equal(addrs_rate_limited_2, 0)
     46
     47             # Send 10 more. As we reached the processing limit for all nodes, this should have no effect.
     48-            peer.send_and_ping(self.setup_rand_addr_msg(10))
     49-            addr_count_3 = len(self.nodes[0].getnodeaddresses(0))
     50-            assert_greater_than_or_equal(tokens, addr_count_3)
     51-            assert_equal(addr_count_2, addr_count_3)
     52+            new_addrs = 10
     53+            peer.send_and_ping(self.setup_rand_addr_msg(new_addrs))
     54+
     55+            addrs += new_addrs
     56+            peerinfo_3 = self.nodes[0].getpeerinfo()[0]
     57+            addrs_processed_3 = peerinfo_3['addr_processed']
     58+            addrs_rate_limited_3 = peerinfo_3['addr_rate_limited']
     59+            self.log.info(f"addrs_processed = {addrs_processed_3}, addrs_rate_limited = {addrs_rate_limited_3}")
     60+
     61+            if not no_relay:
     62+                assert_equal(addrs_processed_3, min(addrs, tokens))
     63+                assert_equal(addrs_rate_limited_3, addrs - min(addrs, tokens))
     64+            else:
     65+                assert_equal(addrs_processed_3, 0)
     66+                assert_equal(addrs_rate_limited_3, 0)
     67 
     68             # Advance the time by 100 seconds, permitting the processing of 10 more addresses. Send 200,
     69             # but verify that no more than 10 are processed.
     70@@ -270,10 +300,21 @@ class AddrTest(BitcoinTestFramework):
     71             self.nodes[0].setmocktime(self.mocktime)
     72             new_tokens = 0 if no_relay else 10
     73             tokens += new_tokens
     74-            peer.send_and_ping(self.setup_rand_addr_msg(200))
     75-            addr_count_4 = len(self.nodes[0].getnodeaddresses(0))
     76-            assert_greater_than_or_equal(tokens, addr_count_4)
     77-            assert_greater_than_or_equal(addr_count_3 + new_tokens, addr_count_4)
     78+            new_addrs = 200
     79+            peer.send_and_ping(self.setup_rand_addr_msg(new_addrs))
     80+
     81+            addrs += new_addrs
     82+            peerinfo_4 = self.nodes[0].getpeerinfo()[0]
     83+            addrs_processed_4 = peerinfo_4['addr_processed']
     84+            addrs_rate_limited_4 = peerinfo_4['addr_rate_limited']
     85+            self.log.info(f"addrs_processed = {addrs_processed_4}, addrs_rate_limited = {addrs_rate_limited_4}")
     86+
     87+            if not no_relay:
     88+                assert_equal(addrs_processed_4, min(addrs, tokens))
     89+                assert_equal(addrs_rate_limited_4, addrs - min(addrs, tokens))
     90+            else:
     91+                assert_equal(addrs_processed_4, 0)
     92+                assert_equal(addrs_rate_limited_4, 0)
     93 
     94             # Advance the time by 1000 seconds, permitting the processing of 100 more addresses. Send 200,
     95             # but verify that no more than 100 are processed (and at least some).
     96@@ -281,11 +322,21 @@ class AddrTest(BitcoinTestFramework):
     97             self.nodes[0].setmocktime(self.mocktime)
     98             new_tokens = 0 if no_relay else 100
     99             tokens += new_tokens
    100-            peer.send_and_ping(self.setup_rand_addr_msg(200))
    101-            addr_count_5 = len(self.nodes[0].getnodeaddresses(0))
    102-            assert_greater_than_or_equal(tokens, addr_count_5)
    103-            assert_greater_than_or_equal(addr_count_4 + new_tokens, addr_count_5)
    104-            assert_equal(addr_count_5 > addr_count_4, not no_relay)
    105+            new_addrs = 200
    106+            peer.send_and_ping(self.setup_rand_addr_msg(new_addrs))
    107+
    108+            addrs += new_addrs
    109+            peerinfo_5 = self.nodes[0].getpeerinfo()[0]
    110+            addrs_processed_5 = peerinfo_5['addr_processed']
    111+            addrs_rate_limited_5 = peerinfo_5['addr_rate_limited']
    112+            self.log.info(f"addrs_processed = {addrs_processed_5}, addrs_rate_limited = {addrs_rate_limited_5}")
    113+
    114+            if not no_relay:
    115+                assert_equal(addrs_processed_5, min(addrs, tokens))
    116+                assert_equal(addrs_rate_limited_5, addrs - min(addrs, tokens))
    117+            else:
    118+                assert_equal(addrs_processed_5, 0)
    119+                assert_equal(addrs_rate_limited_5, 0)
    120 
    121             self.nodes[0].disconnect_p2ps()
    

    (Obviously, there’s a lot of duplicate code above that can be factored out into a send_and_test() routine.)


    sipa commented at 7:13 pm on July 14, 2021:
    Added as a separate commit.
  89. sipa force-pushed on Jul 14, 2021
  90. sipa force-pushed on Jul 14, 2021
  91. sipa commented at 5:40 am on July 15, 2021: member
    All comments addressed, I think.
  92. in test/functional/p2p_addr_relay.py:255 in 56c8ca2844 outdated
    250+            if not no_relay:
    251+                assert_equal(addrs_processed_1, min(addrs, tokens))
    252+                assert_equal(addrs_rate_limited_1, addrs - min(addrs, tokens))
    253+            else:
    254+                assert_equal(addrs_processed_1, 0)
    255+                assert_equal(addrs_rate_limited_1, 0)
    


    vasild commented at 7:48 am on July 15, 2021:

    This and similar statements below can be shortened:

    0            assert_equal(addrs_processed_1, min(addrs, tokens))
    1            assert_equal(addrs_rate_limited_1, 0 if no_relay else addrs - addrs_processed_1)
    
  93. vasild approved
  94. vasild commented at 7:50 am on July 15, 2021: member
    ACK 56c8ca2844fecb980cfdd9a21c881ed0616890d8
  95. in src/net_processing.cpp:249 in 023b0c75bb outdated
    244@@ -245,6 +245,10 @@ struct Peer {
    245     double m_addr_token_bucket{1.0};
    246     /** When m_addr_token_bucket was last updated */
    247     std::chrono::microseconds m_addr_token_timestamp{GetTime<std::chrono::microseconds>()};
    248+    /** Total number of addresses processed. */
    249+    std::atomic<uint64_t> m_addr_processed{0};
    


    naumenkogs commented at 9:19 am on July 15, 2021:
    nit: the name “processed” is confusing because from the first glance it’s unclear whether it includes limited or not

    sipa commented at 11:33 pm on July 15, 2021:
    Added more comments.
  96. naumenkogs commented at 9:20 am on July 15, 2021: member
    ACK 56c8ca2844fecb980cfdd9a21c881ed0616890d8
  97. jnewbery commented at 2:08 pm on July 15, 2021: member

    ACK 56c8ca2844fecb980cfdd9a21c881ed0616890d8

    If you touch this again, I suggest squashing Add logging for rate limiting and Add addr rate limiting statistics (the second commit completely reverts the changes of the first).

    I’ve made some improvements to the test here: https://github.com/jnewbery/bitcoin/tree/2021-07-addr-relay-test-changes that factors out a lot of duplicate code. Feel free to take any of those changes in this PR, or I can open a follow-up after this is merged.

  98. laanwj commented at 3:37 pm on July 15, 2021: member

    Not sure if it is related to the changes here, but I got an intermittent reprodicible fail in p2p_addrv2_relay.py locally when running with this PR on top of master (56c8ca2844fecb980cfdd9a21c881ed0616890d8).

     083/213 - p2p_addrv2_relay.py failed, Duration: 8 s
     1                                                                                       
     2stdout:                                                                                
     32021-07-15T15:33:49.927000Z TestFramework (INFO): Initializing test directory /tmp/test_runner_₿_🏃_20210715_172622/p2p_addrv2_relay_129
     42021-07-15T15:33:51.721000Z TestFramework (INFO): Create connection that sends addrv2 messages
     52021-07-15T15:33:51.825000Z TestFramework (INFO): Send too-large addrv2 message
     62021-07-15T15:33:51.890000Z TestFramework (INFO): Check that addrv2 message content is relayed and added to addrman
     72021-07-15T15:33:52.099000Z TestFramework (ERROR): Assertion failed
     8Traceback (most recent call last):                                                     
     9  File "…/bitcoin/test/functional/test_framework/test_framework.py", line 128, in main
    10    self.run_test()
    11  File "…/bitcoin/test/functional/p2p_addrv2_relay.py", line 82, in run_test
    12    assert addr_receiver.addrv2_received_and_checked
    13AssertionError
    142021-07-15T15:33:52.152000Z TestFramework (INFO): Stopping nodes
    

    Edit: ran the tests again and it happened again, seems reproducible.

  99. jnewbery commented at 4:54 pm on July 15, 2021: member

    I got an reprodicible fail in p2p_addrv2_relay.py locally when running with this PR on top of master (56c8ca2).

    This is because the bitcoin core node is now shuffling the addresses before processing/relaying them, and this test depends on the exact same addrv2 message being received by the node and relayed to another peer.

    This would fix it. Sorry for the ugly python:

     0@@ -42,7 +42,10 @@ class AddrReceiver(P2PInterface):
     1         super().__init__(support_addrv2 = True)
     2 
     3     def on_addrv2(self, message):
     4-        if ADDRS == message.addrs:
     5+        sorted_addrs_received = sorted(zip([address.ip for address in message.addrs], [address.port for address in message.addrs]))
     6+        sorted_addrs_expected = sorted(zip([address.ip for address in ADDRS], [address.port for address in ADDRS]))
     7+        if sorted_addrs_received == sorted_addrs_expected:
     8             self.addrv2_received_and_checked = True
     9 
    10     def wait_for_addrv2(self):
    

    (there’s no ordering function on CAddress objects)

  100. Rate limit the processing of incoming addr messages
    While limitations on the influence of attackers on addrman already
    exist (affected buckets are restricted to a subset based on incoming
    IP / network group), there is no reason to permit them to let them
    feed us addresses at more than a multiple of the normal network
    rate.
    
    This commit introduces a "token bucket" rate limiter for the
    processing of addresses in incoming ADDR and ADDRV2 messages.
    Every connection gets an associated token bucket. Processing an
    address in an ADDR or ADDRV2 message from non-whitelisted peers
    consumes a token from the bucket. If the bucket is empty, the
    address is ignored (it is not forwarded or processed). The token
    counter increases at a rate of 0.1 tokens per second, and will
    accrue up to a maximum of 1000 tokens (the maximum we accept in a
    single ADDR or ADDRV2). When a GETADDR is sent to a peer, it
    immediately gets 1000 additional tokens, as we actively desire many
    addresses from such peers (this may temporarily cause the token
    count to exceed 1000).
    
    The rate limit of 0.1 addr/s was chosen based on observation of
    honest nodes on the network. Activity in general from most nodes
    is either 0, or up to a maximum around 0.025 addr/s for recent
    Bitcoin Core nodes. A few (self-identified, through subver) crawler
    nodes occasionally exceed 0.1 addr/s.
    0d64b8f709
  101. Randomize the order of addr processing 5648138f59
  102. Functional tests for addr rate limiting b4ece8a1cd
  103. Add logging and addr rate limiting statistics
    Includes logging improvements by Vasil Dimov and John Newbery.
    f424d601e1
  104. sipa force-pushed on Jul 15, 2021
  105. Improve tests using statistics a4bcd687c9
  106. sipa force-pushed on Jul 15, 2021
  107. sipa commented at 11:34 pm on July 15, 2021: member
    @laanwj Fixed using a variant of @jnewbery’s suggestion. Also squashed in his commits for cleaning up the new tests.
  108. vasild approved
  109. vasild commented at 7:38 am on July 16, 2021: member
    ACK a4bcd687c934d47aa3922334e97e579caf5f8124
  110. in test/functional/p2p_addrv2_relay.py:46 in a4bcd687c9
    41@@ -42,7 +42,9 @@ def __init__(self):
    42         super().__init__(support_addrv2 = True)
    43 
    44     def on_addrv2(self, message):
    45-        if ADDRS == message.addrs:
    46+        expected_set = set((addr.ip, addr.port) for addr in ADDRS)
    47+        received_set = set((addr.ip, addr.port) for addr in message.addrs)
    


    jnewbery commented at 9:33 am on July 16, 2021:
    Much nicer!
  111. jnewbery commented at 9:35 am on July 16, 2021: member
    ACK a4bcd687c934d47aa3922334e97e579caf5f8124
  112. in test/functional/p2p_addr_relay.py:273 in a4bcd687c9
    268+                peer = self.nodes[0].add_p2p_connection(AddrReceiver())
    269+            else:
    270+                peer = self.nodes[0].add_outbound_p2p_connection(AddrReceiver(), p2p_idx=0, connection_type=contype)
    271+
    272+            # Send 600 addresses. For all but the block-relay-only peer this should result in addresses being processed.
    273+            self.send_addrs_and_test_rate_limiting(peer, no_relay, 600, 600)
    


    jonatack commented at 10:36 am on July 16, 2021:

    a4bcd687c934d47aa3 In the five send_addrs_and_test_rate_limiting calls, could use named arguments for these passed integer values.

    0            self.send_addrs_and_test_rate_limiting(peer, no_relay, new_addrs=600, total_addrs=600)
    

    jonatack commented at 2:52 pm on August 2, 2021:
    Proposed in #22604.
  113. jonatack commented at 10:40 am on July 16, 2021: member
    ACK a4bcd687c934d47aa3922334e97e579caf5f8124
  114. jonatack commented at 11:34 am on July 16, 2021: member
    Here’s a branch of this pull that adds the new stats to -netinfo, if useful to anyone for testing: https://github.com/jonatack/bitcoin/commits/netinfo-addr-statistics
  115. laanwj commented at 10:41 am on July 19, 2021: member
    ACK a4bcd687c934d47aa3922334e97e579caf5f8124
  116. laanwj merged this on Jul 19, 2021
  117. laanwj closed this on Jul 19, 2021

  118. in src/net_processing.cpp:2828 in a4bcd687c9
    2823+                if (peer->m_addr_token_bucket < 1.0) {
    2824+                    ++num_rate_limit;
    2825+                    continue;
    2826+                }
    2827+                peer->m_addr_token_bucket -= 1.0;
    2828+            }
    


    MarcoFalke commented at 3:36 pm on July 19, 2021:

    Is there a reason to increment the bucket when rate limiting is disabled? I presume you want to prepare for the future where permission flags can be changed at runtime? In that case, shouldn’t the code here be:

    0            if (peer->m_addr_token_bucket < 1.0) {
    1                if (rate_limited) {
    2                    ++num_rate_limit;
    3                    continue;
    4                }
    5            } else {
    6                peer->m_addr_token_bucket -= 1.0;
    7            }
    

    jonatack commented at 2:50 pm on August 2, 2021:
    Proposed in #22604.
  119. in src/net_processing.cpp:2859 in a4bcd687c9
    2854+        LogPrint(BCLog::NET, "Received addr: %u addresses (%u processed, %u rate-limited) from peer=%d%s\n",
    2855+                 vAddr.size(),
    2856+                 num_proc,
    2857+                 num_rate_limit,
    2858+                 pfrom.GetId(),
    2859+                 fLogIPs ? ", peeraddr=" + pfrom.addr.ToString() : "");
    


    MarcoFalke commented at 3:41 pm on July 19, 2021:

    Is there a reason to log the ip address outside of the version handshake? This seems redundant, as the ip shouldn’t change afterwards and should be easy to lookup by grepping for the handshake of the peer id.

    Otherwise this encourages to put other redundant stuff (ua-string, …) into this log messages and other log messages as well.


    jonatack commented at 2:51 pm on August 2, 2021:
    Proposed in #22604.
  120. in src/rpc/net.cpp:246 in a4bcd687c9
    241@@ -242,6 +242,8 @@ static RPCHelpMan getpeerinfo()
    242                 heights.push_back(height);
    243             }
    244             obj.pushKV("inflight", heights);
    245+            obj.pushKV("addr_processed", statestats.m_addr_processed);
    246+            obj.pushKV("addr_rate_limited", statestats.m_addr_rate_limited);
    


    MarcoFalke commented at 3:45 pm on July 19, 2021:
    is there a reason to omit this from the documentation?

    jonatack commented at 4:22 pm on July 19, 2021:
    can use the descriptions in a5cc9e28f9e125a62168dcbe0b3484d098e56c1f if so inclined

    jonatack commented at 2:51 pm on August 2, 2021:
    helps added in #22604.
  121. MarcoFalke commented at 3:57 pm on July 19, 2021: member
    post-merge cr ACK
  122. sidhujag referenced this in commit d2db5ff149 on Jul 23, 2021
  123. sipa referenced this in commit 325bf3b6fc on Jul 28, 2021
  124. sipa referenced this in commit 6c32ceb979 on Jul 28, 2021
  125. sipa referenced this in commit 6da0776042 on Jul 28, 2021
  126. sipa referenced this in commit a4ae2a6244 on Jul 28, 2021
  127. fanquake commented at 11:57 pm on July 28, 2021: member
    Backported in #22569.
  128. sipa referenced this in commit 55fcbde5a9 on Jul 29, 2021
  129. sipa referenced this in commit 4534aae4f7 on Jul 29, 2021
  130. sipa referenced this in commit 6dec444ca2 on Jul 29, 2021
  131. sipa referenced this in commit b65129e8e3 on Jul 29, 2021
  132. sipa referenced this in commit 651216e70b on Jul 29, 2021
  133. sipa referenced this in commit 1fc214f7fd on Jul 29, 2021
  134. sipa referenced this in commit 5cf36bbdee on Jul 29, 2021
  135. sipa referenced this in commit d21ebf6224 on Jul 29, 2021
  136. sipa referenced this in commit 4e6661fe5c on Jul 29, 2021
  137. sipa referenced this in commit 83dfe6c65e on Aug 5, 2021
  138. sipa referenced this in commit 8df3e5bd84 on Aug 5, 2021
  139. sipa referenced this in commit aaa4833fc9 on Aug 5, 2021
  140. sipa referenced this in commit a653aacbd6 on Aug 5, 2021
  141. MarcoFalke referenced this in commit 4b523c8f0a on Aug 6, 2021
  142. fanquake referenced this in commit 4c87665707 on Aug 14, 2021
  143. luke-jr referenced this in commit 2af73be906 on Dec 15, 2021
  144. Fabcien referenced this in commit a1509f778a on Feb 1, 2022
  145. Fabcien referenced this in commit b9ceb82661 on Feb 1, 2022
  146. stickies-v referenced this in commit 716a21d728 on Mar 24, 2022
  147. gwillen referenced this in commit d4c71593bb on Jun 1, 2022
  148. DrahtBot locked this on Aug 18, 2022

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2024-07-01 10:13 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me