feat(dash): S3 SPV header-chain + DarkGravityWave v3 (PR-0 foundation) - #107
Merged
Conversation
PR-0 foundation, S3 (consensus) slice. Adds dash SPV HeaderChain and the DGW v3 retarget (DGW_PAST_BLOCKS=24) as dash own calculate_next_work_required override; no call into the generic bitcoin_family base retarget, so the slice is per-coin isolated and not B0-gated. - src/impl/dash/coin/header_chain.hpp: SPV header chain + dark_gravity_wave v3 - src/impl/dash/coin/block.hpp: header-only BlockType (full block body + dash transaction type deferred to S5 replay; SPV consumes headers only) - src/impl/dash/coin/chain_seeds.hpp: dash chain seeds - test/test_dash_header_chain.cpp: hand-derived DGW v3 known-answer vectors (fresh; the LTC test cannot exercise DGW). 7 KATs. - test/CMakeLists.txt + build.yml: wire test_dash_header_chain into the Linux x86_64 ctest --target lists (both jobs) so CI builds it.
frstrtr
marked this pull request as ready for review
June 16, 2026 11:47
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.
PR-0 foundation, S3 (consensus) slice — dash SPV header-chain + DGW v3 retarget.
Scope:
src/impl/dash/only (+ test wiring). Base: master.What
header_chain.hpp: SPV HeaderChain +dark_gravity_wavev3 (DGW_PAST_BLOCKS=24), implemented as dash owncalculate_next_work_requiredoverride — no call into the generic bitcoin_family base retarget. Per-coin isolated, not B0-gated.block.hpp: header-onlyBlockTypefor the SPV slice. Full block body (m_txs+ the dash transaction type) deferred to S5 (replay); SPV consumes headers only.chain_seeds.hpp: dash chain seeds.test/test_dash_header_chain.cpp: 7 hand-derived DGW v3 known-answer vectors (fresh — the LTC test cannot exercise DGW).test/CMakeLists.txt+build.yml:test_dash_header_chainwired into both Linux x86_64 ctest--targetlists (no green-by-absence).Verification (Linux x86_64)
ctest -R DashDGWv3Kat→ 7/7 passed (registered, not raw-binary-only).709e2598(Good signature).Gate
Per-coin isolation invariant holds: no
src/core/bitcoin_familyedits (header_chain includes but never modifies them). dash-steward-only review; operator-gated merge. Draft — holding push for operator approval.