test(dash-g1): injectable block-version seam + byte-parity golden KAT#625
Merged
Conversation
Make build_embedded_workdata version an injectable trailing-default param (default 0x20000000, the BIP9 no-signaling baseline) so every existing caller is byte-for-byte unchanged. Add G1GoldenVersionSeamEchoesInjectedVersion: the seam echoes a pinned version exactly, the default preserves the prior hardcoded projection, and a non-default version drifts ONLY m_version. SAFE-ADDITIVE, fenced to embedded_gbt.hpp + test_dash_embedded_gbt.cpp, non-consensus (default value unchanged). Companion to the curtime seam (#622).
1b44221 to
308586e
Compare
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.
Next G1 byte-parity seam after the curtime slice (#622). Fenced, SAFE-ADDITIVE, non-consensus.
What
build_embedded_workdataversion becomes an injectable trailing-default param (default0x20000000, the BIP9 no-signaling baseline), replacing the hardcodedw.m_version = 0x20000000+ TODO. Every existing caller is byte-for-byte unchanged.G1GoldenVersionSeamEchoesInjectedVersion: the seam echoes a pinned version exactly (no arithmetic of its own), the default preserves the prior projection, and injecting a non-default version drifts ONLYm_version— orthogonal to height/prev/bits/mintime/coinbase.Scope
Fenced to
src/impl/dash/coin/embedded_gbt.hpp+test/test_dash_embedded_gbt.cpp. No shared/other-coin tree, no consensus-value change (default identical to old constant). Mirrors the #622 curtime seam pattern one-for-one.Sequencing note
Independent of #622 (its own fenced PR, per request). If #622 lands first, this rebases with a trivial fixup:
curtimeandversionboth become trailing defaults, so the positional call sites in the new KAT get the extra arg — mechanical, no logic change.Merge-gated: hold for operator tap on green rollup, no self-merge.