HomePhabricator

Send BIP37 fRelay as false

Description

Send BIP37 fRelay as false

Summary:
Backport of https://github.com/sipa/bitcoin-seeder/commit/36bd7f9a0f14b79e889715a05d71be1035f2a96b

This reduces network resource usage of the seeder by opting out of INV messaging from peers.

Relevant clipping from BIP37:

SPV clients that wish to use Bloom filtering would normally set fRelay to false in the version message, then set a filter based on their wallet (or a subset of it, if they are overlapping different peers). Being able to opt-out of inv messages until the filter is set prevents a client being flooded with traffic in the brief window of time between finishing version handshaking and setting the filter.

Source: https://github.com/bitcoin/bips/blob/master/bip-0037.mediawiki#extensions-to-existing-messages

Test Plan:
Add this line as the first line of CSeederNode::ProcessMessage() in bitcoin.cpp:

tfm::format(std::cout, "RECV %s\n", strCommand);

Without the patch applied, you will see periodic activity from INV messages.
With the patch, you will not see these.

Reviewers: O1 Bitcoin ABC, #bitcoin_abc, PiRK

Reviewed By: O1 Bitcoin ABC, #bitcoin_abc, PiRK

Differential Revision: https://reviews.bitcoinabc.org/D10125

Details

Provenance
Pieter Wuille <pieter.wuille@gmail.com>Authored on Aug 9 2019, 23:56
thonkleCommitted on Sep 17 2021, 03:31
thonklePushed on Sep 17 2021, 03:31
Reviewer
Restricted Owners Package
Differential Revision
D10125: Send BIP37 fRelay as false
Parents
rABC0d9a4b367371: [Cashtab] Patch decimal parsing of params in wallet, extension, and components
Branches
Unknown
Tags
Unknown

Event Timeline