僅供教育參考,不構成交易或安全建議。Mempool 視圖屬於節點本機狀態,變動頻繁且取決於政策;在把交易視為已接受或已完成前,請核對特定鏈、用戶端、nonce、費用上限、提交路徑、收據和最終性。
直接答案
Mempool(即交易池)是節點暫時保存在記憶體中、有時也持久寫入磁碟的一組已簽章交易;這些交易已按節點目前的驗證和政策規則獲准進入,但尚未進入該節點認定的規範鏈。它不是共識物件、全網統一佇列或納入承諾。兩個誠實節點也可能持有不同交易,因為它們收到的 gossip 不同、使用不同用戶端或設定、經歷過重新啟動或逐出,或者採用不同的公開與私有提交路徑。
在以太坊執行用戶端中,具有帳戶下一個 nonce、可立即執行的交易通常稱為 pending;被 nonce 缺口阻塞的較高 nonce 交易通常稱為 queued。這些是用戶端介面標籤,並非最終的協定狀態。交易可能在准入前被拒絕、被傳播、被同一發送者和 nonce 的另一筆已簽章交易替換、被逐出、被捨棄、成功納入、納入後回復,或者在重組後重新進入候選範圍。
1
建立
錢包填入目標、金額、費用參數,以及已花費輸入或 nonce 等防重放資料,並建立交易。
運作機制
- 鎖定環境:鏈 ID、執行用戶端及版本、目前鏈頭和基礎費、交易類型、發送者、nonce、轉移價值、calldata、gas 上限、費用上限和提交路徑。區分公開 gossip、私有中繼或建構者,以及 ERC-4337
UserOperation路徑;它們並不共用一個通用交易池。 - 解碼已簽章位元組並執行准入前檢查。驗證簽章與發送者、鏈 ID、類型與編碼、固有 gas、nonce 關係、足以涵蓋轉移價值與最大費用曝險的餘額、費用欄位,以及所需的 blob sidecar。此處的拒絕不是 EVM
REVERT,通常不會產生收據或鏈上費用。 - 描繪本機交易池政策。記錄用戶端把交易歸為 pending 還是 queued、單一帳戶和全域容量、最低費用篩選器、存續期、本機帳戶豁免、替換加價和持久化行為。Geth 的旗標和預設值只描述 Geth,並非以太坊共識或每家服務提供者的規則。
- 觀察傳播,但不要虛構全網統一視圖。對照多個獨立節點上的原始交易雜湊與已簽章位元組,但缺少狀態有多種解釋:節點可能尚未收到、按本機政策拒絕、已經逐出,或不公開其交易池。私有路徑可以繞過公開 gossip,同時把交易交給路徑營運者和建構者查看。
- 在候選區塊上評估納入資格和排序。對於 type-2 交易,執行 gas 價格為
min(maxFeePerGas, baseFeePerGas + maxPriorityFeePerGas);若基礎費超過最高費用,該交易在此上限下不具備納入資格。nonce 相依性、gas 與 blob 限制、狀態有效性、建構者 bundle 和 MEV 的影響可能大於首次可見時間。 - 主動管理生命週期。等待,或只在確認活躍鏈、發送者和替換政策後,提交有明確依據的同 nonce 替換交易。傳給自己的同 nonce 轉帳也只是一筆替換候選,並不是取消原語。不要因為某個區塊瀏覽器不再顯示原交易就重複發送價值轉移。
- 依據共識狀態完成對帳。保存每個已簽章雜湊及替換脈絡,再按所需確認或最終性層級檢查規範收據、區塊雜湊、狀態、gas 使用量、事件紀錄、已消耗 nonce 以及帳戶或合約狀態。若重組移除區塊,仍然有效的交易可能返回部分本機交易池,但具體行為取決於用戶端與狀態。
計算範例
- 費用上限資格。 某 type-2 轉帳的
gasUsed = 21,000、baseFeePerGas = 32 gwei、maxPriorityFeePerGas = 3 gwei、maxFeePerGas = 34 gwei。實際價格為min(34, 32 + 3) = 34 gwei,所以實際小費為2 gwei。費用是21,000 * 34 = 714,000 gwei = 0.000714 ETH,其中0.000672 ETH是被銷毀的基礎費,0.000042 ETH是小費。若候選區塊基礎費升至35 gwei,則34 gwei上限不足以在該區塊納入。 - Nonce 缺口。 帳戶的規範 nonce 為
10。某本機交易池收到 nonce 為10和12的交易,但沒有11;它可以把10歸為 pending,把12歸為 queued。nonce10納入後,規範 nonce 變為11,而12仍被阻塞,直到有效的 nonce11交易被納入。在交易池中看到 nonce12並不代表它可以獨立執行。 - 取決於政策的替換。 在某教學 Geth 設定下,
txpool.pricebump = 10,舊交易的maxFeePerGas = 40 gwei、maxPriorityFeePerGas = 2 gwei。按 10% 加價計算的替換門檻為44 gwei和2.2 gwei。提出43 gwei和3 gwei仍可能被拒絕,因為其中一個上限未達所設定的加價;44 gwei和2.2 gwei則達到兩項教學門檻。具體整數取整、交易類型和准入邏輯取決於版本,另一節點可能保留不同候選。 - 不存在全網統一交易池。 節點 A 報告
120,000個不同交易雜湊,節點 B 報告100,000個,交集為80,000個。聯集是120,000 + 100,000 - 80,000 = 140,000;Jaccard 重疊度為80,000 / 140,000 = 57.1428571429%。只有 A 可見的雜湊有40,000個,只有 B 可見的有20,000個。兩項數量都不能證明建構者、私有中繼或其餘網路能看見什麼。
風險
- 在錯誤的鏈 ID 或網路上簽章或廣播。
- 信任惡意、陳舊或設定錯誤的 RPC 端點。
- 簽章、交易類型、編碼或 blob sidecar 無效。
- 餘額不足以涵蓋轉移價值與最大費用曝險。
- 固有 gas 或 calldata 規則導致准入前拒絕。
- nonce 已被使用或過低。
- nonce 缺口使後續交易繼續排隊。
- 同 nonce 替換因本機政策判定加價不足而被拒絕。
- 最高費用低於候選區塊基礎費。
- 實際優先費過低或資源限制延遲納入。
- 用戶端、服務提供者、版本或設定政策不一致。
- 交易池容量、過期、重新啟動或逐出移除交易。
- peer 傳播不良、日蝕攻擊或選擇性中繼。
- 私有中繼洩漏、審查、停機或建構者不參與。
- 公開委託流遭受搶先交易、三明治攻擊或其他 MEV。
- 建構者重排、bundle 或私有交易改變執行狀態。
- 模擬結果在納入前失效。
- 盲目重複提交或遺失替換脈絡。
- 雖獲交易池接受,但納入後發生
REVERT、gas 耗盡或被捕捉的子呼叫失敗。 - 重組、最終性混淆,或把 ERC-4337 替代交易池當成一般 txpool。
常見誤解
- Mempool 是一個全網同步的先進先出佇列。
- 交易雜湊能證明全網已接受或傳播該交易。
- Pending 表示已納入、執行成功、不可逆或收款人已入帳。
- 費用夠高就能保證納入和執行成功。
- 私有提交路徑會自動保密、抗審查且保證上鏈。
相關主題
來源
- Transactions - Ethereum.org(查閱日期:2026-08-13)
- EIP-1559: Fee market change for ETH 1.0 chain - Ethereum Improvement Proposals(查閱日期:2026-08-13)
- txpool Namespace - go-ethereum(查閱日期:2026-08-13)
- Command-line Options - go-ethereum(查閱日期:2026-08-13)
- JSON-RPC API - Ethereum.org(查閱日期:2026-08-13)
- EIP-4844: Shard Blob Transactions - Ethereum Improvement Proposals(查閱日期:2026-08-13)
- ERC-4337: Account Abstraction Using Alt Mempool - Ethereum Improvement Proposals(查閱日期:2026-08-13)
- MEV Protection Overview - Flashbots Documentation(查閱日期:2026-08-13)