EVM並行優化 提升以太坊交易處理性能最高60倍

robot
摘要生成中

EVM並行優化:提升交易處理性能

衆所周知,EVM是以太坊的核心執行引擎,負責智能合約的運行。爲了確保不同節點上合約執行結果的一致性,EVM採用了虛擬機技術,實現了跨平台的兼容性。

智能合約在部署到鏈上時,會先被編譯爲EVM字節碼。EVM執行合約時,會按順序讀取這些字節碼,每條指令都有相應的Gas成本。EVM會追蹤指令執行過程中的Gas消耗,消耗量取決於操作的復雜度。

以Reddio爲例,闡述並行EVM的優化之路

傳統EVM採用串行方式處理交易,所有交易在單一隊列中排隊執行。這種設計簡單易維護,但隨着用戶增多,對TPS和吞吐量的要求提高,串行執行的性能瓶頸日益凸顯,尤其在Layer中更爲明顯。

以Reddio爲例,闡述並行EVM的優化之路

除EVM外,go-ethereum中與交易執行相關的另一核心組件是stateDB,用於管理帳戶狀態和數據存儲。EVM每次執行交易都會變更stateDB中的數據,最終反映在全局狀態樹中。

在串行模式下,交易必須按順序排隊執行。如果出現耗時較長的復雜合約交易,其他交易只能等待,無法充分利用硬件資源,效率受到較大限制。

以Reddio爲例,闡述並行EVM的優化之路

爲解決這一問題,業界提出了EVM的多線程並行優化方案。該方案通過開啓多個線程同時處理多筆交易,可以數倍提升效率。但並行執行面臨狀態衝突的挑戰,需要採取相應措施。

以Reddio爲例,闡述並行EVM的優化之路

一些項目對EVM並行優化的思路是:爲每個線程分配一個臨時狀態數據庫(pending-stateDB)。線程執行交易時,將狀態變更暫存在pending-stateDB中,而不直接修改全局stateDB。所有交易執行完畢後,再將pending-stateDB中的變更同步到全局stateDB。

以Reddio爲例,闡述並行EVM的優化之路

這種方案還對讀寫操作進行了優化:讀取時先檢查pending-stateDB,如果沒有再讀取全局stateDB;寫操作則記錄在pending-stateDB中,待執行完成後再合並到全局stateDB。

以Reddio爲例,闡述並行EVM的優化之路

爲處理狀態衝突,方案引入了衝突檢測機制。監測不同交易的讀寫集,發現衝突時將相關交易標記爲需重新執行。

以Reddio爲例,闡述並行EVM的優化之路

多線程並行優化顯著提升了EVM性能,特別是處理復雜智能合約時。研究顯示,在低衝突工作負載下,TPS可提升3-5倍;高衝突負載下,理論上可達60倍。

以Reddio爲例,闡述並行EVM的優化之路

這種並行優化方案通過臨時狀態庫和衝突檢測,在保證狀態一致性的同時實現了交易的大規模並行化,爲以太坊Rollup的發展奠定了重要基礎。未來還可從存儲效率優化、高衝突場景處理、GPU加速等方面進一步提升性能。

以Reddio爲例,闡述並行EVM的優化之路

以Reddio爲例,闡述並行EVM的優化之路

以Reddio爲例,闡述並行EVM的優化之路

查看原文
此页面可能包含第三方内容,仅供参考(非陈述/保证),不应被视为 Gate 认可其观点表述,也不得被视为财务或专业建议。详见声明
  • 讚賞
  • 6
  • 分享
留言
0/400
¯\_(ツ)_/¯vip
· 21小時前
用户终于不用等到天荒地老了
回復0
反向指标先生vip
· 21小時前
终于整点硬核的了
回復0
TxFailedvip
· 21小時前
公告:以昂贵的方式了解并行EVM……愿我的2.3 ETH安息
查看原文回復0
rugpull_survivorvip
· 21小時前
听说要快60倍? 能降gas费不
回復0
Alpha不开口vip
· 21小時前
60倍 这不得赚翻啊
回復0
LiquiditySurfervip
· 21小時前
马提尼已经见底了 终于不用等gas费了
回復0
交易,隨時隨地
qrCode
掃碼下載 Gate APP
社群列表
繁體中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)