[draft] nmc: PE 2e regtest won-block soak harness (substrate-ready) - #251
Closed
frstrtr wants to merge 4 commits into
Closed
[draft] nmc: PE 2e regtest won-block soak harness (substrate-ready)#251frstrtr wants to merge 4 commits into
frstrtr wants to merge 4 commits into
Conversation
This was referenced Jun 20, 2026
frstrtr
added a commit
that referenced
this pull request
Jun 20, 2026
…nt success) (#253) The embedded submitauxblock RPC leg has no daemon to RPC and is not a same-process fallback like BTC submitblock-to-bitcoind, so it cannot itself broadcast and must not claim success. Return false, mirroring submit_block() never-silent-drop (#162); the P2P relay via submit_block() is the one authoritative embedded route. Updates the fallback-leg KAT to assert false (supersedes integrator note #3 per UID1610) while keeping the distinct no-cache invariant. Punch-list item (2) of the 2d broadcaster gate; item (1) host m_block_relay wiring + #251 won-block un-gate stay queued behind the #247/#251 tap. Co-authored-by: frstrtr <frstrtr@users.noreply.github.com>
frstrtr
added a commit
that referenced
this pull request
Jun 20, 2026
…te P2P won-block from 2d Per integrator design call (2026-06-20): embedded mode relies SOLELY on P2P relay for won-block propagation. submit_aux_block() is intentionally inert in-process (mirrors doge embedded path), so LEG 1 (submitauxblock) is external-RPC-deployment-only / N/A in the embedded soak -- never driven here. The dual-path submitblock fallback stays a DEPLOYMENT-level gate, kept explicit. LEG 2 (P2P primary) is the live embedded won-block route and is UN-GATED from 2d (#247/#253/#254 landed on master 294fb30). The end-to-end assert fires once the in-loop c2pool embedded regtest process drives node A -- next slice. Recut off origin/master (294fb30); scripts-only, fenced to scripts/.
frstrtr
force-pushed
the
nmc/p1-pe-2e-regtest-aux-soak-harness
branch
from
June 20, 2026 11:34
c59a1ee to
8458431
Compare
frstrtr
added a commit
that referenced
this pull request
Jun 20, 2026
…e N/A Per integrator caveat (UID1666): the dual-path broadcaster gate spans deployment MODES (P2P for embedded, submitauxblock-RPC for external daemon), not redundant paths within embedded. Word LEG-1 as deferred to the external-daemon deployment soak (mainnet .140 path) and still needing its own on-the-wire verification -- never as N/A/covered -- so the gate keeps the record that submitauxblock was never proven on the wire.
This was referenced Jun 20, 2026
frstrtr
added a commit
that referenced
this pull request
Jun 20, 2026
…ed-template) Implements the integrator-decided PE-2e won-block seam: a test-only forced-won-share trigger + captured-GBT-template reconstruct, mirroring dgb #271. No BTC --regtest CLI / production surface added. - coin/block_assembly.hpp: assemble_won_block SSOT (reconstruct_block_header recomputes merkle_root via the aux_merkle_root branch walk; [gentx]++others; BlockType TX_WITH_WITNESS codec == live submitblock path). - coin/reconstruct_won_block.hpp: reconstruct_won_block_from_template, the version-agnostic broadcast source (current_work transactions[], not a share ref-walk). - test/reconstruct_won_block_test.cpp: forced-won-share seam drives the reconstruct; 4 KATs (seam fires faithful parent block / template is tx source in order / empty template => coinbase-only / non-empty branch recomputes root via SSOT). bytes round-trip, hex==HexStr. - build.yml: new target into BOTH allowlists (#143 NOT_BUILT trap). Per-coin isolation: src/impl/nmc/ only. p2pool-merged-v36 surface: NONE. Co-authored-by: frstrtr <frstrtr@users.noreply.github.com>
…te P2P won-block from 2d Per integrator design call (2026-06-20): embedded mode relies SOLELY on P2P relay for won-block propagation. submit_aux_block() is intentionally inert in-process (mirrors doge embedded path), so LEG 1 (submitauxblock) is external-RPC-deployment-only / N/A in the embedded soak -- never driven here. The dual-path submitblock fallback stays a DEPLOYMENT-level gate, kept explicit. LEG 2 (P2P primary) is the live embedded won-block route and is UN-GATED from 2d (#247/#253/#254 landed on master 294fb30). The end-to-end assert fires once the in-loop c2pool embedded regtest process drives node A -- next slice. Recut off origin/master (294fb30); scripts-only, fenced to scripts/.
…e N/A Per integrator caveat (UID1666): the dual-path broadcaster gate spans deployment MODES (P2P for embedded, submitauxblock-RPC for external daemon), not redundant paths within embedded. Word LEG-1 as deferred to the external-daemon deployment soak (mainnet .140 path) and still needing its own on-the-wire verification -- never as N/A/covered -- so the gate keeps the record that submitauxblock was never proven on the wire.
Three substrate corrections so the PE-2e regtest harness stands up against a real namecoind v31 (v31.99.0) instead of failing on first contact: - ports: NMC-distinct, env-overridable defaults (18743/18744/18753/18754) outside the 1844x bitcoin-family regtest band, so a co-resident sibling-coin regtest daemon (btc/bch on 18443/18444) never collides with this NMC soak. - wallet: explicit createwallet/loadwallet before getnewaddress -- namecoind v23+ descriptor era no longer auto-creates a default wallet. - template assert: createauxblock returns "bits" + "_target" (underscore), not "target"; assert the real field names. Substrate now green end-to-end: LEG1 aux-RPC live + chainid==1 conforms to aux_id.hpp SSOT + template well-formed; LEG2 paired-node P2P up (peers=1). Embedded c2pool won-block standup (drives node A) remains the next slice.
frstrtr
force-pushed
the
nmc/p1-pe-2e-regtest-aux-soak-harness
branch
from
June 20, 2026 16:58
ab08256 to
fcd5104
Compare
Won-block correctness now lives in the test-only KAT seam reconstruct_won_block_from_template (#276 @c525949b7, master 009ac59), per integrators forced-won-share decision (no --regtest CLI). Drop the now-stale "next slice: stand up embedded regtest process" framing; this soak stands as the P2P substrate validator + external-daemon deployment soak path. Comment-only, scripts-only, NMC-fenced.
Owner
Author
|
Superseded by #276 (merged @009ac59a). The forced-won-share KAT seam in #276 (reconstruct_won_block_from_template, 19/19 green) was chosen over the regtest-CLI substrate (#275, closed), so there is no embedded regtest substrate for this harness's LEG-2 live path to fire against, and the won-block proof now lives in #276's KATs. Closing as superseded rather than merging speculative soak scaffolding against a cut path. REVIVAL CONDITION: if an embedded regtest substrate (a --regtest BTC-parent CLI or equivalent in-process harness) ever lands, this branch/commits stay referenceable to revive the RPC-fallback + paired-node P2P soak legs. |
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.
NMC PE 2e won-block soak harness — substrate-ready prep, self-serviceable per integrator UID1601 (soak against namecoind -regtest, never mainnet; real-block/real-funds risk avoided).
Scope (scripts-only, NMC-fenced, non-stacking): zero overlap with #247 (share_tracker/aux_id); cut off master, not stacked.
scripts/gen-nmc-daemon-creds.sh— NMC-only regtest RPC creds self-provisioner (mirrors gen-bch-daemon-creds.sh; openssl-rand pass, localhost-only, never carded).scripts/nmc_regtest_aux_soak.sh— two legs:DRAFT / [GATED-ON-2D]: the c2pool-coupled won-block assertions (real submitauxblock + P2P relay) are marked GATED-ON-2D — they fire once PE 2d wires
submit_block()/submit_aux_block()out of their logged-only stubs (aux_chain_embedded.hpp:130-175). Lands together with the 2d tap. Substrate (nodes, creds, aux-RPC surface, peering) is validated and runnable now.v37 note: harness substrate, no consensus/share surface — pure tooling.