From cce0c5b41689a88d15f4631418151e099fd20ebe Mon Sep 17 00:00:00 2001 From: Jon Atack Date: Tue, 4 Feb 2025 16:43:37 -0600 Subject: [PATCH] Improve NODE_NETWORK_LIMITED documentation per BIP159 --- src/bitcoin-cli.cpp | 2 +- src/net_processing.cpp | 6 +++--- src/protocol.h | 5 ++--- 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/src/bitcoin-cli.cpp b/src/bitcoin-cli.cpp index 1b2d97faff5..d49b4eebc91 100644 --- a/src/bitcoin-cli.cpp +++ b/src/bitcoin-cli.cpp @@ -704,7 +704,7 @@ public: " \"b\" - BLOOM: peer can handle bloom-filtered connections (see BIP 111)\n" " \"w\" - WITNESS: peer can be asked for blocks and transactions with witness data (SegWit)\n" " \"c\" - COMPACT_FILTERS: peer can handle basic block filter requests (see BIPs 157 and 158)\n" - " \"l\" - NETWORK_LIMITED: peer limited to serving only the last 288 blocks (~2 days)\n" + " \"l\" - NETWORK_LIMITED: peer can serve at least the last 288 blocks (~2 days); see BIP 159\n" " \"2\" - P2P_V2: peer supports version 2 P2P transport protocol, as defined in BIP 324\n" " \"u\" - UNKNOWN: unrecognized bit flag\n" " v Version of transport protocol used for the connection\n" diff --git a/src/net_processing.cpp b/src/net_processing.cpp index 1da3ec9d211..787aac14513 100644 --- a/src/net_processing.cpp +++ b/src/net_processing.cpp @@ -1102,8 +1102,8 @@ static bool CanServeBlocks(const Peer& peer) return peer.m_their_services & (NODE_NETWORK|NODE_NETWORK_LIMITED); } -/** Whether this peer can only serve limited recent blocks (e.g. because - * it prunes old blocks) */ +/** Whether this is a BIP159 peer that can only serve limited recent blocks + * (e.g. because it prunes old blocks) */ static bool IsLimitedPeer(const Peer& peer) { return (!(peer.m_their_services & NODE_NETWORK) && @@ -1476,7 +1476,7 @@ void PeerManagerImpl::FindNextBlocks(std::vector& vBlocks, c return; } - // Don't request blocks that go further than what limited peers can provide + // Don't request blocks beyond the minimum number that BIP159 limited peers must be able to provide. if (is_limited_peer && (state->pindexBestKnownBlock->nHeight - pindex->nHeight >= static_cast(NODE_NETWORK_LIMITED_MIN_BLOCKS) - 2 /* two blocks buffer for possible races */)) { continue; } diff --git a/src/protocol.h b/src/protocol.h index 804597b86d8..61fa5c20294 100644 --- a/src/protocol.h +++ b/src/protocol.h @@ -321,9 +321,8 @@ enum ServiceFlags : uint64_t { // NODE_COMPACT_FILTERS means the node will service basic block filter requests. // See BIP157 and BIP158 for details on how this is implemented. NODE_COMPACT_FILTERS = (1 << 6), - // NODE_NETWORK_LIMITED means the same as NODE_NETWORK with the limitation of only - // serving the last 288 (2 day) blocks - // See BIP159 for details on how this is implemented. + // NODE_NETWORK_LIMITED indicates that the node can serve at least the last + // 288 blocks (~2 days). See BIP159 for details on how this is implemented. NODE_NETWORK_LIMITED = (1 << 10), // NODE_P2P_V2 means the node supports BIP324 transport