bch: add G3a populated-block gate entrypoint (test-only; CI wiring follows separately) - #636
Merged
Conversation
frstrtr
added a commit
that referenced
this pull request
Jul 4, 2026
… follows separately) Companion to the G3a gate (#636). Fenced tests/gates/ entrypoint over existing COIN_BCH targets — zero consensus / shared-base / build.yml / CMake / other-coin surface. CI arm (network-free) proves the pool-side activation semantics via three in-process CHECK-harnesses: g2_ratchet_gate_kat (60%-by-work version SWITCH), cashtokens_transparency (Upgrade9 feature template carry), coinbase_author_kat (version-gated donation author). False-green guard demands a positive count and a full 3/3 match. Optional live arm (opt-in via BCH_UPGRADE9_HEIGHT) drives scripts/bch_g3b_genuine_activation_regtest.py for the consensus-side boundary: CashToken FT-genesis HARD-REJECTED pre-activation, ACCEPTED post-activation.
Mirror the DASH tests/gates/ G3a pattern for BCH: a fenced, deterministic gate over the existing COIN_BCH in-process CHECK-harnesses so G3a counts as a named CI required-gate (network-free CI arm) with an opt-in live regtest arm. CI arm (network-free): ctest over bch_embedded_daemon_assembly_test (block assembled from the real EmbeddedCoinNode seam), bch_embedded_block_broadcast_test (won block reaches network on both P2P + submitblock paths), bch_block_ordering_test (CTOR), bch_cashtokens_transparency_test (FT/NFT transparent carry), bch_coinbase_kat_bytevector_test (no-witness SHA256d coinbase). False-green guard demands a positive count AND the full expected set matched. Live arm (opt-in via BCH_RPC_PASS + BCH_RPC_AUTH): drives the already-merged scripts/bch_g3a_populated_block_regtest.py against an isolated regtest BCHN for the full A1-A7 attestation. Fenced: tests/gates/ entrypoint over existing targets; no consensus, shared-base, build.yml, CMake, or other-coin surface.
frstrtr
added a commit
that referenced
this pull request
Jul 4, 2026
… follows separately) (#639) Companion to the G3a gate (#636). Fenced tests/gates/ entrypoint over existing COIN_BCH targets — zero consensus / shared-base / build.yml / CMake / other-coin surface. CI arm (network-free) proves the pool-side activation semantics via three in-process CHECK-harnesses: g2_ratchet_gate_kat (60%-by-work version SWITCH), cashtokens_transparency (Upgrade9 feature template carry), coinbase_author_kat (version-gated donation author). False-green guard demands a positive count and a full 3/3 match. Optional live arm (opt-in via BCH_UPGRADE9_HEIGHT) drives scripts/bch_g3b_genuine_activation_regtest.py for the consensus-side boundary: CashToken FT-genesis HARD-REJECTED pre-activation, ACCEPTED post-activation. 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.
Adds tests/gates/bch_g3a_regtest_block_production.sh — a coin-specific G3a populated-block gate entrypoint.
SCOPE (rescoped per integrator, option a): entrypoint script ONLY. Fenced test-only additive — one file, zero consensus / shared-base / build.yml / CMake / other-coin surface.
CONSISTENCY: tests/gates/ already exists on master with two sibling gate entrypoints (g1_byte_parity_kat.sh, g3a_regtest_block_production.sh). None of them — nor any dash/btc/dgb g3a — are referenced from .github/ today. This PR follows that existing precedent; it does not introduce a novel unwired location.
CI arm (network-free): ctest -R over the 5 in-process COIN_BCH harnesses. False-green guard demands positive test count AND full 5/5 match.
Live arm: opt-in via BCH_RPC_PASS+BCH_RPC_AUTH, drives the already-merged scripts/bch_g3a_populated_block_regtest.py harness (A1-A7).
FOLLOW-UP (option b, separate PR): a workflow job that invokes the tests/gates/ family in CI. That touches shared build surface -> exceptional-change review path, wiring all entrypoints (g1 + generic g3a + bch g3a) together.