跳轉到

D-20260708-06|流局翻案:寫 no-quorum 事件、申訴案型移除

背景與驅動力

moderation 里程碑實作撞出結構矛盾:canon 明文「流局不寫事件、outcome 純 derive」,但 ReportInfo.outcome 落在 DerivedState、必須有事件觸發 fold 才會變——流局案於是永遠停在 open,同對象序列化擋著再告直到 90 天過期,與 canon「流局可立即再告」語意直接相反;上傳期案的 similarityPending 解除同樣無事件可觸發,而它是經濟共識值。另發現「相似度 90 以上拒收之申訴」案型的案錨(被拒收的上傳事件)根本不在鏈上——驗算結構上無法通過、fold 也解析不到上傳者。

考慮過的選項

  • 流局維持不寫事件、outcome 讀點 derive:會把檢查點時間線 + 票集合拖進經濟結算驗算路徑,侵入太大;否。
  • 期滿檢查點寫 no-quorum 結果事件(採納,使用者核可建議)。
  • 申訴案另建案錨上鏈機制:使用者改提「正主檢舉下架盜版 → 正主再上傳」路線,評估優於補機制(採納)——結構洞非修復而是消滅。

決定

  • 翻案:流局改寫 result: 'no-quorum' 的仲裁結果事件——任一 peer 可寫 + 全網驗算(重算確認期滿有效票未達 4 且重抽輪已盡、或該輪合格池未滿 7);BlacklistEvent 不得指向 no-quorum;流局案零 delta、零準確率、同對象可立即再告;上傳期案 reject 與 no-quorum 皆解除 similarityPending、流局不計安全港。
  • 申訴案型整個移除:正主救濟收斂為組合既有機器——檢舉命中 → 仲裁下架(盜版者 −100)→ 正主再上傳;上傳期案自此單一案型、案錨恆在鏈上。
  • fold 案錨守門:結果事件補 anchoredAt+ 檢舉案六重比對(開放案存在 / 未撤回 / 無結果 / 時戳 /reason/targetKind 逐位)+ 同 cid 上傳期案結果去重,對 no-quorum 事件同等生效。

後果與影響

修訂 D-20260702-01 的流局語意(其餘骨架不動);「經濟共識值的變化必須由事件觸發」自此成為明文設計理由,案錨恆在鏈上讓全網驗算與 fold 守門閉環。現況權威:moderation.md檢舉與仲裁.mdanti-piracy.md