docs(validation): §5.10 trace root-frame gas parity — Portal↔RPC parity (traces.gas)#154
Merged
Merged
Conversation
…ty (traces.gas) Documents the traces.gas root-frame divergence class closed by #153 (merged 3bfc074), the structurally-unrelated companion to the §5.9 error cascade. Portal serves Parity action.gas (gasLimit minus the EIP-2028 intrinsic) on the root frame; ponder's RPC path stores geth callTracer, which seeds the top frame's gas with the full tx.gasLimit before intrinsic deduction — so the pre-fix Portal store wrote the root one intrinsic low (gas_used and all non-root frames already byte-identical). #153 overrides the root frame's gas with the parent tx gasLimit (INV-21) for drop-in RPC-parity determinism, the same "match the RPC path" decision as #110 (access_list) and #151 (error cascade). Grounded on all 12 preserved Portal-vs-RPC store windows: 2196/2196 root frames RPC.gas == tx.gasLimit (legacy + EIP-1559, intrinsic-independent), gas_used and non-root gas diff zero in every window; root gas + the §5.9 cascade are the only two trace divergence classes, both now closed. Candor: contract-creation and access-list roots were absent from the corpus, so those tx classes rest on the geth callTracer mechanism, not an in-corpus measurement. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
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.
Documents the
traces.gasroot-frame divergence class closed by #153 (the structurally-unrelated companion to the §5.9 ancestor-error cascade), resolving the INV-21 row's "documented in VALIDATION.md §5" reference — same follow-the-fix pattern as #151 → #152 (§5.9).What §5.10 documents
action.gasisgasLimit − EIP-2028 intrinsic; ponder's RPC path stores gethcallTracer, which seeds the top frame'sgaswith the fulltx.gasLimitbefore intrinsic deduction. So the pre-fix Portal store wrote the ROOT frame one intrinsic low.gas_usedand every non-root frame were already byte-identical.0x74700(Portal) vs0x7a120(RPC/gasLimit); child[0]0x3616bon both.gasLimit(INV-21, mutation-verified), chosen for RPC-parity drop-in determinism — same decision as fix(transform): store NULL not fabricated [] when Portal drops accessList — refines #32 #110 (access_list) and fix(traces): ancestor-error cascade — Portal store byte-identical to the RPC path on traces.error/revert_reason #151 (error cascade); avoids a path-dependent seam at the historical→realtime cutover.RPC.gas == tx.gasLimit(legacy + EIP-1559, intrinsic-independent);gas_usedand non-rootgasdiff zero in every window; root gas + the §5.9 cascade are the only two trace divergence classes, both now closed.creationRoots=0,alRoots=0in all 12 windows), so those tx classes rest on the gethcallTracermechanism, not an in-corpus measurement — stated explicitly in the section, the invariant, and the code comment.Docs-only (VALIDATION.md, +21 lines). No code / test / lint surface touched.
🤖 Generated with Claude Code