Repository navigation
Reject invalid frame fees and verify watchdog checkpoints - #56
Merged
Merged
Conversation
stephenctw
force-pushed
the
fix/sequencer-qa-findings
branch
from
October 26, 2026 13:47
e32ae96 to
f2b7506
Compare
Reject an entire batch before frame execution if any frame fee exceeds MAX_EXPONENT, preventing the wallet's conversion assertion from halting the guest. Keep the scheduler nonce and overdue-direct backstop intact. Pin the behavior in unit, duality and real-machine tests, and update the governing contracts.
Verify external init/replay snapshots against their stored hash trees and cover stale sidecars with a clean control and a real-machine corruption regression. Document the diagnostic's scope and independently trusted provenance requirement. Use the existing CARTESI_LINUX_RELEASE pin in the release manifest and exercise manifest generation in CI. The kernel download pin and verification already exist on main.
Record the guardian operators' procedure to stop and disable the sequencer before foreclosure, including Kubernetes scaling and the instruction never to restart a foreclosed application.
stephenctw
force-pushed
the
fix/sequencer-qa-findings
branch
from
October 28, 2026 06:42
8f68182 to
ee5c72c
Compare
GCdePaula
approved these changes
Oct 28, 2026
GCdePaula
left a comment
Member
There was a problem hiding this comment.
Approving. Thanks for the quick, clean rewrite: every item from the review is done, nothing from the removed parts remains, and CI is green.
Optional nits, fine to skip or to fold into a later PR:
sequencer/src/storage/safe_accepted_batches.rs:755still saysscheduler_acceptsomits "the two structural" rejections; there are now three.watchdog/machine.lua:147: thepcalldrops the emulator's error text, so a host-level failure reads as "fails hash-tree verification". Consider appendingtostring(valid)to the message whennot ok, asloadalready does.- The 5d3a15e title says it verifies the kernel manifest metadata; the commit only records the pins in the manifest.
- The 52e9b57 message could say it changes a canonical acceptance rule and moves the template hash, for whoever writes the release notes.
Outside the code: Bart should hear that the out-of-range fee rule is now settled, since the C++ port must reject the same batches. The release notes will also need the new devnet and Sepolia template hashes.
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.
Reject out-of-range frame fees before the scheduler applies any frame, preventing malformed batches from halting the canonical guest. Preserve the batch nonce and overdue-direct backstop. Unit, duality and real-machine regressions cover the boundary.
Verify external watchdog init/replay checkpoints against their stored hash trees. Keep the release manifest's kernel metadata aligned with the existing toolchain pins, and exercise manifest generation in CI. The kernel download verification and RPC URL redaction already present on main remain unchanged.
Document operator shutdown before guardian foreclosure and prohibit restarting a foreclosed application. This change adds no expiry protocol, emergency-exit machinery or foreclosure RPC gates; existing signing, wire, storage and fee formats and warm-restart behavior are preserved.
Validation:
--workspace --exclude canonical-test).The complete rollups/watchdog end-to-end suites were not rerun locally.