Cluster Mempool はメンプールを親子トランザクションの連結成分に分け、トポロジー的に有効な線形化を作り、マイニング、削除、relay、置換規則で一貫して利用します。
クラスターとは、親子関係で結ばれた未承認トランザクションのグラフにおける連結成分です。独立したクラスターは別々に評価できるため、あるクラスターの変更でメンプール全体を再計算する必要はありません。 [2]
ノードは各クラスターについてトポロジー的に有効な線形化を作り、最も有利なものから手数料率が下がる chunk に分割します。ブロックには先頭から最良の chunk を選び、削除時には末尾から最も不利なものを除きます。 [2]
従来の ancestor と descendant の制限や、マイニングと削除で異なる近似方法は、複雑なパッケージの実際の価値を常に表せるわけではありませんでした。クラスターを制限することで、予測可能な作業上限の中でより良い順序を探せます。 [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.