← 回到 DEVCON 8

Erigon 的 FOCIL 實作進度:交易納入清單、驗證修正與儲存取捨

EIP-7805 (FOCIL) Implementation in Erigon

場次摘要

Sagar Rana 分享在 Erigon 實作交易納入清單機制 FOCIL 的進度。清單來自公開交易池,用於檢查區塊是否漏掉仍可追加的交易。建立清單的介面已合併,編碼後容量上限為 8,192 位元組;區塊資料驗證介面 new payload v6 尚待合併,啟動區塊建構的 fork choice updated v5 仍是草稿。 驗證會檢查區塊末端能否追加遺漏交易,考量 gas 資源額度、交易序號與餘額,而非回推建構過程中能否納入。已知區塊也不能直接判定符合清單要求,外部清單則須視為不可信輸入。清單以雜湊為鍵存入快取,避免改動資料庫格式;問答者提醒,這可能妨礙歷史查詢與納入表現追蹤,講者表示仍需研究。

值得記下的 5 件事

  1. [1:40]
    四項程式碼變更的完成度不同 Rana 表示,分叉時間判斷工具與建立清單的介面已合併,後者已納入 Erigon 3.8.0

    new payload v6 仍在審查,fork choice updated v5 則是草稿,且依賴前者新增的回傳欄位。

  2. [4:00]
    清單限制的是編碼後容量,沒有另設 gas 上限 建立清單會重用 Erigon 交易池既有的交易選取功能,以 RLP 編碼後的 8,192 位元組為容量上限,略過 blob 資料交易及超出容量的交易

    沒有可列入的交易時,回傳空陣列而非空值。

  3. [5:00]
    驗證著重區塊末端能否追加交易 檢查不會回推交易在建構區塊的較早階段能否納入,而是嘗試追加尚未出現的交易

    若資源額度、交易序號與餘額等檢查皆通過,卻仍遭遺漏,就將清單滿足狀態設為否;已在區塊內、資源不足或無效的交易則略過。

  4. [7:40]
    快取避免改動資料庫,但歷史查詢需求仍待研究 清單不屬於區塊本體,實作以各清單的雜湊為鍵存入快取,同一區塊可對應多份清單

    問答者提醒,不將清單存入資料庫可能妨礙追蹤歷來的納入表現;講者承認尚未從這個角度思考,沒有提出已完成的解法。

  5. [13:00]
    用修正前後的測試結果確認錯誤修復 審查發現錯誤後,會加入對應測試,比較套用修正前後是否分別失敗與通過,並人工檢查

    後續計畫是讓 new payload v6 合併、完成 fork choice updated v5,再進行跨客戶端測試、執行 Hive 測試套件及補上文件。

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

更多來自 DEVCON 8

訂閱