BIP 159
一句话定义: 定义 NODE_NETWORK_LIMITED 服务位:节点可以公告自己只保留最近区块,不必存全链。
BIP-159 定义 NODE_NETWORK_LIMITED 服务位,让比特币节点公告自己只存储最近的区块(通常是最近 288 个,约 2 天),而不是完整的历史链。
要点:不是每个节点都必须存全链才有用。只服务最近 2 天区块的节点仍然可以:
- 在对端追赶最近活动时,帮它们保持同步。
- 自行验证当前链尖。
- 转发新交易和新区块。
它放弃的:向从创世区块做初次同步的对端提供历史区块的能力。那些对端至少需要一些全历史节点来引导。
这为什么要紧:
- 修剪节点可以干净地自报家门。 Bitcoin Core 的修剪模式(超过可配置的容量上限后自动丢弃旧区块)在 NODE_NETWORK_LIMITED 出现之前很尴尬——其他对端可能向修剪节点请求旧区块然后被拒。BIP-159 让修剪节点把能力提前说清楚。
- 更多节点能跑在小硬件上。 存 2 天区块远小于存 600+ GB 的全部历史。树莓派级别的节点更可行。
- 网络总节点数变多。 降低磁盘门槛提高参与度。
初次同步问题(总得有节点向新节点提供历史区块)真实存在但可解:网络需要的是一部分全历史节点,不是全部节点都做全历史。只要有足够的全节点在,NODE_NETWORK_LIMITED 节点就能分担掉大部分近期区块的服务需求。
这是让运行比特币节点逐年变得更平易的那些细水长流的改进之一。
相关词条: BIP(比特币改进提案) · Bitcoin Core · 节点(Node) · 节点自动封禁(Autoban) · 节点同步(Node Synchronization)