两套规则:共识与政策
区块链节点校验交易时其实拿着两套清单。第一套是共识规则:签名对不对、输入是否存在、脚本是否通过——违反它,区块作废,全节点都会抛弃出块者。第二套是节点政策(policy):内存池收多大体积、接受多小的输出、允不允许某类脚本——违反它只会让节点对你说”不”,但交易仍可能被别的路径打包。“合规交易被拒”几乎都发生在第二套清单上:交易合法,但某个节点决定不为它记账资源。这个分层设计是有意的:政策要能快速调整以应对滥用,共识规则则十年难动。
内存池的三道闸门
容量:比特币 Core 的内存池默认按体积封顶(默认约 300M vB 量级,具体数值随版本与配置变化,本文核验于 2026 年 7 月),池满时低费率交易会被请出去。以太坊节点同样有排队上限与账户级排队限制。
费率门槛:节点有最低 relay fee,钱包报价基于历史区块估算(费率估算的口径见 比特币推荐手续费怎么选?)。拥堵时你照搬两小时前的推荐值,交易可能一进池就被挤掉,或者被打包但长期排在后面。
形状审查:过小的粉尘输出、超大的脚本、异常的输入组合,都可能触发单个节点的更严策略。同一笔交易在 A 节点入池、在 B 节点被拒,是正常图景——这正是每个节点内存池视图独立的原因,参见 getrawmempool怎么读取内存池?。
入池之后:淘汰、包与替换
池满时节点按费率从低到高淘汰交易。带依赖关系的交易以”祖先包”整体计算费率:一个低费父交易能拖垮整条链,反过来 CPFP 让高费子交易把父亲抬进区块(机制对比见 比特币RBF和CPFP怎么选?)。替换类政策同样属于政策层:比特币的 RBF 靠输入序列号声明可替换,节点按”手续费增幅达标”等条件放行新版;以太坊则用同 nonce 交易直接覆盖旧交易。政策层还有反滥用规则:防止交易用微小增量无限霸占池子(历史上比特币就为此调整过孤儿交易的限额与暂存规则)。
实务影响
钱包”广播成功”只代表至少一个节点接受了它;若这个节点策略偏严或不转发,交易传播会受限,表现为”一直不确认”。重要交易值得多广播几条路径(自建节点、多家 RPC)。交易所和支付系统则常按自家节点的池子视图给推荐费率,与另一家的估算存在差异不是故障。理解共识与政策的分工后,“交易卡住”的正确问法从”链坏了吗”变成”这笔交易在每个节点的哪道闸门外被拦下了”。
快速问答
- “我的交易在各节点状态不一样怎么办?“以能否入池与能否被打包为准,只要有一条传播路径覆盖足够多出块者,交易最终会上链;个别节点的拒绝记录不代表全网态度。
- “为什么要限制内存池大小?“内存池是每个节点的私有内存与带宽预算,不设上限等于给免费拒绝服务攻击开门——洪峰期把节点打爆,受害者恰恰是最守规矩的普通用户。
- “节点政策可以随意改吗?“政策不能把共识有效的区块变成无效,但会影响传播路径的宽窄,历史上主要客户端政策的每次收紧都会引发社区对”谁在事实上定义规则”的辩论。
常见误区
- “所有节点的内存池一样”:每个节点独立决定收什么、留什么,视图差异是常态。
- “被一个节点拒绝等于交易非法”:政策拒绝只是该节点不想为它费资源,换个路径可能顺利入池。
- “内存池是官方排队大厅”:它是无数重叠的私人等候区的并集,没有全网统一队列。
小结
共识规则决定交易是不是真的,节点政策决定节点愿不愿意帮忙传播。内存池是政策最集中的舞台:容量封顶、费率筛人、形状审查、包级淘汰。读懂这一层,链上世界的”不公平”就都有了可解释的机制来源。
本文为技术与教育内容,不构成投资建议。
发表评论
还没有评论,来说两句吧。
评论区为展示样式,提交不会被处理。