dash: runnable c2pool-dash entrypoint via live consensus selftest (launcher slice 2) - #388
Merged
frstrtr merged 1 commit intoJun 23, 2026
Conversation
…uncher slice 2) Closes the "DASH is impl-files-only, not runnable" gap. Slice 1 (#387) registered DASH in the unified launcher dispatch; this adds DASHs own c2pool-dash executable driving the REAL header-only consensus path: --selftest (default): make_coin_params (oracle CoinParams + X11 pow_func seam), X11 PoW KATs (mainnet genesis + real-node testnet3 #1497944), and post-V20 subsidy + 3/4 masternode payment. 11/11 checks green. --run: block submission is DEFERRED to the next stacked slice and is an explicit labelled stub. The dual-path broadcaster (dashd-RPC submitblock fallback + embedded P2P relay) lives in the unmerged dash-spv-embedded work; DASH has no NodeRPC TU on master yet (only coin/rpc_data.hpp). The CoinParams path the RPC fallback consumes IS wired here. Per-coin isolation: src/impl/dash only + main_dash.cpp; no shared-base/core SOURCE edit; dashd RPC fallback untouched. Link set mirrors c2pool-bch.
frstrtr
added a commit
that referenced
this pull request
Jun 23, 2026
…uncher slice 2) (#388) Closes the "DASH is impl-files-only, not runnable" gap. Slice 1 (#387) registered DASH in the unified launcher dispatch; this adds DASHs own c2pool-dash executable driving the REAL header-only consensus path: --selftest (default): make_coin_params (oracle CoinParams + X11 pow_func seam), X11 PoW KATs (mainnet genesis + real-node testnet3 #1497944), and post-V20 subsidy + 3/4 masternode payment. 11/11 checks green. --run: block submission is DEFERRED to the next stacked slice and is an explicit labelled stub. The dual-path broadcaster (dashd-RPC submitblock fallback + embedded P2P relay) lives in the unmerged dash-spv-embedded work; DASH has no NodeRPC TU on master yet (only coin/rpc_data.hpp). The CoinParams path the RPC fallback consumes IS wired here. Per-coin isolation: src/impl/dash only + main_dash.cpp; no shared-base/core SOURCE edit; dashd RPC fallback untouched. Link set mirrors c2pool-bch. Co-authored-by: frstrtr <frstrtr@users.noreply.github.com>
frstrtr
added a commit
that referenced
this pull request
Jun 24, 2026
…uncher slice 2) (#388) Closes the "DASH is impl-files-only, not runnable" gap. Slice 1 (#387) registered DASH in the unified launcher dispatch; this adds DASHs own c2pool-dash executable driving the REAL header-only consensus path: --selftest (default): make_coin_params (oracle CoinParams + X11 pow_func seam), X11 PoW KATs (mainnet genesis + real-node testnet3 #1497944), and post-V20 subsidy + 3/4 masternode payment. 11/11 checks green. --run: block submission is DEFERRED to the next stacked slice and is an explicit labelled stub. The dual-path broadcaster (dashd-RPC submitblock fallback + embedded P2P relay) lives in the unmerged dash-spv-embedded work; DASH has no NodeRPC TU on master yet (only coin/rpc_data.hpp). The CoinParams path the RPC fallback consumes IS wired here. Per-coin isolation: src/impl/dash only + main_dash.cpp; no shared-base/core SOURCE edit; dashd RPC fallback untouched. Link set mirrors c2pool-bch. Co-authored-by: frstrtr <frstrtr@users.noreply.github.com>
frstrtr
added a commit
that referenced
this pull request
Jun 24, 2026
…uncher slice 2) (#388) Closes the "DASH is impl-files-only, not runnable" gap. Slice 1 (#387) registered DASH in the unified launcher dispatch; this adds DASHs own c2pool-dash executable driving the REAL header-only consensus path: --selftest (default): make_coin_params (oracle CoinParams + X11 pow_func seam), X11 PoW KATs (mainnet genesis + real-node testnet3 #1497944), and post-V20 subsidy + 3/4 masternode payment. 11/11 checks green. --run: block submission is DEFERRED to the next stacked slice and is an explicit labelled stub. The dual-path broadcaster (dashd-RPC submitblock fallback + embedded P2P relay) lives in the unmerged dash-spv-embedded work; DASH has no NodeRPC TU on master yet (only coin/rpc_data.hpp). The CoinParams path the RPC fallback consumes IS wired here. Per-coin isolation: src/impl/dash only + main_dash.cpp; no shared-base/core SOURCE edit; dashd RPC fallback untouched. Link set mirrors c2pool-bch. Co-authored-by: frstrtr <frstrtr@users.noreply.github.com>
frstrtr
added a commit
that referenced
this pull request
Jun 24, 2026
…mmand unblock) Stacks on the VM130 readiness gate. Pre-stages everything the BTC live lane needs so the eventual unblock (testnet3 IBD completes / SHA256d rig key #387/#388 lands) is one command, not a fresh scramble. No rig key and no IBD-complete are required to author or dry-run any of this. - vm130_btc_readiness_gate.sh: EXTENDED to assert the dual-path broadcaster preconditions on top of the existing IBD/template gate -- ARM B (submitblock RPC method live) and ARM A (>=1 P2P peer so an on_block_found relay has a landing site). Still fails closed. - vm130_btc_standup.sh: one-command orchestrator (single or tuned 2-instance A->B crossing via opt-in --sharechain-port #457); --dry-run prints the plan. - g3b_block_acceptance.py: runnable FOUND->ASSEMBLED->ACCEPTED->BROADCAST over BOTH arms x 3 regimes; --dry-run asserts reaches_network orthogonal to (arm,regime); --live drives ARM B for real, marks ARM A rig-gated. Scripts-only, fenced under tools/testnet/, no core/consensus change.
This was referenced Jun 25, 2026
frstrtr
added a commit
that referenced
this pull request
Jun 26, 2026
#509) One-command BTC G3b relaunch: isolated regtest sharechain (--regtest + isolated --prefix/--network-id), asserts the #506 isolation invariant (net_name=bitcoin_regtest regtest-FIRST + 0 public seeds + isolated prefix via pure grep over main_btc.cpp startup banner), then arms the dual-path won-block capture (ARM A on_block_found->P2P, ARM B submitblock RPC fallback; delegates structured both-arms capture to g3b_block_acceptance.py). --dry-run is self-contained (no host/binary/operator-go): proves the isolation asserts PASS on a golden regtest log and BITE on a mainnet-shaped log, with 0 blocks produced. --go is operator-gated (relaunch drops bake-in state) and HARD-STOPs if any invariant fails on the live banner. Block-FOUND stays rig-gated (#387/#388 or RPC-tuned solve). Held — no push pending tap. Co-authored-by: frstrtr <frstrtr@users.noreply.github.com>
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.
Stacked on #387 (launcher slice 1). Closes the "DASH is impl-files-only, not runnable" gap with DASH's own
c2pool-dashexecutable.What it does
--selftest(default) drives the REAL header-only DASH consensus path, network-free, then exits — 11/11 checks green on Linux x86_64:make_coin_paramsoracle CoinParams (symbol, sharechain ports 8999/18999 SSOT, share_version 16, X11 pow_func reachable through the coin-params seam).test_dash_x11_kat.cpp).test_dash_subsidy.cpp, live-validated).--run: block submission is explicitly DEFERRED (labelled stub, not silent). The won-block dual-path broadcaster — dashd-RPC submitblock fallback + embedded P2P relay — lives in the unmerged dash-spv-embedded work; DASH has no NodeRPC TU on master yet (onlycoin/rpc_data.hpp). The CoinParams path the RPC fallback consumes IS wired here.Isolation / fencing
src/c2pool/main_dash.cpp(new) +src/c2pool/CMakeLists.txt(one additivec2pool-dashtarget) only. Nosrc/impl/<other-coin>, no shared-base/core SOURCE edit, dashd RPC fallback untouched.dash_x11).Build GREEN, GPG-signed f2fb646. Held for integrator verify -> operator tap (no self-merge). Retarget to master after #387 lands.