內存池
了解 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"
資源
更詳細的信息可以從這裡找到: