只收块不收交易:比特币节点 blocksonly 模式的省与失 图 1
只收块不收交易:比特币节点 blocksonly 模式的省与失 · 图 1

节点的两种世界观:带内存池和不带

多数人对全节点的印象是“同步区块、顺带看一眼待打包交易”,其实后者是个可选项。比特币核心提供 -blocksonly 开关:开启后节点拒绝接收来自对等体的未确认交易——只跟随已确认的区块世界。v29.0 的选项说明原文值得逐句读:拒绝来自网络对端的交易;禁用交易的自动广播与重广播,除非来源对端拥有强制中继许可;RPC 途径不受影响;默认关闭。

省掉的三笔账

带宽是最大头:未确认交易的中继(inv 加 tx 消息)在部分节点上占传输量的一到两成(Bitcoin Optech 相关专题的量级),开启后这部分流量趋近于零,只剩区块与握手消息。内存与磁盘是第二笔:内存池本体以及它的持久化文件(persistmempool 机制在正常模式默认开启)不再积累,内存压力大的小机器受益尤其明显。第三笔是 CPU:交易级校验(脚本执行、签名验证)在接收路径上整体停摆——注意这个省法有安全含义,下面会说它并非白捡。

付出的视野清单

零确认交易:mempool 空转意味着交易在进块之前对你的节点完全不可见——任何依赖“看 mempool 判断对方是否广播了”的核对流程失效,这对商户侧零确认收款逻辑是釜底抽薪(本来也不该信零确认,此处只是让“连看都看不到”变成显式事实)。费率视野:钱包的费率估算依赖观察历史交易如何被确认,交易视野收窄会削弱估算的本地依据;RBF 机会同样看不见——别人替换了什么、双花尝试如何在内存池翻滚,你都没有第一现场。隐私维度值得单独一句:节点广播自己钱包交易的路径依赖与其他节点的连接行为,交易视野缺失后这类关联判断更无从下手,属于间接但真实的弱化。此外,如果你把节点兼作个人钱包后端,开启前务必实测一次完整支付流程——钱包自身的交易经 RPC 提交不受“拒绝来源对端交易”影响,但一些自动重发逻辑的帮助文本已明确会被禁用。

适合谁,怎么安全地开

画像清晰:只为归档研究同步历史数据的存储节点、带宽按量计费的应急 VPS、极端内存受限的设备,这三类是 blocksonly 的正经用户;任何日常支付、跑闪电节点、给他人提供完整服务场景,都应当保持默认(关闭)。操作步骤朴素:配置加 -blocksonly=1 重启,用 getmempoolinfo 确认 size 恒为零即可。想反悔也只需删除选项重启,内存池由已确认链与后续网络自然重建,无数据损坏风险。最后给出中间态提醒:如果你开它的真实动机只是“省流量”,而你的节点并不缺交易视野,可以先试 -maxuploadtarget 之类的限额方案,或收紧内存池上限,它们保留交易世界只削体量,比一刀切的 blocksonly 温和得多。

一个常见追问

“只收区块会不会降低我对区块正确性的验证?”不会——区块校验路径(UTXO 更新、脚本校验、工作量证明)一行不少,你的节点依然独立验证每一个块;省掉的是接收交易的校验路径,这是带宽账不是信任账。真正被改变的是你的信息视野而非验证强度,这正是理解这个开关的分界线。再给一个组合拳思路:带宽与内存双紧张的环境可以把 blocksonly 与节点整体降配方案叠加使用,但请记住每一层削减都各自有独立代价,先关交易视野、再砍内存池、最后才考虑其他,按对验证完整性影响从小到大排序动手,出问题时也便于逐层回退定位。

风险提示:本文为节点配置说明,不构成投资建议;选项行为以实际运行版本的官方说明为准,开启前请评估自身使用场景。