← 回到 DEVCON 8

Vivek 介紹 Geth 的 SSZ 區塊實作與 Besu 外掛介面重構

SSZ Execution Blocks (EIP-7807) for Geth

場次摘要

Vivek 介紹兩項以太坊客戶端開發工作:在 Geth 實作 EIP-7807 的 SSZ 區塊,以及重構 Besu 外掛介面。前者以樹狀雜湊結構支援個別欄位的驗證;後者則處理單一套件造成的相依負擔、服務尚未初始化就被取用,以及介面版本與 Besu 發布綁定等問題。 Geth 工作分為手寫 SSZ 編解碼與雜湊引擎、區塊實作兩部分,並以規格測試案例及 Python 參考腳本比對結果;但講者表示,維護者已告知不會合併。Besu 則拆分功能模組、保留既有匯入方式,並加入相容性檢查;服務生命週期已有部分調整合併,其餘工作與版本制度仍待完成或決定。

值得記下的 5 件事

  1. [4:00]
    SSZ 區塊以樹狀結構支援個別欄位驗證 EIP-7807 的實作將區塊標頭與主體放入同一個 SSZ(簡單序列化)容器,以 Merkle 樹這種逐層計算雜湊的結構組織資料

    驗證者可用目標資料與路徑上的相鄰節點,重算根雜湊,再與可信任的根比對;漸進式型別則用來維持擴充時的位置穩定。

  2. [5:20]
    Geth 實作已進行測試比對,但未獲合併 工作分為手寫 SSZ 引擎與區塊實作,測試使用官方規格案例、其他實作的根雜湊,以及 Geth 產生的區塊搭配 Python 參考腳本

    講者表示,維護者告知不會合併;他已將整體工作整理成一份提交給原專案的合併請求,另有多份請求留在自己的專案副本。

  3. [6:40]
    Besu 拆分外掛介面,減少不必要的相依性 原本單一套件讓小型外掛也必須依賴經常隨分叉更新的 EVM(以太坊虛擬機)相關程式

    團隊決定拆成四個功能模組,目標是讓外掛只依賴所需部分,降低其他模組變動帶來的影響,而非保證所有外掛從此不需調整。

  4. [9:20]
    拆分模組時保留既有匯入方式,並檢查相容性 團隊將型別移至較小模組,但保留原套件名稱,並由原外掛介面繼續提供這些模組,讓既有匯入敘述不必更改

    此外,japicmp 工具會比較變更前後的 Java 套件,協助在自動化檢查中攔下相容性問題,不只依賴人工審查。

  5. [10:20]
    服務取用時機與版本制度仍在調整 生命週期重構的方向,是讓外掛若在不適當的階段取用服務,就無法通過編譯,而非等執行時才遇到尚未初始化的物件

    講者表示已有部分調整合併,其餘仍在進行;外掛介面要採依年月編號的日曆版本,或區分重大、次要與修補變更的語意化版本,也尚未決定。

下載摘要 下載 Word 摘要(.docx)

更多來自 DEVCON 8

訂閱