Skip to content

內存池

了解 Tendermint 中可用的內存池選項。

先進先出內存池

內存池持有未提交的交易,這些交易尚未包含在區塊中。 Tendermint 區塊鏈的默認內存池實現遵循先進先出 (FIFO) 原則,這意味著交易的順序僅取決於它們到達節點的順序。 收到的第一筆交易將是第一筆要處理的交易。 這適用於將收到的交易八卦給其他節點並將它們包含在一個塊中。

優先內存池

Tendermint v0.35 開始 (也已反向移植到 v0.34.20) 可以使用優先內存池實現。 這允許驗證者根據相關費用或其他激勵機制選擇交易。 它是通過為每個 CheckTx 響應 傳遞一個 priority 字段來實現的, 它在任何試圖進入內存池的交易上運行。

daodst 通過其支持 EIP-1559 EVM 交易 。 這種交易類型使用一個基本費用和一個可選擇的優先提示,它們加起來就是總交易費用。 優先內存池提供了一個選項,可以自動使用這種機制來生成塊。

當使用優先內存池時,下一個生成塊的交易按照優先級(即費用)從高到低的順序選擇。 如果 mempool 已滿,優先級實現允許刪除優先級最低的交易,直到有足夠的磁盤空間可用於傳入的、更高優先級的交易(參見 v1/mempool.go實現更多細節)。

📣 提示:儘管事務處理可以按優先級排序,但事務的八卦將始終按照 FIFO 進行。

配置

📣 提示 : $install_path 用來表示您安裝 stcd 二進製程序的路徑

要使用優先內存池,請在 $install_path/.stcd/config/config.toml 的節點配置中調整 version = "v1"。 默認值v0表示傳統的 FIFO 內存池。

📣 提示:請記住重新啟動節點以使更改生效。

請在此處查看 config.toml 的相關摘錄:

#######################################################
###          Mempool Configuration Option          ###
#######################################################
[mempool]

# Mempool version to use:
#   1) "v0" - (default) FIFO mempool.
#   2) "v1" - prioritized mempool.
version = "v1"

資源

更詳細的信息可以從這裡找到: