如果記憶體池超過 300 MB 怎麼辦?
根據chain.so,比特幣記憶體池大小為108 MB,並且仍在攀升。它正在慢慢接近 300 兆字節,據說這是 BTC 的記憶體池限制。300 MB 之後會發生什麼?
每個節點都維護一個單獨的、單獨的記憶體池。雖然預設將其大小限制為 300 MiB,但每個節點操作員都可以設置自己的值。請注意,記憶體池大小限制與序列化數據或排隊事務的事務權重(分別寫入塊的內容和您在記憶體池監視器上看到的內容)無關,而是與實際記憶體使用量有關節點上的反序列化交易數據。此記憶體使用情況取決於平台。結果,當記憶體池監視器達到大約 80-95 個塊的塊深度時,事務開始被丟棄。
當一個節點的記憶體池達到限制時,它將丟棄最低費率的交易並增加其
minMempoolFeeRate
. 它將傳達其新的minMempoolFeeRate
給它的同行,基本上告訴同行暫時不要轉發低於該費率的交易。請注意,每個節點都是單獨執行此操作的,因此具有較大記憶體池或不同架構的節點可能會提前或稍後丟棄事務。節點將保留與其錢包相關的交易副本。即使所有其他節點都刪除了事務,事務的發送者和接收者也會保留一份副本。發送者可以強制他的節點放棄原始交易並發送另一個衝突的交易來更新它,或者他們的節點將繼續嘗試廣播交易,以便一旦積壓已經消退,它最終將再次在網路上中繼。在積壓減少到 300 MB 限制以下並增加一些延遲後,節點將降低它們
minMempoolFeeRate
並再次開始接受它之前驅逐的事務。您目前可以在Johoe 的記憶體池監視器上觀察到這種情況¹:
如您所見,當節點的記憶體池超過其限制時,當天早上 7 點左右,1-2 sat/B 波段下降。
¹請注意,有兩個 BTC 視圖,在這種情況下連結和相關的是
BTC (default mempool)
)
首先,沒有“比特幣記憶體池”。比特幣網路上的每個節點都維護自己的記憶體池,每個節點可以有不同的設置和規則來允許交易進入其記憶體池。
預設的記憶體池最大大小為 300 MB。當達到最大值時(不管它是什麼),節點將開始驅逐較低優先級(即支付較低費率的交易)並提高其可接受的最低費率。這樣做是為了將記憶體池大小保持在或低於配置的大小,並將刪除交易並根據需要提高最低費率來維持這一點。
由於大多數節點可能使用預設的 300 MB,因此許多支付低交易費用的交易可能不會被確認,並且需要在以後費用不那麼高的時候重新廣播。或者這些交易可以用具有更高費率的衝突交易來代替。