dgb: wire AutoRatchet mint baseline base_version=35 (oracle-resolved) [HOLD/surface-for-tap] - #293
Merged
Merged
Conversation
The DGB VOTING-state baseline share version was a [decision-needed] held on PR #292. Resolved against the canonical oracle frstrtr/p2pool-dgb-scrypt @22761e7 (2026-06-17): data.py:636 Share.VERSION=35, VOTING_VERSION=35, SUCCESSOR=None, share_versions={35:Share}; networks/digibyte.py:26 SEGWIT_ACTIVATION_VERSION=35. SUCCESSOR=None means 35 is the format the live node currently mints, so base_version=35 is unambiguous. The "older than LTC" divergence is the P2P PROTOCOL version (p2p.py VERSION=3501 vs LTC 3503), not the share version. New fenced header auto_ratchet_wire.hpp is the single production location of the baseline constant: make_dgb_ratchet() constructs AutoRatchet(target=36, base=35) and dgb_select_mint_versions() is the run-loop selector. The work-weighted tail guard already inside get_share_version keeps mint activation subordinate to the 60%-by-work accept gate (#249/#289) -- this seam adds no new policy. base_version stays an explicit constructor param so the v37 unified shape is clean. De-staled the [decision-needed] notes in auto_ratchet.hpp and share_test.cpp. +2 KATs pin the wired constant and bootstrap mint=35/vote=36; dgb_share_test 22/22 green. Surface-for-tap (consensus-bearing version-gate flip), HOLD.
frstrtr
added a commit
that referenced
this pull request
Jun 23, 2026
…#293) The DGB VOTING-state baseline share version was a [decision-needed] held on PR #292. Resolved against the canonical oracle frstrtr/p2pool-dgb-scrypt @22761e7 (2026-06-17): data.py:636 Share.VERSION=35, VOTING_VERSION=35, SUCCESSOR=None, share_versions={35:Share}; networks/digibyte.py:26 SEGWIT_ACTIVATION_VERSION=35. SUCCESSOR=None means 35 is the format the live node currently mints, so base_version=35 is unambiguous. The "older than LTC" divergence is the P2P PROTOCOL version (p2p.py VERSION=3501 vs LTC 3503), not the share version. New fenced header auto_ratchet_wire.hpp is the single production location of the baseline constant: make_dgb_ratchet() constructs AutoRatchet(target=36, base=35) and dgb_select_mint_versions() is the run-loop selector. The work-weighted tail guard already inside get_share_version keeps mint activation subordinate to the 60%-by-work accept gate (#249/#289) -- this seam adds no new policy. base_version stays an explicit constructor param so the v37 unified shape is clean. De-staled the [decision-needed] notes in auto_ratchet.hpp and share_test.cpp. +2 KATs pin the wired constant and bootstrap mint=35/vote=36; dgb_share_test 22/22 green. Surface-for-tap (consensus-bearing version-gate flip), HOLD. Co-authored-by: frstrtr <frstrtr@users.noreply.github.com>
frstrtr
added a commit
that referenced
this pull request
Jun 23, 2026
…mer seam Re-lands the #294 mint_local_share_with_ratchet helper, which was lost from master in the #292/#293/#294 stacked squash-merge (no #294 merge commit reaches origin/master; the primitives dgb_select_mint_versions + create_local_share survive). This is the consumer adapter DGBWorkSource::MintShareFn binds to (work_source.hpp:197): on a ShareAccept submission it parses the 80-byte reconstructed header, asks the live AutoRatchet for the {mint, vote} version pair, and inserts the share via create_local_share, returning the minted hash (NULL on a malformed header / fail-closed). Authored against master createlocal_share signature (authoritative). Duck-typed on the inputs so the header does not pull the stratum work_source TU in. Pure adapter: tracker-insertion thread-safety is the caller bind point concern. KAT (dgb_share_test, no new exe): 80-byte header parse round-trip, short-buffer fail-closed, and adapter fail-closed + template instantiation drift-guard against create_local_share. 25/25 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.
DGB Phase B — AutoRatchet mint baseline wire-in (base_version=35)
Closes the
[decision-needed]that held #292: DGB's VOTING-state baseline share version.Resolved against the oracle
frstrtr/p2pool-dgb-scrypt @22761e7(2026-06-17):data.py:636—Share.VERSION=35, VOTING_VERSION=35, SUCCESSOR=None, share_versions={35:Share}networks/digibyte.py:26—SEGWIT_ACTIVATION_VERSION=35SUCCESSOR=None⇒ 35 is the format the live node currently mints ⇒base_version=35is unambiguous. The "older than LTC" axis is the P2P protocol version (p2p.py VERSION=3501vs LTC3503), not the share version.What this does
auto_ratchet_wire.hpp— single production home of the baseline constant.make_dgb_ratchet()constructsAutoRatchet(target=36, base=35);dgb_select_mint_versions()is the run-loop selector that returns{mint, vote}.get_share_versionkeeps mint activation subordinate to the 60%-by-work accept gate (dgb(test): pin get_desired_version_weights attempts-weighting conformance #249/dgb: standardize AutoRatchet mint gate to work-weighted accept gate (contract) #289) — no new policy here.[decision-needed]notes inauto_ratchet.hpp+share_test.cpp.dgb_share_test22/22 green.Review posture
dgb/auto-ratchet-mint) which suppliesauto_ratchet.hpp; this is the SEPARATE wire-in PR integrator requested. Touchessrc/impl/dgb/only.