@
Ficelle 《精通比特币》第二版是有中文版的,随便一搜就能找到。
内存池里面是待打包的交易,虽然一般全节点没有对接算力、不能独立挖矿出块,但是默认也会接受、验证、转发网络上广播的交易,交易在(被矿工)打包进区块之前,就暂存在内存池里。(所以说实际上交易数据在网络上会被重复传播两遍,然后才有 compact block 之类的技术,只给其他节点传输一个“骨架”,让其他节点从内存池里自己把对应的交易找出来、把完整区块重新组装出来,这样就可以设法大幅省掉重复传播第二次的开销、加快区块传播、避免出现带宽占用峰值)
内存池是每个节点各自维护的,很显然全节点完全可以自由选择要让哪些交易进入内存池(当然,一般不会选择非法交易,原因楼上说过了)、还可以选择优先打包哪些交易(一般是按照矿工费率 sat/vB 排序,优先打包矿工费付得多的;有些矿池提供“加速”,就是在付费后专门把对应的交易“插队”到前面,不过对于用户来说,我觉得加速器价格太贵,还是直接用 RBF 来追加手续费比较好);而且很显然不同节点的内存池内容完全可以不一样。
内存池里面的“零确认”交易不进链确认就是不作数的,只有进链确认了才算数。
内存池里面积压的交易,默认是有过期时间的,过期了就会丢弃出去。不过每一笔交易本身是没有过期时间的,所以即便因为长时间拥堵暂时被某些节点丢弃了,也随时可以重新广播出去,然后又会进入内存池、等待打包进链。