btc(g2): AutoRatchet rig-free SIM KAT — arms staged-migration C2/C3/C4 - #440
Merged
Conversation
Mirror of DGB #427 --sim-votes for BTC: gives the G2 staged-migration harness (scripts/btc_g2_ratchet_staged_migration_harness.sh) a rig-free verdict source for its C2/C3/C4 rows, which were GATED on a SHA256d rig window because BTC had no AutoRatchet sim KAT (DGB proves the same rows via its existing AutoRatchet KATs). Authorized as path (b). C2 VOTING mints the V35 baseline while voting V36 (empty-tracker bootstrap) C3 #288 accept gate is 60%-by-WORK, and a 95%-by-COUNT activation can NOT outrun it under heterogeneous hashrate (mint-cannot-outrun-accept) — pinned via a verbatim replica of the live inline tail-guard expression in AutoRatchet::get_share_version, plus a staged 1-by-1 migration whose work tally advances monotonically and activates only at full crossing C4 ratchet state persists across restart (CONFIRMED survives reconstruct) Rides the already-allowlisted btc_share_test target (build.yml lines 71/204), so it FIRES in CI with no allowlist/drift-guard change. Test-only, btc-tree local, no consensus / shared-base / build.yml / CMake-shared surface. 6/6 new pass; full btc_share_test 21/21 green.
frstrtr
added a commit
that referenced
this pull request
Jun 25, 2026
…ng coins (#496) rest_version_signaling() gated on a hardcoded {LITECOIN,DOGECOIN} allowlist, returning an empty object for every other coin. But BTC/DGB/BCH are also v36-ratcheting (each wires core::version_gate / AutoRatchet: #440 BTC, #293 DGB, #255 BCH). On those nodes the dashboard crossing banner was suppressed entirely, so an operator could not see the V35->V36 cross — a charter #3 blind spot (operators must see the ratchet truthfully, cross-coin). Invert the guard to exclude only static-version coins (Dash = v16), which genuinely have no pending transition. Coins whose sharechain stats carry no vote data fall through to the existing empty-result path below, so the banner stays hidden until there is real crossing state — no false banners. Web-only, non-consensus. 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.
Mirror of DGB #427
--sim-votesfor BTC (authorized path (b)). Gives the G2 staged-migration harness a rig-free verdict source for its C2/C3/C4 rows — previously GATED on a scarce SHA256d rig window because BTC had no AutoRatchet sim KAT (DGB proves the same rows via its existing AutoRatchet KATs).What it pins (6 KATs, BTC_AutoRatchetSim):
AutoRatchet::get_share_version, plus a staged 1-by-1 migration whose work tally advances monotonically and activates only at full crossing.Fence: test-only, btc-tree-local. Rides the already-allowlisted
btc_share_testtarget (build.yml :71/:204) → FIRES in CI, no build.yml / drift-guard change. No consensus / shared-base / shared-CMake surface.Evidence: 6/6 new pass; full
btc_share_test21/21 green locally. GPG-signed, no attribution. Separate PR — does NOT touch #436 (scripts-only fence stays clean).