Skip to content

nmc(PE-2d): submit_aux_block surfaces false in embedded mode (no silent success) - #253

Merged
frstrtr merged 1 commit into
masterfrom
nmc/pe-2d-submit-aux-block-no-silent-success
Jun 20, 2026
Merged

nmc(PE-2d): submit_aux_block surfaces false in embedded mode (no silent success)#253
frstrtr merged 1 commit into
masterfrom
nmc/pe-2d-submit-aux-block-no-silent-success

Conversation

@frstrtr

@frstrtr frstrtr commented Jun 20, 2026

Copy link
Copy Markdown
Owner

What

Embedded submit_aux_block() returned an unconditional true. The submitauxblock RPC route is external-namecoind-only and is not a same-process fallback like BTC submitblock-to-bitcoind, so the embedded RPC leg cannot itself broadcast and must not claim success. It now returns false, mirroring submit_block() never-silent-drop (#162). The P2P relay via submit_block() is the one authoritative embedded route.

Why

Integrator UID1610 ratified this as a hard blocker for 2e: a won-block soak that asserts green while zero broadcast occurred is green-by-construction — the precise failure the broadcaster gate exists to catch. This supersedes integrator note #3.

Scope / fence

  • Fenced to src/impl/nmc/ (coin impl + KAT). No core, no host, no build.yml change.
  • KAT renamed SubmitAuxBlockFallbackLegIsDistinctFromP2PRelaySubmitAuxBlockRpcLegSurfacesFalseInEmbeddedMode, asserts false, keeps the distinct no-cache invariant.
  • nmc_template_builder_test: 17/17 PASS.

Sequencing

This is punch-list item (2) of the 2d broadcaster gate, landed early off master (non-colliding with the tap-gated #247/#251). Punch-list item (1) host m_block_relay→CoinBroadcaster wiring + #251 won-block un-gate stay queued behind the #247/#251 operator tap. Cut off origin/master, not stacked. I do not self-merge.

…nt success)

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.
@frstrtr
frstrtr merged commit 7d8d341 into master Jun 20, 2026
18 checks passed
@frstrtr
frstrtr deleted the nmc/pe-2d-submit-aux-block-no-silent-success branch June 20, 2026 02:34
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 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/.
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