<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>

CC BY-SA 3.0
2016-06-13T14:04:54.397Z
Blocks only is not "similar to SPV". It's more like the opposite of SPV.
Jannes
CC BY-SA 3.0
2016-06-14T10:45:45.897Z
@Jannes: it uses a flag that was introduced in BIP37, to tell the peer "Do not send me transactions until I have uploaded a filter and tell you I'm ready", and then never send a filter.
Pieter Wuille
CC BY-SA 3.0
2016-06-14T11:30:38.467Z
Aah... in that way similar. I was thinking at a higher levels. Get it. Thanks for correcting me.
Jannes
CC BY-SA 3.0
2016-06-13T03:59:42.380Z
2016-06-13T03:59:42.380Z
Mark S.
<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>

CC BY-SA 3.0
2016-06-14T08:36:29.827Z
2016-06-14T08:36:29.827Z
Murch
<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>

<unconfirmed-transactions><relay><full-node>
Does the `blocksonly` setting prevent other nodes from sending my node unconfirmed transaction, or does it simply cause my node to ignore them?
Jestin
# Does the `blocksonly` setting prevent other nodes from sending my node unconfirmed transaction, or does it simply cause my node to ignore them?

(Asked by: username_0 on 2016-06-13)

I've seen this option [discussed](https://bitcointalk.org/index.php?topic=1377345.0), 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?

**Tags:** unconfirmed-transactions, relay, full-node


---

## 2 answers

### Answer by username_1 on 2016-06-13. Score: 3 | Accepted answer

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.

> **Comments:**
> **username_2**: Blocks only is not "similar to SPV". It's more like the opposite of SPV.  
> **username_3**: @username_2: it uses a flag that was introduced in BIP37, to tell the peer "Do not send me transactions until I have uploaded a filter and tell you I'm ready", and then never send a filter.  
> **username_2**: Aah... in that way similar. I was thinking at a higher levels. Get it. Thanks for correcting me.  

---

### Answer by username_4 on 2016-06-14. Score: 1

I've just read the complete description of the [messages in Bitcoin Core](https://bitcoin.org/en/developer-reference#data-messages), 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.


---

