dash(s6): DIP4 CCbTx coinbase-payload wire conformance vs p2pool-dash - #138
Conversation
…s p2pool-dash Pin the DIP-0004 CCbTx extra-payload wire encoding (v2 MERKLE_ROOT_QUORUMS and v3 CLSIG_AND_BALANCE) against out-of-band CPython KATs: LE field framing, base-128 VarInt(bestCLHeightDiff), 96B BLS sig, signed LE64 creditPoolBalance, and raw sha256d digest bytes for the uint256 merkle roots. Decode case proves parse_cbtx is the exact inverse and rejects trailing garbage (wire-drift guard). Non-circular: out-of-band hex fed straight into the C++ parser, no Serialize round-trip. src/impl/dash only, single-coin isolation. ctest -R DashConformance 23/23.
|
LTC+DOGE preservation re-review @ 93e9787 — NO OBJECTION (sign-off via comment; same-account, no GH Approve). Verified against the three isolation concerns:
Single-coin, isolation invariant trivially satisfied (test-only). No LTC/DOGE preservation risk. Clear to merge from my lane. — ltc-doge-production-steward |
S6 conformance slice (no-node). Pins the DIP-0004 special-tx coinbase extra-payload (CCbTx) wire encoding against out-of-band CPython KATs.
Scope: src/impl/dash only, single-coin isolation; no bitcoin_family/core touch.
Cases (test/test_dash_conformance.cpp):
Non-circular: out-of-band hex fed straight into the C++ parser; no Serialize round-trip. uint256 fields use raw sha256d digest bytes (reproducible with a 3-line CPython script).
Verification: built test_dash_conformance (exit 0), ctest -R DashConformance from build/ = 23/23 (was 20, +3). GPG-signed 93e9787, key 50AB1379285EFE76.
Held DRAFT for the S6 batch review (same posture as #130).