什么是内存池(Mempool)?它是区块链节点用来暂存“已广播、未确认”交易的等待区。交易发出后先进入各个节点的内存池排队,矿工或验证者再从中挑选交易打包进区块,通常优先选手续费更高的。交易被确认后就会离开内存池。内存池的拥堵程度决定了当下需要付多少手续费,也决定了交易会不会卡住。
交易在内存池里是怎么排队的?
内存池并不是一个全网统一的队列,而是每个节点自己维护的一份。交易广播后在节点之间传播,每个节点先检查签名、余额和手续费等规则,通过了才放进自己的内存池,所以不同节点看到的内存池会有差别。区块空间有限,矿工会按费率排序,把收益最高的一批打包进下一个区块。比特币按每字节费率排序,并会把有依赖关系的父子交易当作整体来算;以太坊上则主要看优先费,同一地址的交易还要按 nonce 顺序执行。
内存池满了会发生什么?
节点的内存池有大小上限,Bitcoin Core 默认是 300 MB。网络拥堵、交易太多放不下时,节点会先丢弃费率最低的交易,并临时提高接受新交易的最低费率,低于这个费率的交易连广播都传不出去。一直没被打包的交易,节点也会在一段时间后移除,Bitcoin Core 默认是两周。被移除不等于交易失效:只要它用到的资金没有被其他交易花掉,任何人都可以重新广播它,它仍然可能被确认。
企业怎么利用内存池数据?
最直接的用途是估算手续费:观察内存池里等待的交易量和费率分布,就能判断给多少费率大概能在几个区块内被打包,而不是凭经验写死一个数。其次是监控自己的交易:发出后确认它已经进入内存池,如果长时间排在很后面就及时告警、考虑加速。对交易所和支付公司来说,内存池里的充值只能当作“即将到账”的提示,必须等达到足够的确认数再入账,并用 KYT 筛查资金来源。
总结
内存池是未确认交易的等待区,每个节点各自维护,矿工按费率从中挑选交易。内存池满了会丢弃低费交易,但被丢弃的交易仍可能被重新广播。企业可以用内存池数据估算手续费、监控交易状态。Safeheron 的 MPC 钱包即服务为企业提供 MPC 密钥管理和策略引擎。
想让企业的链上交易更快、更可控? 联系 Safeheron 销售团队,预约一对一演示