在過去的幾週裡,我沒有分享關於 @ethrex_client 的很多更新,這是我們的 @class_lambda @ethereum L1 執行客戶端和 ZK L2 堆疊。 請關注 @ethrex_client 以了解我們正在做的所有事情。 在 L1 中,我們已經成功運行了以太坊測試網,而在 L2 中,我們正在為我們與合作夥伴共同構建的身份和 DeFi 應用程序運行測試網。我真心相信,我們接近擁有最簡單的代碼庫和堆疊,以便於維護、升級和修改以太坊。如果沒有檢查 @NethermindEth 和 @go_ethereum 的代碼,我們無法達到這一點。 與我的合作夥伴 @rj_aligned、@fran_aligned 來自 @alignedlayer 以及 @SantiDiPaolo、@AguuMg 來自 @PolFinance_,我們即將發布關於 RWA L2 的第一份白皮書,該白皮書將由 Ethrex 和 @alignedlayer 提供支持。我們還有很多其他項目,但我對這個項目特別興奮,因為它將連接 TradFi 和 DeFi 之間一個非常有趣的用例。我們有一些行業中最強大的團隊作為顧問和合作夥伴。我迫不及待想分享更多關於這個項目的信息。 更新 L1 我們在多個方面進行了工作。我們通過 Grafana 改進了可觀察性,移除了未使用的功能以簡化代碼庫,並添加了對 `engine_getBlobsV1` 端點的支持。 更新日誌: feat(l1): `engine_getBlobsV1` 請求端點 (#3636) chore(l1): 移除 redb 支持 (#4103) refactor(l1): 從區塊鏈 crate 中移除不必要的 usizes (#4110) fix(l1): 移除不必要的狀態克隆 (#4117) fix(l1): 使用正確的 docker 鏡像啟動本地網絡 (#4131) chore(l1): 將區塊時間添加到 grafana 儀表板 (#4112) fix(l1): 從區塊執行中減去數據庫讀取時間 (#4051) chore(l1): 指標改進 (#4118) chore(levm): 改進新的 levm 測試運行器的組織 (#3958) L2 根據我們的極簡主義方法,我們從未使用的 L2 數據庫中移除了大量代碼。我們繼續簡化代碼庫並消除死代碼。此外,在修復與 gas 價格相關的錯誤後,CI 也得到了穩定。 我們在兩個方面對 L2 進行基準測試: - L2 網絡維護成本:我們通過模擬不同交易工作負載和網絡配置的各種場景來微調 L2 參數。目標是確定用戶必須承擔的每筆交易的近似維護佣金成本,以使網絡實現自我可持續性。 - 隔離區塊執行生成基準:使用 ethrex-replay 工具,我們正在證明來自 Hoodi、Sepolia 和 Mainnet 的區塊,以識別代碼庫中的潛在錯誤並測量我們的證明者的性能。 在 ethrex-replay 方面,該工具已經足夠穩定,我們已經建立了基礎設施,以定期重放公共網絡的區塊執行和證明。我們現在正在解決這些運行中出現的錯誤。一些錯誤源於 ethrex 中的邏輯錯誤,而其他錯誤與內存使用有關。前者大多已解決,我們在後者上取得了顯著進展。 我們還開始關注 @ziskvm 和 @0xLita ZKVM 的潛在短期集成。我們已經支持 @RiscZero 和 @SuccinctLabs。 本週,我們合併了一項 PR,穩定了 ethrex-replay,使我們能夠識別和解決 ethrex 中的兩個錯誤。這些修復也已合併。第一個錯誤涉及我們 ecrecover 預編譯中的一個邊緣情況,其中特定輸入導致由於 gas 不匹配而執行失敗。經過徹底調查,我們將問題追溯到官方的 SP1 修補的 secp256k1 庫。我們通過遷移到 SP1 修補的 k256 庫解決了這個問題。第二個錯誤源於對代碼庫中 usize 類型的位長度的錯誤假設。為了防止類似問題的發生,我們對代碼庫進行了全面審查,並提交了多個 PR,將 usize 的使用限制在兩個特定情況下:索引和受 API 或庫約束的場景。此外,我們正在添加支持以運行 EF 測試套件,包括區塊鏈和狀態測試,以增強我們的測試覆蓋率,並確保在不同執行場景中的穩健性。 解決了這些錯誤後,問題不再發生。我們成功地重放了新的 Hoodi 和 Sepolia 區塊,Mainnet 區塊執行顯著改善,SP1 執行成功率從 1/10 上升到 6/10。這一進展為我們解決最近區塊重放的剩餘挑戰鋪平了道路:在 SP1 zkVM 中的內存溢出錯誤和執行及證明中的性能問題。為了解決這些問題,我們已經為工具的 crate 設置了內存分析,使用 Jemalloc crate。 我們還在努力支持歷史區塊的重放。該功能的 MVP 在草稿 PR 中表現良好,能夠與 ethrex、reth 和 geth 客戶端良好配合,但在 nethermind 客戶端中遇到問題。在發布第一個版本之前,我們的目標是優化 RPC 請求,以確保即使在使用免費 RPC 提供商時,也能準確下載大多數區塊的數據。 DevEx 改進: - 我們修復了我們的二進制構建,不再需要在某些操作系統和架構上將 CUDA 作為默認依賴項。此修復已包含在最新版本中。 - 已提交 PR 更新 ethrex 在 rex 中的版本,以確保與 ethrex L2 的最新更改兼容。 - 我們已開始在開發環境中為 ethrex L2 監視器開發一個新選項卡。該選項卡將顯示與開發者相關的信息,例如富賬戶列表和 L1 和 L2 合約的地址。 更新日誌: - refactor(l2): 替換 usize 狀態差異量。 - feature(l1,l2): 配置 ethrex-replay 進行內存分析。 - refactor(l1): 移除區塊鏈 crate 中不必要的 usize 使用(與錯誤修復相關)。 - feature(l1,l2): 向執行見證添加新命令。 - fix(levm): 解決與 32 位架構相關的問題(與錯誤修復相關)。 - refactor(levm): 更新 ecrecover 實現以使用 k256 而不是 secp256k1(與錯誤修復相關)。 - ci(l1,l2): 分離 GPU 構建並採用 x86-64-v2 目標。 性能 本週我們繼續關注 CPU 消耗和基準測試。 關於 CPU 消耗,我們識別了兩種不同的情況,一種是存在區塊構建,另一種是不存在。我們優先考慮沒有區塊構建的情況,因為它們始終存在並影響其他工作(如快照同步)。據我們調查,這完全與 p2p 相關。我們將繼續在這一方面努力。 關於基準測試,在上週增強 modexp 性能後,我們關注了一些檢測到的改進,例如 codecopy 和相關操作,以及 signextend、mulmod 和 addmod。 我們將繼續關注 CPU 消耗和我們識別出的可能改進的測試性能,例如以太坊轉賬和其他 levm 操作碼。
10.94K