Gsd/phase 09 canonical slot and certificate storage - #349
Draft
henriqueaklein wants to merge 247 commits into
Draft
Gsd/phase 09 canonical slot and certificate storage#349henriqueaklein wants to merge 247 commits into
henriqueaklein wants to merge 247 commits into
Conversation
henriqueaklein
force-pushed
the
gsd/phase-08-burn-mint-datapath-robustness-multi-node-mint-race-e2e-test
branch
from
July 28, 2026 21:17
9a34622 to
26a9c83
Compare
Base automatically changed from
gsd/phase-08-burn-mint-datapath-robustness-multi-node-mint-race-e2e-test
to
develop
July 29, 2026 14:02
henriqueaklein
force-pushed
the
gsd/phase-09-canonical-slot-and-certificate-storage
branch
from
July 29, 2026 16:18
00e467e to
7467701
Compare
henriqueaklein
force-pushed
the
gsd/phase-09-canonical-slot-and-certificate-storage
branch
4 times, most recently
from
August 17, 2026 20:47
3badeec to
61b83c2
Compare
- hash strict normal and mint slot preimages with SHA-256 - reject ambiguous mint identities and malformed embedded transactions - cover candidate-independent burn slots and canonical aliases
- propagate typed canonical slot results through proposal and certificate paths - reject recognized handler failures before consensus state mutation - hash unregistered subject identities into fixed-size operational keys
- Resolve catch-up logs against cached full receipts - Deduplicate burns by transaction hash and receipt-local ordinal - Cover multi-log, missing-context, and re-inclusion identity cases
- Require receipt-local ordinals across relayer, node, and mint APIs - Use indexed synthetic outpoints for checks, reservation, and rollback - Persist executed burns by chain, transaction hash, and receipt index
- register thread-safe complete-delta filters before element filters - expose delta filters through datastore and GlobalDB - scaffold focused certificate pair validation tests
henriqueaklein
force-pushed
the
gsd/phase-09-canonical-slot-and-certificate-storage
branch
from
August 18, 2026 12:56
61b83c2 to
019e03a
Compare
Contributor
Author
|
This solution is bad and flaky. Not gonna merge it and instead gonna use as reference on what I want and how NOT to do it. |
- Focused Phase 12 gate passes 7/7 at af382b0 (94.43s) - Mandatory isolated 11-node race fails deterministically (2 consecutive runs): mint output destination is the node's validator identity instead of its SGNS address on all 11 nodes; application_converged never holds - Full suite not executed per plan stop gate; closure remains blocked - Dynamic inventory re-captured: 98 configured tests, 4 lacking built executables in this tree
- Focused gate 7/7 PASS (90.46s) with evmrelay at recorded 4787e582 - bridge_race_single_burn_test PASS isolated -j1 (271.33s), clean 11-node teardown - Mint output destination now equals burn destination SGNS address - Task 2 full-suite sections pending
…te blockers - Dynamic inventory: 98 configured tests, zero missing executables - One unfiltered ctest -j2 run: 91/98 passed, 7 failed, zero Not Run - 6 bridge/Anvil fixtures fail: sepolia.drpc.org dropped Sepolia from free plan (verified directly: HTTP 400 code 35; serial repro identical) - bridge_race_single_burn_test timed out at 500s under -j2 load (passed isolated) - 3 gated E2E suites recorded as reviewed prerequisite skips - Closure not achieved; blockers recorded for scoped follow-up
Under full-suite -j2 load the 11-node race exceeded its 500s timeout (500.04s) after passing isolated in ~271s. RUN_SERIAL plus a 900s budget removes CPU contention from the mandatory race gate.
- Focused gate 6/7: StructuredTraceUsesStableIdentityForExactReplay fails nondeterministically (~1/3) — competitor proposal_id collides with the original when both CreateProposal calls share one CurrentTimeMs() tick - Stop gate fired: isolated race and unfiltered full suite not run - No source/test code modified per plan scope; evidence recorded in 12-FULL-SUITE-REPORT.md
…stinct With a shared subject, CreateProposal varies only by CurrentTimeMs(), so a same-millisecond competitor proposal_id equaled the original and the EXPECT_NE flaked (~1/3). Give the competitor its own proposer account so its proposal_id differs deterministically.
- Focused gate: 7/7 pass in 91.45s (replay-identity flake fixed by 84bce439) - Isolated bridge_race_single_burn_test: PASS 271.20s (-j1, within 900s) - One winner certificate across 11 proposals/11 validators; clean teardown - Report regenerated as run 5; full-suite leg pending Task 2
…d (run 5) - Dynamic inventory: 98 configured tests (ctest -N, 2026-08-19T20:42Z) - One unfiltered run: ctest --output-on-failure --no-tests=error -j2 - 98 passed, 0 failed, 0 timeouts, 0 crashes, 0 Not Run, 0 skips (1021.60s) - bridge_race_single_burn_test passed in-suite at 284.96s (RUN_SERIAL, TIMEOUT 900) - Run-3 blockers verified resolved: 6 bridge/Anvil fixtures green after rebuild - TEST-01..06 requirement matrix satisfied; zero reviewed skips needed
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.
No description provided.