Skip to content

test(dash-s8): mining.submit reassembly KAT — close subscribe->notify->submit triangle#635

Closed
frstrtr wants to merge 1 commit into
masterfrom
ci-steward/dash-s8-submit-reassembly
Closed

test(dash-s8): mining.submit reassembly KAT — close subscribe->notify->submit triangle#635
frstrtr wants to merge 1 commit into
masterfrom
ci-steward/dash-s8-submit-reassembly

Conversation

@frstrtr

@frstrtr frstrtr commented Jul 4, 2026

Copy link
Copy Markdown
Owner

S8 stratum-binding suite, submit leaf. Closes the subscribe -> notify -> submit triangle: given a miner submit (extranonce2, ntime, nonce), the pool reconstructs the exact 80-byte block header whose sha256d is the share identity, and the coinbase reassembled under that extranonce2 matches the split/notify goldens byte-for-byte.

Landed producers bound (not reimplemented): split_coinb + merkle_branches_raw (coinbase_builder.hpp). Header field order/endianness mirror the landed submit verifier share_check.hpp:306-321 (uint256 raw bytes + uint32 LE = canonical 80B header).

Non-circular anchors: independent Python hashlib sha256d. Coinbase-hash goldens are byte-identical to #631/#632/#633; ROOT for extranonce2==0 equals the notify-roundtrip canonical root.

Fencing: test/ + test/CMakeLists.txt only. Pure / socket-free / node-free — synthetic coinbase + synthetic sibling tx hashes, no dashd, no live sharechain. Non-consensus, additive.

Base master ff20c36. 8 KATs: header geometry/field placement, coinbase cross-bind, merkle-root cross-bind, prevhash fixture, full header+share-hash golden, nonce/ntime iteration, extranonce2 propagation.

Merge-gated: no self-merge — surfacing for review + operator tap on green rollup.

…->submit triangle

Pin the miner->pool submit half of the S8 stratum-binding suite: given a
submit (extranonce2, ntime, nonce), reconstruct the exact 80-byte block
header whose sha256d is the share identity, and prove the reassembled
coinbase matches the split/notify leaf goldens byte-for-byte.

Binds landed producers split_coinb + merkle_branches_raw; header field
order/endianness mirror the landed submit verifier share_check.hpp:306-321.
Coinbase-hash goldens are byte-identical to #631/#632/#633 and ROOT for
extranonce2==0 equals the notify-roundtrip canonical root (non-circular,
independent Python hashlib). Pure/socket-free/node-free; fenced to test/.
@frstrtr

frstrtr commented Jul 4, 2026

Copy link
Copy Markdown
Owner Author

Superseded by #634 (identical test_dash_stratum_submit_reassembly.cpp; #634 also wires the build.yml gate and is CLEAN). Closing to keep one canonical PR.

@frstrtr frstrtr closed this Jul 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant