diff --git a/doc/release-notes.md b/doc/release-notes.md --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -3,3 +3,14 @@ This release includes the following features and fixes: + +P2P Changes +----------- +- The default value for the -peerbloomfilters configuration option (and, thus, + NODE_BLOOM support) has been changed to false. This resolves well-known DoS + vectors in Bitcoin ABC, especially for nodes with spinning disks. It is not + anticipated that this will result in a significant lack of availability of + NODE_BLOOM-enabled nodes in the coming years, however, clients which rely on + the availability of NODE_BLOOM-supporting nodes on the P2P network should + consider the process of migrating to a more modern (and less trustful and + privacy-violating) alternative over the coming years. diff --git a/src/net_processing.h b/src/net_processing.h --- a/src/net_processing.h +++ b/src/net_processing.h @@ -28,6 +28,7 @@ /** Default for BIP61 (sending reject messages) */ static constexpr bool DEFAULT_ENABLE_BIP61{false}; +static const bool DEFAULT_PEERBLOOMFILTERS = false; class PeerLogicValidation final : public CValidationInterface, public NetEventsInterface { diff --git a/src/validation.h b/src/validation.h --- a/src/validation.h +++ b/src/validation.h @@ -153,8 +153,6 @@ /** Maximum number of unconnecting headers announcements before DoS score */ static const int MAX_UNCONNECTING_HEADERS = 10; -static const bool DEFAULT_PEERBLOOMFILTERS = true; - /** Default for -stopatheight */ static const int DEFAULT_STOPATHEIGHT = 0; /** Default for -maxreorgdepth */ diff --git a/test/functional/p2p_node_network_limited.py b/test/functional/p2p_node_network_limited.py --- a/test/functional/p2p_node_network_limited.py +++ b/test/functional/p2p_node_network_limited.py @@ -13,7 +13,6 @@ msg_getdata, msg_verack, NODE_BITCOIN_CASH, - NODE_BLOOM, NODE_NETWORK_LIMITED, ) from test_framework.mininode import ( @@ -70,7 +69,7 @@ def run_test(self): node = self.nodes[0].add_p2p_connection(P2PIgnoreInv()) - expected_services = NODE_BLOOM | NODE_BITCOIN_CASH | NODE_NETWORK_LIMITED + expected_services = NODE_BITCOIN_CASH | NODE_NETWORK_LIMITED self.log.info("Check that node has signalled expected services.") assert_equal(node.nServices, expected_services) diff --git a/test/functional/test_framework/messages.py b/test/functional/test_framework/messages.py --- a/test/functional/test_framework/messages.py +++ b/test/functional/test_framework/messages.py @@ -47,7 +47,7 @@ NODE_NETWORK = (1 << 0) # NODE_GETUTXO = (1 << 1) -NODE_BLOOM = (1 << 2) +# NODE_BLOOM = (1 << 2) # NODE_WITNESS = (1 << 3) NODE_XTHIN = (1 << 4) NODE_BITCOIN_CASH = (1 << 5)