跳至內容
0%

開源 Rundler 🦀

作者:Dan Coombs

最後更新:2023年9月28日2 分鐘閱讀

今天我們很高興宣布 open source Rundler(Rust Bundler),這是由 Alchemy 開發、以 Rust 撰寫的 ERC-4337 bundler 實作。透過 Rundler,我們希望加速 smart account 的轉型,在 EVM chains 上實現下一階段的使用者體驗。Bundler 是支援 Account Abstraction 的基礎設施中不可或缺的一環。我們將 Rundler 開源,是為了促成一個去中心化且健全的網路,以支撐這項轉型。

Rundler 是什麼?

Rundler 是一個高效能、高可靠性、模組化的 ERC-4337 bundler。

這樣講太抽象?

我們拆解一下 👇

ERC-4337

ERC-4337 是一套標準,能在不改動核心協議的情況下,在所有 EVM chains 上實現 Account Abstraction。它的做法是依賴 Bundler 這類更高層級的 off-chain 基礎設施。簡單來說,ERC-4337 讓開發者能享有 Account Abstraction 的所有好處,同時不必承擔核心協議開發的風險。

想了解 ERC-4337 的運作原理,可以閱讀 Alchemy AA 團隊工程師 David Philipson 撰寫的四篇系列文章「You Could Have Invented Account Abstraction」。

若想開始使用 ERC-4337 accounts 進行開發,可以參考我們的企業級 Embedded Accounts。

Bundler

前面提到的更高層基礎設施中,核心的 off-chain 元件就是 Bundler。Bundler 的工作是接收使用者提交的類交易物件(User Operations),將它們打包成單一 EVM transaction,並將該 transaction 送上鏈。作為回報,它會向每位使用者收取一小筆費用。EOA wallet 是將交易提交給節點,而所有 ERC-4337 smart account 則是將 UserOps 提交給 Bundler。

bundler 處理 user operations (UOs) 的流程圖。
bundler 處理 user operations (UOs) 的流程圖。

Rundler 的目標是什麼?

我們打造 Rundler,是為了協助整個生態系迎接下一個 10 億 web3 使用者。我們相信 Account Abstraction 與 ERC-4337 是讓加密貨幣走向主流使用者的最佳途徑。要達成這種主流體驗,我們需要具備最佳開發者體驗、模組化設計,並支援每一條 EVM chain 的高可靠基礎設施。

1. ERC-4337 生態系成長

在打造 Rundler 的過程中,我們深度參與了 ERC-4337 標準的演進,並打算持續在這方面做出貢獻。我們從在正式環境中運行 Rundler 的經驗中學到了很多,也持續將這些經驗分享給 4337 社群,協助整體生態系改善。

2. 業界頂尖的效能與可靠性

要讓能為十億使用者帶來上鏈體驗的應用能被接受,效能與可靠性至關重要。這個信念是 Rundler 與 Alchemy 相關 API 的核心,我們也持續努力突破極限。

3. 可擴充性與 chain 支援

每一條 EVM chain 都值得擁有支援 Account Abstraction 的一流基礎設施。不同協議在處理各種細節(例如 gas 使用、precompiles、交易的供應鏈等)時各有差異。我們希望 Rundler 的邏輯能夠擴充,以支援絕大多數(甚至全部)這類使用情境。

4. 模組化

我們不會止步於 Rundler 本身。我們希望 Rundler library 的各個元件都能被擴充並用於打造新的 4337 與 alternative-mempool 基礎設施。

Rundler 架構的優勢

在 Alchemy,我們相信轉向 smart account 是讓 Ethereum 技術的優勢惠及所有人的必要條件。Rundler 是邁向這個願景的關鍵一步。

1. 高效能

Rundler 的設計目標是達到最嚴苛工作負載所需的效能水準。我們選擇 Rust 作為開發語言,正是為了借助其 concurrency primitives 與 zero-cost abstractions 來達成這個目標。我們希望 Rundler 具備高並行性、可水平擴展,並能輕易延展以滿足下一代應用程式對擴展性的需求。

我們最近測得 Rundler 在 Polygon Mainnet 上能達到每秒 750 萬 gas 的上鏈速度(在該工作負載下約為 55 TPS),而透過這套架構,我們還能處理更大的量。

Polygon 上 eth_sendUserOperation 每秒持續交易數。
Polygon 上 eth_sendUserOperation 每秒持續交易數。

2. 高可靠性

Rundler 的架構設計旨在滿足使用者對高可靠服務的期待。我們運用多年來運行 blockchain 基礎設施所累積的經驗,將 Rundler 打造成這些理念的延伸。在現代雲端化的環境中,Rundler 的表現特別出色——在這種環境下,每個元件都能獨立運行與擴展,且觀測性(observability)與遙測(telemetry)是必要條件。

3. 模組化

Rundler 採模組化方式建構,每個元件都以 library(在 Rust 中稱為 crate)的形式建模,能夠獨立於其他元件運行。隨著我們的介面逐漸穩定,我們希望能運用這些元件來打造下一代 write-path 基礎設施。

