Cluster Mempool 将内存池划分为由父交易和子交易组成的连通分量,为每个分量构建拓扑有效的线性顺序,并将其一致用于挖矿、淘汰、relay 与替换规则。
集群是未确认交易图中的一个连通分量,交易通过父子关系相连。彼此独立的集群可以分开评估,因此一个集群发生变化时,无需重新计算内存池的其余部分。 [2]
节点为每个集群构建拓扑有效的线性顺序,并将其划分为若干 chunk,费率从最有利者开始递减。构建区块时从前端选取最佳 chunk,淘汰时则从末端移除最不利者。 [2]
旧有的祖先与后代限制,以及挖矿和淘汰所用的不同近似方法,并不总能反映复杂交易包的真实价值。限制集群规模后,节点可在可预期的工作上限内寻找更好的顺序。 [5]
这属于节点本地的内存池和挖矿策略,并非新的共识规则。节点可能收到不同交易、运行不同版本或配置,并拥有不同的内存池;一笔交易在区块中确认后的共识有效性不受影响。 [2]
Bitcoin Core 31.0 以 Cluster Mempool 取代了旧的内存池实现。该版本还加入 getmempoolcluster 与 getmempoolfeeratediagram RPC,可用于查看集群、其线性顺序和费率图。 [1]
默认策略把一个集群限制为 64 笔交易和 101 kB 虚拟大小。节点参数可以更改这些限制,但你的节点接受或 relay 某笔交易,并不保证邻居节点和矿工采用相同策略。 [1]
该模型统一了挖矿选择、淘汰、交易公告与 RBF。替换后的费率图必须在每一点都至少不差,并在某处严格更好,同时满足其他替换规则;旧的 CPFP carve-out 已被移除,改用 TRUC 与 sibling eviction。 [3]
在判断某笔具体交易会如何处理之前,应核对节点版本与配置、完整集群及其 chunk、费率图和其他 RBF 条件。钱包不得假定全网都采用同一种本地策略。 [4]
要获得更完整的理解,请将本词条与以下词条结合阅读: Mempool, Package Relay, CPFP (Child Pays for Parent), Replace-by-Fee (RBF), Transaction Fees, Block Template.