Repository navigation
fix: decouple replay oracle from snapshot cap - #72
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Full-history flat replays can finish with more than 32,767 live files even when every Gateway request is within its limit. The final independent oracle reused the initial snapshot request cap, causing both streamed and one-shot replay to fail during completion.
Separate complete state projection from the bounded request builder and use the complete projection for final Root reconstruction. Initial and incremental request limits, write accounting, and independent Root comparisons remain unchanged.
The regression covers 32,768 metadata-only live files, all 65,537 bindings, a real KZG Root reconstruction, rejection of an oversized initial request, and acceptance at the request boundary. It performs one large construction; existing smaller tests cover incremental/full Root agreement and rejection of incorrect roots.
Validation:
flat snapshot exceeds file boundfailure before the fix.go test ./...passed (worker package: 266.301 seconds);go vet ./...,go build -buildvcs=false ./..., module namespace gate, andgit diff --checkpassed.This fixes the worker's final-verification bound. Full Node/Rust corpus replays and write-amplification accounting alignment are separate work.