Vivek 介紹 Geth 的 SSZ 區塊實作與 Besu 外掛介面重構
SSZ Execution Blocks (EIP-7807) for Geth
場次摘要
Vivek 介紹兩項以太坊客戶端開發工作:在 Geth 實作 EIP-7807 的 SSZ 區塊,以及重構 Besu 外掛介面。前者以樹狀雜湊結構支援個別欄位的驗證;後者則處理單一套件造成的相依負擔、服務尚未初始化就被取用,以及介面版本與 Besu 發布綁定等問題。 Geth 工作分為手寫 SSZ 編解碼與雜湊引擎、區塊實作兩部分,並以規格測試案例及 Python 參考腳本比對結果;但講者表示,維護者已告知不會合併。Besu 則拆分功能模組、保留既有匯入方式,並加入相容性檢查;服務生命週期已有部分調整合併,其餘工作與版本制度仍待完成或決定。
值得記下的 5 件事
- [4:00]
SSZ 區塊以樹狀結構支援個別欄位驗證 EIP-7807 的實作將區塊標頭與主體放入同一個 SSZ(簡單序列化)容器,以 Merkle 樹這種逐層計算雜湊的結構組織資料
驗證者可用目標資料與路徑上的相鄰節點,重算根雜湊,再與可信任的根比對;漸進式型別則用來維持擴充時的位置穩定。
- [5:20]
Geth 實作已進行測試比對,但未獲合併 工作分為手寫 SSZ 引擎與區塊實作,測試使用官方規格案例、其他實作的根雜湊,以及 Geth 產生的區塊搭配 Python 參考腳本
講者表示,維護者告知不會合併;他已將整體工作整理成一份提交給原專案的合併請求,另有多份請求留在自己的專案副本。
- [6:40]
Besu 拆分外掛介面,減少不必要的相依性 原本單一套件讓小型外掛也必須依賴經常隨分叉更新的 EVM(以太坊虛擬機)相關程式
團隊決定拆成四個功能模組,目標是讓外掛只依賴所需部分,降低其他模組變動帶來的影響,而非保證所有外掛從此不需調整。
- [9:20]
拆分模組時保留既有匯入方式,並檢查相容性 團隊將型別移至較小模組,但保留原套件名稱,並由原外掛介面繼續提供這些模組,讓既有匯入敘述不必更改
此外,japicmp 工具會比較變更前後的 Java 套件,協助在自動化檢查中攔下相容性問題,不只依賴人工審查。
- [10:20]
服務取用時機與版本制度仍在調整 生命週期重構的方向,是讓外掛若在不適當的階段取用服務,就無法通過編譯,而非等執行時才遇到尚未初始化的物件
講者表示已有部分調整合併,其餘仍在進行;外掛介面要採依年月編號的日曆版本,或區分重大、次要與修補變更的語意化版本,也尚未決定。
更多來自 DEVCON 8
Arrow 的硬體 DAO 實驗:AI 協作、在地製造與責任分工
A DAO Shipped an Aircraft: What It Takes to Coordinate Atoms with Tokens
Thomas Garrison
Kohaku:以 SDK 將隱私與安全功能帶入以太坊錢包
Kohaku : privacy for everyone, by default
Nico、Vitalik
私密區塊鏈的取捨:隱私、去中心化與合約協作
Private State, Public Network: The Tradeoffs Behind Privacy
Zachary Williamson