Skip to content

dgb(#82): forced-won-share dual-path binding KAT - #285

Merged
frstrtr merged 1 commit into
masterfrom
dgb/82-forced-won-share-dualpath-kat
Jun 21, 2026
Merged

dgb(#82): forced-won-share dual-path binding KAT#285
frstrtr merged 1 commit into
masterfrom
dgb/82-forced-won-share-dualpath-kat

Conversation

@frstrtr

@frstrtr frstrtr commented Jun 21, 2026

Copy link
Copy Markdown
Owner

#82 broadcaster-gate — leg 1 (deterministic gate-closer).

Drives a forced won share through the REAL run-loop reconstructor (make_reconstruct_closure_from_template, #271/#279/#280) wired into the REAL dispatch handler (make_on_block_found), and asserts the one won block fans out down BOTH broadcast arms carrying the byte-identical faithfully-reconstructed block:

  • ARM A — embedded P2P relay (primary) → block_bytes
  • ARM B — external digibyted submitblock fallback (always-fire) → block_hex
  • cross-arm identity: HexStr(armA bytes) == armB hex == oracle reconstruct_won_block_from_template

This is the binding proof integrator named: the existing dgb_won_block_dispatch_test pins the same fan-out with a canned stub reconstructor; this KAT proves it with the real reconstructor, so the bytes both arms carry are the genuine won block, not synthesized constants. The live A/B soak (block lands on peer node B + submitblock accepts on a self-provisioned regtest digibyted) is the corroborating evidence, in parallel.

Also pins: coinbase-only template (empty mempool — todays shape), RPC-only deployment, and fail-closed end-to-end (unknown forced share fires NEITHER arm).

4/4 PASS locally (build_dgb, EXIT=0). Fenced src/impl/dgb test-only + build.yml allowlist (both sites). p2pool-merged-v36 surface: NONE. HOLD merge — integrator routes after CI rollup is fully green.

Drive a forced won share through the REAL run-loop reconstructor
(make_reconstruct_closure_from_template) wired into make_on_block_found,
and assert the one won block fans out down BOTH broadcast arms carrying
the byte-identical faithfully-reconstructed block:

  ARM A  embedded P2P relay (primary)            -> block_bytes
  ARM B  external digibyted submitblock fallback -> block_hex
  cross-arm identity: HexStr(arm A bytes) == arm B hex == oracle

This is the deterministic gate-closer for the broadcaster dual-path: the
existing dgb_won_block_dispatch_test pins the same fan-out with a CANNED
stub reconstructor; this KAT proves it with the real reconstructor, so the
bytes both arms carry are the genuine won block, not synthesized constants.
Also pins coinbase-only-template (empty mempool, todays shape), RPC-only
deployment, and fail-closed (unknown forced share fires NEITHER arm).

Fenced src/impl/dgb test-only + build.yml allowlist (both sites). No
p2pool-merged-v36 surface: block dispatch + framing only.
@frstrtr
frstrtr merged commit 32fa257 into master Jun 21, 2026
29 checks passed
frstrtr added a commit that referenced this pull request Jun 23, 2026
Drive a forced won share through the REAL run-loop reconstructor
(make_reconstruct_closure_from_template) wired into make_on_block_found,
and assert the one won block fans out down BOTH broadcast arms carrying
the byte-identical faithfully-reconstructed block:

  ARM A  embedded P2P relay (primary)            -> block_bytes
  ARM B  external digibyted submitblock fallback -> block_hex
  cross-arm identity: HexStr(arm A bytes) == arm B hex == oracle

This is the deterministic gate-closer for the broadcaster dual-path: the
existing dgb_won_block_dispatch_test pins the same fan-out with a CANNED
stub reconstructor; this KAT proves it with the real reconstructor, so the
bytes both arms carry are the genuine won block, not synthesized constants.
Also pins coinbase-only-template (empty mempool, todays shape), RPC-only
deployment, and fail-closed (unknown forced share fires NEITHER arm).

Fenced src/impl/dgb test-only + build.yml allowlist (both sites). No
p2pool-merged-v36 surface: block dispatch + framing only.

Co-authored-by: frstrtr <frstrtr@users.noreply.github.com>
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