dash(s8): broadcaster_full won-block keystone — dual-arm relay (#83) - #456
Closed
frstrtr wants to merge 1 commit into
Closed
dash(s8): broadcaster_full won-block keystone — dual-arm relay (#83)#456frstrtr wants to merge 1 commit into
frstrtr wants to merge 1 commit into
Conversation
frstrtr
force-pushed
the
dash/s8-broadcaster-full
branch
2 times, most recently
from
June 24, 2026 22:19
d6b84f1 to
31aa67c
Compare
…ded P2P + submitblock RPC) Composes the #405 DashBroadcaster leaf FanOutHook/submit_block_raw_all seam (embedded P2P arm) with an injectable submitblock-RPC fallback (dashd arm, never removed). on_block_found() relays a won block over BOTH arms independently; reached_network() is true iff >=1 peer reached OR dashd accepted. Reconciled against master (not the merged/-dependent dash-spv-embedded ref). Fenced to src/impl/dash; no src/core / no merged/ adds. KAT test_dash_broadcaster_full 7/7: each arm proves won-block-reaches-network independently (embedded-only, RPC-only, dual, accept/reject, no-path guard, hex parity).
frstrtr
force-pushed
the
dash/s8-broadcaster-full
branch
from
June 25, 2026 00:06
31aa67c to
710e16e
Compare
frstrtr
added a commit
that referenced
this pull request
Jun 25, 2026
Fresh-branch re-cut of the broadcaster_full keystone onto current master (supersedes #456, whose stale multi-coin base would revert landed btc/dgb/web work on merge). Dash-lane-only: embedded-P2P + dashd submitblock dual-arm won-block broadcaster, 7/7 KATs. src/impl/dash/broadcaster_full.hpp — dual-arm keystone test/test_dash_broadcaster_full.cpp — 7/7 won-block KATs test/CMakeLists.txt — test target registration .github/workflows/build.yml — CI allowlist (test_dash_broadcaster_full)
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.
S8 keystone for the DASH dual-path #83 frontier. Routes a WON block to the network over BOTH arms, each unit-proven independently:
reached_network() is true iff >=1 peer reached OR dashd accepted; a won block with no live peers and no RPC arm returns false (no silent drop).
Reconcile note: the dash-spv-embedded reference broadcaster_full.hpp ports c2pool-ltc CoinBroadcaster and depends on c2pool/merged/, coin/node_interface, coin/transaction, coin/block and NodeP2P::submit_block — none on master. Wholesale copy would not compile, would drag in merged/ (breaking single-coin isolation), and would regress the newer master broadcaster.hpp(#405)/p2p_node/config. So this is 3-way reconciled against what master carries.
Fence: one new header src/impl/dash/broadcaster_full.hpp + its KAT; no src/core, no merged/, no other-coin tree. Single-coin DASH slice; DASH smoke suffices. Based on master, independent of the held #441-#444 relay stack (lands standalone).
KAT test_dash_broadcaster_full — 7/7 real (non-hollow, ctest from build/, IDs 663-669): embedded-only reaches each live peer with exact bytes, dead-peer skip, RPC-only reaches alone w/ correct hex, accept/reject verdict, dual-arm both-fire-independently, no-path guard, hex byte-parity.
Held for integrator verify -> operator tap. No self-merge.