Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

No recovery path when a T1/T2 batch never reaches reveal quorum — GI stuck forever (BL-30)

Đang mở
#222 2 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
5/5
Thời gian dự kiến
Hơn một tuần
Mức phù hợp với người mới
30/100
Loại issue
Tính năng
Độ rõ ràng
Đặc tả rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
solidity
Lĩnh vực
blockchain

Hướng nghiên cứu

Read Developer/BACK_LOG.md BL-30 and the T1/T2 finalization and GI lifecycle logic in DINTaskCoordinator.sol; the issue identifies the relevant functions and lines. First map how failed reveal quorum blocks finalization, slashing, and endGI, then design the abort or batch-skip decision points described here. Done means a reviewed recovery design that accounts for authorization, timing, and reward and slashing state.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

bug

Summary

finalizeT1Aggregation/finalizeT2Aggregation (DINTaskCoordinator.sol) iterate every batch in the GI in a single transaction and revert the entire call if any one batch has too few reveals:

if (winningCID == bytes32(0)) revert TC_NoSubmissions();
if (submissionCount < T1_AGGREGATORS_PER_BATCH / 2 + 1)
    revert TC_InsufficientSubmissions();

(finalizeT1Aggregation L979-980, finalizeT2Aggregation L1127-1128, verified against develop @ 740a613)

There is no per-batch retry, no owner override to skip a stuck batch, and no abort path for the GI as a whole: endGI requires GIstate == AggregatorsSlashed and startGI requires GIended/GenesisModelCreated — both unconditional, no bypass. I checked the full contract for any abort/skip/force/emergency function; none exists.

Reachability

This isn't an edge case — with the demo default of 3 aggregators per T1 batch and majority = 2, any 2 of 3 assigned aggregators simply not revealing (going offline, missing the window, or deliberately withholding — no collusion needed, no cost beyond the existing S1/S2 slash, which doesn't stop the GI) permanently bricks that batch, and therefore the whole GI, forever. DINTaskCoordinator/DINTaskAuditor are not upgradeable, so there is no patch-around once deployed. The model's reward pool and its validators' registration slots (see #223) stay locked with it.

Impact

This gap is already blocking other work, not just a standalone concern: BL-26's residual notes explicitly deferred a contract-side re-anchor cap on the batch-assignment seed "because a capped GI would be stuck forever" with no way to recover.

Suggested approach

Needs a GI-abort design (flagging the decision points, not prescribing an answer):

  • Who may trigger it — model owner only? DIN-Representative as an emergency backstop?
  • When — only after some minimum time/deadline past the batch's reveal window opening, so an impatient owner can't abort a GI that would've resolved fine?
  • Where the reward pool and in-flight slashing state go on abort — forfeited? refunded pro-rata? rolled to the next GI?
  • Whether it's a full abort (GIended early) or a narrower "skip this batch, exclude it from T2" path

References

  • Developer/BACK_LOG.md BL-30
  • PR #191 review (BL-26, the deferred re-anchor-cap decision this blocks)
  • PR #204 review (DINTaskCoordinator.md §10 No. 6)
Ngôn ngữ chính
Python
Star
4
Fork
7
Merge trung bình
3 ngày 58 phút
Pull request đã merge (30 ngày)
39

Chuẩn bị môi trường

Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của InfiniteZeroFoundation/DevNet

Tất cả issue của InfiniteZeroFoundation/DevNet

Issue tương tự

Thêm issue về Python

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.