BIP 159
Defines the NODE_NETWORK_LIMITED service bit, letting pruned nodes announce that they serve only recent blocks.
BIP-159 defines the NODE_NETWORK_LIMITED service bit, which lets a Bitcoin node advertise that it stores only recent blocks (typically the last 288 blocks, about 2 days) rather than the full chain.
The point: not every node needs the full chain to be useful. A node that serves the last 2 days of blocks can still:
- Help peers stay in sync when they're catching up on recent activity.
- Validate the current chain tip for itself.
- Relay new transactions and blocks as they come in.
What it gives up: the ability to serve historical blocks to fresh-syncing peers doing an initial download from genesis. Those peers need at least some full-history peers to bootstrap.
Why this matters:
- Pruned nodes can announce themselves cleanly. Bitcoin Core's pruning mode (which automatically discards old blocks after a configurable size limit) was awkward without NODE_NETWORK_LIMITED - other peers might try to request old blocks from a pruned node and get refused. BIP-159 lets the pruned node announce its capability upfront.
- More nodes can run on small hardware. Storing 2 days of blocks takes far less space than keeping the full history, which Bitcoin Core 31 estimates needs at least 870 GB of disk (October 2026). Raspberry Pi-class nodes become more viable.
- The network gets more nodes total. Lowering the disk requirement increases participation.
The fresh-sync problem (someone has to serve historical blocks to new nodes) is real but solvable: the network needs some full-history nodes, not all nodes to be full-history. As long as enough full nodes exist, NODE_NETWORK_LIMITED nodes can fill in the bulk of recent-block-serving demand.
This is one of the small, sustained improvements that have made running a Bitcoin node more accessible over the years.
Key takeaways
- Lets pruned nodes announce that they keep at least the last 288 blocks
- Keeps peers from asking pruned nodes for old blocks they no longer have
- Bitcoin Core has signaled it since v0.16.0 and connects to such peers since v0.17.0
Corrected
Was: The entry's summary said BIP 159 proposed a NODE_FILTERS service bit for Bloom or compact filters, and its key points called it filter-related and not widely implemented.
Now: BIP 159 defines the NODE_NETWORK_LIMITED service bit, which lets a pruned node announce that it serves at least the last 288 blocks. The BIP is marked Deployed, and Bitcoin Core has signaled the bit since version 0.16.0 and connected to such peers since 0.17.0. Details
Sources (4)
- Bitcoin Core 31 - chainparams.cpp (mainnet disk guidelines 856 and 14)
- Bitcoin Core 31 - intro.cpp (the setup screen adds the two figures and says at least 870 GB of data will be stored)
- BIP 159 - NODE_NETWORK_LIMITED service bit (status Deployed; pruned peers must serve at least the last 288 blocks)
- Bitcoin Core - bips.md (NODE_NETWORK_LIMITED signaled as of v0.16.0, such peers connected to as of v0.17.0)