跳轉到

D-20260725-03|checkpoint 前代 authority 與 pinning 切換完成

背景與驅動力

D-20260721-01 已採納 quorum-follow,但當時主 repo 模式、re-vendor、pinning config 與領域事件窗 E2E 尚未完成;D-20260724-01 因此如實記錄 runtime 仍是 full-refold。本次完整 review 另發現本地 checkpoint 三法與 full-refold 會誤讀本代 frontier 折疊後的 signer set,使 signer rotation 形成自我授權, 與既有 prevEpoch 治理信任邊界不一致。

考慮過的選項

  • 以本代 derived state 的 signer set 驗證本代 checkpoint:新成員可授權納入自己的事件, 破壞治理信任鏈,棄。
  • 將 authority 固定為前一個已採納 checkpoint state,首代固定讀 genesis(採納)。

決定

  • proposeCheckpoint、覆核、finalize、full-refoldquorum-follow 均以 前一個已採納 checkpoint state 的 signer set 驗證本代;第一個 checkpoint 讀 genesis。
  • 本代 derived state 內的新 signer set 只授權下一個 checkpoint,不得回頭授權本代。
  • pinning 啟動時將固定排序的 GOVERNANCE_SIGNERS 寫入 genesis,runtime 明確切換為 quorum-follow
  • 完成 re-vendor 與「來源端包含 pinning replica 未知 reducer」領域事件窗 E2E,解除 D-20260721-01 記錄的純 core 過渡限制。

後果與影響

checkpoint signer rotation 現與 ConfigUpdateEventprevEpoch 原則一致,兩種採納 模式不再允許自我授權。D-20260721-01 與 D-20260724-01 保留各自裁決日的真實狀態; 本裁決記錄其後的信任邊界補充與實作完成點。現況權威見 程式架構/ledger.md程式架構/pinning-service.md