<p>Pruned nodes do not advertise <code>NODE_NETWORK</code>. Thus, peers will not request buried blocks from them. However, <strong>pruned nodes relay blocks at the chain-tip and newly received transactions to their peers.</strong></p>
<p>In 2017, <a href="https://github.com/bitcoin/bips/blob/master/bip-0159.mediawiki" rel="nofollow noreferrer">BIP159: <code>NODE_NETWORK_LIMITED</code> service bit</a> (<a href="https://github.com/bitcoin/bitcoin/pull/10387" rel="nofollow noreferrer">Pull Request</a>) proposed an additional service flag with which pruned nodes could advertise being able to serve the latest 288 blocks and thus most of the lightweight client requests. Support for <code>NODE_NETWORK_LIMITED</code> was then added in 2018 with Bitcoin Core v0.16.0 signaling <code>NODE_NETWORK_LIMITED</code> and Bitcoin Core v0.17.0 starting to make outbound connections to nodes signaling <code>NODE_NETWORK_LIMITED</code>.</p>

CC BY-SA 4.0
2017-11-19T21:40:46.667Z
2022-06-05T18:27:04.560Z
2022-06-05T18:27:04.560Z
Murch
<p>A pruning node will trim the number of transactions you need to store. In the most extreme cases, they can store just the UTXO set and the most recent couple blocks, but the degree of pruning is variable, and up to the node operator. Think of it like this:</p>

<pre><code>Alice sends 5 BTC from address 1www to Bob, at address 1xxx. 

Bob sends 2 BTC to Carl at address 1yyy, and 3 BTC to Dave at address 1zzz.

Carl sends his 2 BTC to Dave at address 1zzz.
</code></pre>

<p>A normal node would need to store all the intermediate data, that is, (Alice -> Bob), (Bob -> Carl), (Bob -> Dave), (Carl -> Dave). </p>

<p>A pruning node, however, only <em>needs</em> to store the final link in each step. If Alice has no more coins in her address, there is no need to keep it around, you can safely discard it. The pruning node would only contain the data for the UTXO set, in this case, the 5 coins that Dave has.</p>

<p>Pruning nodes can validate transactions, verify that the sender does in fact have coins to send, and relay them to the rest of the network. They can also be used by the owner to check their balance completely privately, no need to ask someone else who has a copy of the pruned chain.</p>

CC BY-SA 3.0
2016-01-11T23:52:20.987Z
Sorry, but it seems to me that you think I'm asking about SPV clients which I'm not.
Murch
CC BY-SA 3.0
2016-01-11T23:54:22.100Z
I'm in the middle of updating the answer to be less brief. I believe i'm addressing your question at the end (that is, what a pruning node can do for the network).
LivingInformation
CC BY-SA 3.0
2016-01-11T23:57:44.567Z
Okay, but pruning nodes do keep part of the blockchain, just not all of it.
Murch
CC BY-SA 3.0
2016-01-11T23:58:59.630Z
I believe I indicated that in my answer, I'm definitely describing a pruning node and not an SPV client. Which part of the answer are you addressing?
LivingInformation
CC BY-SA 3.0
2016-01-12T00:06:21.783Z
The part where you say it only keeps the utxo set. A pruning node is an instance of `bitcoind` that does have the utxo set and `n` MiB of the blockchain. In my case that is 20,000 MiB. I'm wondering whether my node serves these blocks to peers as full nodes without pruning do, and especially whether it can serve SPV clients - which I doubt, but if they are asking about recent nodes would be a possibility.
Murch
CC BY-SA 3.0
2016-01-12T09:50:33.840Z
No, a node with `prune` doesn't advertise itself as able to serve blocks.
Claris
CC BY-SA 3.0
2017-06-22T03:37:16.273Z
The minimum you can keep with pruning is a couple of *days* worth of blocks, not a couple of blocks.
imoatama
CC BY-SA 3.0
2016-01-11T23:48:11.297Z
2016-01-12T00:22:35.210Z
2016-01-12T00:22:35.210Z
LivingInformation
<p>From release notes <a href="https://bitcoin.org/en/release/v0.11.0" rel="noreferrer">https://bitcoin.org/en/release/v0.11.0</a> :</p>

<blockquote>
  <p>For now, block pruning disables block relay. In the future, nodes with block pruning will at a minimum relay “new” blocks, meaning blocks that extend their active chain.</p>
</blockquote>

<p>In the current version pruning nodes don't advertise themselves as having any blocks, so they don't upload blocks. So that explains your big reduction in upstream data. A future update will re-enable block relay in such a way that your nodes can efficiently let its peers know which blocks it owns and which it doesn't.</p>

<p>Yes your pruning node will do full validation and it will service lightweight nodes.</p>

CC BY-SA 3.0
2017-03-11T11:14:12.047Z
This answer should be updated to reflect the behavior of current versions. AFAIK, new versions of Core can now serve the blocks they have in store.
Murch
CC BY-SA 3.0
2017-11-19T21:46:16.223Z
They always could relay new blocks - ever since the feature was introduced in 0.11. However, until BIP159 is implemented, they can't advertize the fact that they will do so. As a result, in practice it won't serve any light clients.
Pieter Wuille
CC BY-SA 3.0
2016-01-12T13:29:51.737Z
2016-01-12T13:29:51.737Z
Jannes
<p>Pruning nodes are described in the <a href="https://bitcoin.stackexchange.com/a/35987/5406">sourcecode</a> thusly:  </p>

