Skip to content

dash: register DASH in unified launcher dispatch (first-local-share-mint slice 1) - #387

Closed
frstrtr wants to merge 2 commits into
masterfrom
dash/launcher-firstmint-slice1
Closed

dash: register DASH in unified launcher dispatch (first-local-share-mint slice 1)#387
frstrtr wants to merge 2 commits into
masterfrom
dash/launcher-firstmint-slice1

Conversation

@frstrtr

@frstrtr frstrtr commented Jun 23, 2026

Copy link
Copy Markdown
Owner

What

Additive DASH registration in the unified c2pool launcher dispatch — slice 1 of the dashd-RPC-fallback launcher + standalone node-construction work (operator/integrator-approved option A, first-local-share-mint).

Touches only the dispatch lambdas in src/c2pool/c2pool_refactored.cpp:

  • parse_blockchain: dash|darkcoin -> Blockchain::DASH (+ supported-list string)
  • get_coin_p2p_port: DASH testnet 19999 / mainnet 9999 (SSOT: src/impl/dash/coin/chain_seeds.hpp)
  • blockchain_to_symbol: Blockchain::DASH -> "DASH"
  • get_chain_p2p_prefix: testnet cee2caff / mainnet bf0c6bbd (dashd net magic)

Isolation / scope

Registration only — no edits to ltc/doge/dgb/btc launcher cases or any src/impl/<coin>/ tree. Blockchain::DASH enum and the web_server DASH case already exist on master; this is pure wiring. dashd RPC fallback preserved (nothing removed/weakened).

Out of scope (next slice)

The runnable node-construction path — new src/c2pool/main_dash.cpp (run_node over dashd-RPC fallback, local sharechain genesis) — lands in slice 2, with a clean seam for the S8 embedded-P2P path (#367/#359) to plug in.

Verify

  • Local: ninja c2pool GREEN on Linux x86_64 (workstation), c2pool binary links.
  • Requested: integrator oracle diff + full CI rollup (all-coin smokes) before operator tap. No self-merge.

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 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
frstrtr force-pushed the dash/launcher-firstmint-slice1 branch from 2fc633d to 7556725 Compare June 23, 2026 22:08
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
frstrtr force-pushed the dash/launcher-firstmint-slice1 branch from 7556725 to f96eb98 Compare June 24, 2026 00:42
frstrtr and others added 2 commits June 24, 2026 01:20
…int slice 1)

Additive launcher registration so c2pool can parse and route the dash
blockchain alongside ltc/dgb/btc/doge. Touches only the dispatch lambdas
in c2pool_refactored.cpp; no ltc/doge/dgb/btc launcher case or any
src/impl/<coin>/ tree is modified.

- parse_blockchain: dash|darkcoin -> Blockchain::DASH
- get_coin_p2p_port: DASH testnet 19999 / mainnet 9999 (dashd addrman)
- blockchain_to_symbol: Blockchain::DASH -> "DASH"
- get_chain_p2p_prefix: testnet cee2caff / mainnet bf0c6bbd (dashd net magic)

Registration only; the runnable node-construction path (main_dash.cpp,
dashd-RPC fallback) lands in the next slice. dashd fallback preserved.
…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

frstrtr commented Jun 24, 2026

Copy link
Copy Markdown
Owner Author

Superseded by #398 — clean rebuild off origin/master, lane-fenced to the 3 launcher files (this branch had a stale base that two-dot-diffed into 7 out-of-lane files). Branch dash/launcher-firstmint-slice1 preserved, not deleted.

@frstrtr frstrtr closed this Jun 24, 2026
frstrtr added a commit that referenced this pull request Jun 24, 2026
dash: runnable c2pool-dash launcher (clean rebuild, supersedes #387)
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.
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>
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