為下一個十億使用者提供動力

自今年四月起,我們便已在正式環境中運行 Rundler,協助支撐這個領域中一些最具潛力的應用,包括 CyberConnect CyberAccounts 與 Circle Programmable Wallets。

以下是我們頭幾個月的一些數據:

  • 成功上鏈超過 402K 筆 UserOps
  • 71% 的 UserOps 是在包含超過 1 個 UO 的 bundle 中上鏈,比其他已知 bundler 實作高出 4.7 倍
  • 傳送 UserOps 的獨立活躍開發團隊,季成長率達 430%

Rundler 目前的狀態如何?

Rundler 目前用於支撐我們的 Bundler API endpoints。不過,它仍由 Alchemy 一支強大的開發團隊積極開發中。我們會持續新增功能,協助使用者充分發揮 Account Abstraction 的威力。

除了完整符合 ERC-4337 規範並支援 v0.6 Entry Point 合約之外,Rundler 還有幾項值得一提的特色:

整合式或分散式部署

Rundler 可以作為單一 process 中的 full node 運行,各元件透過記憶體內的訊息傳遞方式溝通。也可以將這些元件分拆到獨立的 process 中,透過 gRPC 溝通,以便進行水平擴展與備援部署。

精準的 gas 估算

我們開創了估算 ERC-4337 user operation 各項 gas 欄位的新方法,運用了一些巧妙的智慧合約技巧與二分搜尋。

Reorg 處理

我們的 mempool 實作能抵禦 chain 重組(reorganization)。我們會追蹤 chain 的進展,偵測 chain 是否發生 reorg,並將可能因此被移出鏈的 User Operations 送回 mempool,使其能再次被納入考慮。

大型 bundle 打包與交易可靠性

我們打造的 bundle building 元件旨在達到網路層級的 gas 吞吐量。也就是說,我們致力於讓 bundle 儘可能貼近區塊的 gas limit,並在每一個區塊中都成功上鏈,藉此讓整個網路達到飽和。

Alternative mempools

我們一直在嘗試ERC-4337 alternative mempools,並持續推動這方面的討論。目前,這些 alt-mempool 會讓 bundler 暴露在某些 mempool 攻擊之下,但我們希望能運用這些研究成果,未來實作出安全的 alt-mempool。

Rundler 的路線圖為何?

走到這一步,接下來呢?在我們的近程路線圖中,我們已開始建構 P2P 與安全的 alternative mempools、支援 Entry Point v0.7、signature aggregation,以及與 block builder 的整合。

P2P mempool

ERC-4337 承諾已久的公開 P2P mempool 將於今年秋天推出,我們目前正在建構相關支援。

安全的 alternative mempools

如前所述,我們正考慮迭代目前的 alternative mempool 做法,打造一個對 bundler 而言安全的實作。

Entry Point v0.7 與多版本支援

ERC-4337 團隊正全力開發 Entry Point 合約的下一個版本 v0.7。一旦推出,我們會盡快提供支援,同時持續維持對 v0.6 合約的支援。

Signature aggregation

Signature aggregation 是 ERC-4337 最受矚目的特色之一。然而,要在讓 bundler 維持獲利能力的前提下實作這項功能,一直頗具挑戰。我們正深入研究這個領域,希望能推出首批實用的 signature aggregator。

Block builder 整合

在我們嘗試提升 User Operations 上鏈速率的過程中,遇到了一些問題,而這些問題只會隨著 P2P mempool 的推出而更加嚴重(這部分我們之後會再詳談)。如果 block builder 能將 bundling 直接整合進自身流程中,這些問題就能大幅緩解。

如何為 rundler 做出貢獻

我們希望透過將 Rundler 開源,能持續激發這個領域的創新。使用者可以檢視驅動其 User Operations 背後的邏輯,而貢獻者則可以新增功能、修復錯誤,協助改善並強化 Rundler。

如果你有興趣參與貢獻,歡迎參考我們的貢獻指南並與我們聯繫!

致謝

建構 ERC-4337 生態系是一項團隊工作,若沒有來自多個團隊的領導、指引與支持,我們不可能達到現在的成果。

ERC-4337 團隊

ERC-4337 團隊開創了這套標準,在我們開發過程中回答了無數問題。他們開發的 bundler 參考實作與規範測試,在我們的開發過程中發揮了無可取代的作用。我們很期待能繼續與這個團隊合作,一起推動 ERC-4337 向前邁進。

Reth 團隊

特別感謝 Reth 團隊,我們在許多做法上都從他們身上獲得啟發。他們正以開放的方式推動 Ethereum Rust 生態系向前發展,我們感謝他們持續不斷的貢獻。

(alternative)mempool 見。

🦀

Alchemy 電子報

搶先掌握最新發布消息

訂閱我們的電子報

取得 Alchemy 最新產品更新與資源

A
O
D
+
超過 80,000 名訂閱者

輸入您的電子郵件地址,即表示您同意接收我們的行銷通訊與產品更新。您了解 Alchemy 會依照我們的隱私權聲明處理所收到的資訊。您可以隨時取消訂閱。