user24974: I've seen this option discussed, but I don't have a clear understanding of what is going on.  Since this setting appears to reduce node bandwidth by as much as 88%, I assume it somehow communicates to other nodes that this traffic is unwelcome, but I don't understand the mechanism.  Can someone elaborate?

user5406: I've just read the complete description of the messages in Bitcoin Core, and it seems to me that there is no special announcement the node performs to tell its peers that it doesn't wish to be informed about transactions. I thought that it might announce its disinterest in transactions in the version message, but the service announcements don't seem to include such a flag.
Therefore, it seems to me that the node would just not follow up on inv messages announcing transactions, but only on inv messages announcing blocks. Especially, it doesn't supply any data on receiving a mempool message, but it does seem to serve getblocks requests.

user6256: This allows the bitcoin node to operate similar to a SPV client.  These nodes advertise their capabilities to other nodes as they peer with them.  A node running in blocksonly mode will indicate that it does not want to receive inv messages from any other peers.  Nodes can supply a bloom filter if they are interested in messages for specific address(es), this is also using the same mechanisms that were designed for SPV nodes.

24974: <p>I've seen this option <a href="https://bitcointalk.org/index.php?topic=1377345.0" rel="nofollow">discussed</a>, but I don't have a clear understanding of what is going on.  Since this setting appears to reduce node bandwidth by as much as 88%, I assume it somehow communicates to other nodes that this traffic is unwelcome, but I don't understand the mechanism.  Can someone elaborate?</p>
 5406: <p>I've just read the complete description of the <a href="https://bitcoin.org/en/developer-reference#data-messages" rel="nofollow">messages in Bitcoin Core</a>, and it seems to me that there is no special announcement the node performs to tell its peers that it doesn't wish to be informed about transactions. I thought that it might announce its disinterest in transactions in the <code>version</code> message, but the service announcements don't seem to include such a flag.</p>

<p>Therefore, it seems to me that the node would just not follow up on <code>inv</code> messages announcing transactions, but only on <code>inv</code> messages announcing blocks. Especially, it doesn't supply any data on receiving a <code>mempool</code> message, but it does seem to serve <code>getblocks</code> requests.</p>
 6256: <p>This allows the bitcoin node to operate similar to a SPV client.  These nodes advertise their capabilities to other nodes as they peer with them.  A node running in blocksonly mode will indicate that it does not want to receive inv messages from any other peers.  Nodes can supply a bloom filter if they are interested in messages for specific address(es), this is also using the same mechanisms that were designed for SPV nodes.</p>
