Skip to content

btc/test: G3 block-production harness (regime-independent FOUND->ASSEMBLED->ACCEPTED) - #379

Merged
frstrtr merged 1 commit into
masterfrom
btc/g3-block-production-harness
Jun 23, 2026
Merged

btc/test: G3 block-production harness (regime-independent FOUND->ASSEMBLED->ACCEPTED)#379
frstrtr merged 1 commit into
masterfrom
btc/g3-block-production-harness

Conversation

@frstrtr

@frstrtr frstrtr commented Jun 23, 2026

Copy link
Copy Markdown
Owner

Pin-independent, VM-independent G3 scaffolding per integrator dispatch (msgid 178223181942...).

Drives the won-block path FOUND -> ASSEMBLED -> ACCEPTED across the three share-version regimes (v35 / HYBRID activation-boundary / v36) and asserts the dual-path broadcaster reaches the network in every regime under both a healthy P2P sink and an RPC-only fallback.

Load-bearing invariant locked: regime | reaches_network. core::version_gate governs SHARE encoding / consensus revision ONLY -- it must never gate whether a found block reaches the chain. v35 and v36 wins are equally entitled to hit the network; the harness fails loud if the gate ever leaks into the broadcast outcome.

  • Uses the REAL core::version_gate SSOT and the REAL broadcast_block_with_fallback seam.
  • Terminal ACCEPTED-by-bitcoind leg modelled by sink fakes; swaps to the live regtest path (regtest bitcoind + bitaxe) when VM130 auth lands -- same state machine, only the two sink lambdas change.
  • Standalone g++ harness in the block_broadcast_test.cpp style; off the CI allowlist (no dgb: conform subsidy to p2pool-dgb-scrypt oracle (COIN=1e6, weeks+1) [COMPAT] #137 NOT_BUILT) until the G2/G3 VM lane is authorized.
  • Does NOT touch the Forrest-vs-jtoomim share-format pin (G0/G1) -- fully orthogonal.

Build/run:
g++ -std=gnu++20 -I src -I src/btclibs src/impl/btc/test/g3_block_production_test.cpp -o /tmp/g3_block_production_test && /tmp/g3_block_production_test

18/18 local PASS. Fenced to src/impl/btc/test/ (+166/-0). Signed, attribution-clean.

…gime-independent)

Pin-independent, VM-independent scaffolding for the G3 block-production
gate. Drives the won-block path FOUND -> ASSEMBLED -> ACCEPTED across the
three share-version regimes (v35 / HYBRID activation-boundary / v36) and
asserts the dual-path broadcaster reaches the network in every regime
under both a healthy P2P sink and an RPC-only fallback.

Locks the load-bearing invariant regime _|_ reaches_network: core::
version_gate governs the SHARE encoding / consensus revision only and
must never gate whether a found block reaches the chain. Uses the real
version_gate SSOT and the real broadcast_block_with_fallback seam; the
terminal ACCEPTED-by-bitcoind leg is modelled by sink fakes and swaps to
the live regtest path when VM130 auth lands. Standalone g++ harness in
the block_broadcast_test.cpp style -- off the CI allowlist (no #137
NOT_BUILT) until the G2/G3 VM lane is authorized. 18/18 local PASS.
@frstrtr
frstrtr merged commit db46ad1 into master Jun 23, 2026
20 checks passed
frstrtr added a commit that referenced this pull request Jun 23, 2026
btc/test: G3 block-production harness (regime-independent FOUND->ASSEMBLED->ACCEPTED)
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