<blockquote>
  <p><code>-prune=&lt;n&gt;</code>: Reduce storage requirements by pruning (deleting) old blocks. This mode is incompatible with <code>-txindex</code> and <code>-rescan</code>.</p>
</blockquote>

<p>I’ve watched that my node has been consistently uploading less than it has been downloading since I set it to run in pruning mode.</p>

<ul>
<li>What services do pruning nodes still perform?</li>
<li>Do they upload blocks and transactions? </li>
<li>Can they service thin clients? </li>
<li>What can a pruning node <strong>not</strong> do, that a non-pruning node does?</li>
</ul>

<nodes><pruning><node-services>
What do pruning nodes contribute to the network?
Murch
# What do pruning nodes contribute to the network?

(Asked by: username_0 on 2016-01-11)

Pruning nodes are described in the [sourcecode](https://bitcoin.stackexchange.com/a/35987/5406) thusly:

> `-prune=<n>`: Reduce storage requirements by pruning (deleting) old blocks. This mode is incompatible with `-txindex` and `-rescan`.

I’ve watched that my node has been consistently uploading less than it has been downloading since I set it to run in pruning mode.

* What services do pruning nodes still perform?
* Do they upload blocks and transactions?
* Can they service thin clients?
* What can a pruning node **not** do, that a non-pruning node does?

**Tags:** nodes, pruning, node-services


---

## 3 answers

### Answer by username_4 on 2016-01-12. Score: 5 | Accepted answer

From release notes <https://bitcoin.org/en/release/v0.11.0> :

> For now, block pruning disables block relay. In the future, nodes with block pruning will at a minimum relay “new” blocks, meaning blocks that extend their active chain.

In the current version pruning nodes don't advertise themselves as having any blocks, so they don't upload blocks. So that explains your big reduction in upstream data. A future update will re-enable block relay in such a way that your nodes can efficiently let its peers know which blocks it owns and which it doesn't.

Yes your pruning node will do full validation and it will service lightweight nodes.

> **Comments:**
> **username_0**: This answer should be updated to reflect the behavior of current versions. AFAIK, new versions of Core can now serve the blocks they have in store.  
> **username_5**: They always could relay new blocks - ever since the feature was introduced in 0.11. However, until BIP159 is implemented, they can't advertize the fact that they will do so. As a result, in practice it won't serve any light clients.  

---

### Answer by username_0 on 2017-11-19. Score: 4

Pruned nodes do not advertise `NODE_NETWORK`. Thus, peers will not request buried blocks from them. However, **pruned nodes relay blocks at the chain-tip and newly received transactions to their peers.**

In 2017, [BIP159: `NODE_NETWORK_LIMITED` service bit](https://github.com/bitcoin/bips/blob/master/bip-0159.mediawiki) ([Pull Request](https://github.com/bitcoin/bitcoin/pull/10387)) proposed an additional service flag with which pruned nodes could advertise being able to serve the latest 288 blocks and thus most of the lightweight client requests. Support for `NODE_NETWORK_LIMITED` was then added in 2018 with Bitcoin Core v0.16.0 signaling `NODE_NETWORK_LIMITED` and Bitcoin Core v0.17.0 starting to make outbound connections to nodes signaling `NODE_NETWORK_LIMITED`.


---

### Answer by username_1 on 2016-01-11. Score: 0

A pruning node will trim the number of transactions you need to store. In the most extreme cases, they can store just the UTXO set and the most recent couple blocks, but the degree of pruning is variable, and up to the node operator. Think of it like this:

```
Alice sends 5 BTC from address 1www to Bob, at address 1xxx. 

Bob sends 2 BTC to Carl at address 1yyy, and 3 BTC to Dave at address 1zzz.

Carl sends his 2 BTC to Dave at address 1zzz.

```

A normal node would need to store all the intermediate data, that is, (Alice -> Bob), (Bob -> Carl), (Bob -> Dave), (Carl -> Dave).

A pruning node, however, only *needs* to store the final link in each step. If Alice has no more coins in her address, there is no need to keep it around, you can safely discard it. The pruning node would only contain the data for the UTXO set, in this case, the 5 coins that Dave has.

Pruning nodes can validate transactions, verify that the sender does in fact have coins to send, and relay them to the rest of the network. They can also be used by the owner to check their balance completely privately, no need to ask someone else who has a copy of the pruned chain.

> **Comments:**
> **username_0**: Sorry, but it seems to me that you think I'm asking about SPV clients which I'm not.  
> **username_1**: I'm in the middle of updating the answer to be less brief. I believe i'm addressing your question at the end (that is, what a pruning node can do for the network).  
> **username_0**: Okay, but pruning nodes do keep part of the blockchain, just not all of it.  
> **username_1**: I believe I indicated that in my answer, I'm definitely describing a pruning node and not an SPV client. Which part of the answer are you addressing?  
> **username_0**: The part where you say it only keeps the utxo set. A pruning node is an instance of `bitcoind` that does have the utxo set and `n` MiB of the blockchain. In my case that is 20,000 MiB. I'm wondering whether my node serves these blocks to peers as full nodes without pruning do, and especially whether it can serve SPV clients - which I doubt, but if they are asking about recent nodes would be a possibility.  
> **username_2**: No, a node with `prune` doesn't advertise itself as able to serve blocks.  
> **username_3**: The minimum you can keep with pruning is a couple of *days* worth of blocks, not a couple of blocks.  

---

