5

I decided to prune my Bitcoin core node to 25 GB. With the blocks that the node has in its data directory (the ones that were not deleted), does such a node support the syncing of other nodes in the network? Moreover, let us imagine a new node that has just joined the network, let's say that has managed to download the first 10GB of data with his pruning set to 25GB. In such an early state, before pruning kicked in, does such a node serve the subset of the blocks that it has to the network?

Let the scope of this question be limited to the issue of syncing the blockchain data. I'm well aware of the advantages of using a pruned node as a wallet when compared to custodial services. There is already a question somewhat relevant to the matter and the answer to it suggests that as of May 2017, there is no way for pruned nodes to serve the subset of old blocks that they have. Is it still the case? Moreover, the answer to it does not refer to the second matter of serving a subset of blocks by a pruned node in which the pruning hasn't yet started. Although I came across some resources and opinions on pruning, none of them elucidated the matter of syncing to me.

2 Answers 2

5

As Pseudonymous already stated, pruned nodes do not advertise the NODE_NETWORK service, which indicates that a node will serve the full history of blocks. Corollary, a pruned node will not assist other nodes in their initial synchronization.

However, since Bitcoin Core 0.16, pruned nodes advertise NODE_NETWORK_LIMITED as specified by BIP159. A node advertising NODE_NETWORK_LIMITED indicates that it will serve the most recent 288 blocks. The pruned node can thusly serve peers blocks to catch up on gaps of less than two days and service requests for Merkle branches by light clients covering that period. Pruned nodes also relay information about peer nodes, transaction inventory and new blocks.

Even if pruned nodes have more than 288 blocks worth of data, they will not serve larger depths to prevent fingerprinting per the amount of data they store.

2
  • 1
    Do all pruned nodes advertise NODE_NETWORK_LIMITED by default? Or do I have to specify it somehow in bitcoin.conf?
    – John Smith
    Commented Jan 21, 2021 at 14:55
  • 2
    Assuming that you run a version newer than 0.16, you should not need to do anything. If you find that your node doesn't have any incoming connections, you may want to check whether it's set to listen and the node's port is available to the internet.
    – Murch
    Commented Jan 21, 2021 at 15:00
7

does such a node support the syncing of other nodes in the network?

Nodes that are pruned unset the NODE_NETWORK flag, which means that they don't advertise themselves as a potential source for block synchronization. Nodes won't consider peers without this flag as a potential source for downloading blocks.

In such an early state, before pruning kicked in, does such a node serve the subset of the blocks that it has to the network?

The same flag is not set here either. During sync most nodes are typically at 100% utilization and tend to behave very sluggishly, so they wouldn't be a particularly good source for anybody else.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.