← 回到 DEVCON 8

Grandine 精簡客戶端修正版本錯配,驗證共識規格實作

Grandine Lean Client Development

場次摘要

講者介紹 Grandine 精簡客戶端的測試修復工作。接手時,Hive 自動化測試僅有 47 項通過,失敗集中於分叉選擇與狀態轉換。團隊發現,測試環境的最新標籤仍指向 Devnet 4 實作,卻執行 Devnet 5 測試;測試驅動程式也有欄位命名與拒絕原因讀取錯誤,因此不能把所有失敗都歸因於客戶端邏輯。 團隊將部署改用 Devnet 5 版本,修正測試欄位、補上已最終確認區塊的查詢介面,並調整投票與簽章驗證邏輯,也將完整 Hive 測試納入程式碼審查流程。講者回報收尾時有 305 項通過,但測試總數期間持續變動,仍有三個測試組未全數通過。講者並表示,精簡客戶端開發已收尾,相關後量子工作將轉向既有主網客戶端。

值得記下的 5 件事

  1. [6:20]
    版本錯配造成大量測試失敗 團隊從 Hive 測試結果查出,最新標籤仍指向 Devnet 4,卻拿來執行 Devnet 5 測試

    講者表示,改用對應版本後,通過項目從 47 項增至約 240 項;這部分改善來自修正測試所用版本,而非逐一修改客戶端邏輯。

  2. [3:40]
    測試驅動程式的欄位錯誤影響多個測試組 簽章驗證測試的資料欄位與客戶端命名格式不符,修正後三項全數通過

    狀態轉換測試另有拒絕原因讀取錯誤;修正並補充應拒絕的測試案例後,該組 74 項全數通過。

  3. [5:40]
    客戶端本身也調整投票與簽章檢查 除了修正測試驅動程式,團隊也修改實際客戶端邏輯,包括拒絕針對未知區塊的投票,以及超出範圍的投票,並調整節點間傳播訊息的簽章驗證
  4. [8:00]
    完整測試納入審查流程,但前後測試集並不固定 團隊表示,每次提交程式碼合併請求都會執行完整 Hive 測試,以標示失敗問題

    收尾時回報 305 項通過,仍有三組未全數通過;測試總數則由 321 項變為 317 項,期間有增刪案例,不能視為固定測試集的前後比較。

  5. [10:20]
    人工智慧協助理解與分類,修復多由人工完成 回應提問時,講者表示,人工智慧能協助理解問題原因,並區分明顯錯誤與需要深入檢查的複雜問題

    不過,實際修復大多手動進行,講者也將親自實作視為學習的一部分。

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

更多來自 DEVCON 8

訂閱