dgb(phase-b): AutoRatchet 60% tail-guard SSOT + conformance KAT - #406
Merged
Conversation
Lift the work-weighted 60% tail-guard predicate that gates AutoRatchet VOTING -> ACTIVATED into a fenced SSOT (auto_ratchet_tail_guard.hpp) and pin it against the p2pool-dgb-scrypt oracle switch rule (data.py:1399): SWITCHED iff target_weight >= floor(total_weight * 60 / 100), over uint288 work weights. The SSOT implements the EXACT canonical floor expression. The live inline in auto_ratchet.hpp uses the exact-rational form (target*100 < total*60), which diverges from the oracle floor in exactly one measure-zero case (target == floor(total*60/100) AND total*60 % 100 != 0), where the inline waits one extra work-quantum -- negligibly stricter, never observed at real uint288 scale. KAT pins both the canonical floor and that boundary divergence non-circularly (verbatim inline replica). auto_ratchet.hpp is NOT rewired -- delegation is the byte-identity follow-on. FENCED: additive header + test, both build.yml arms, dgb-tree-local, consensus path untouched. 9/9 green.
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.
Phase-B pool/share conformance pillar — work-weighted 60% tail guard vs the frstrtr/p2pool-dgb-scrypt oracle.
What
Lift the work-weighted 60% tail-guard predicate that gates AutoRatchet
VOTING -> ACTIVATEDinto a fenced SSOT (auto_ratchet_tail_guard.hpp) and pin it against the oracle switch rule (data.py:1399):This is the mint<->accept coupling (#288-class no-miss property): without it a 95%-by-COUNT activation can outrun the 60%-by-WORK accept gate and wedge the crossing.
Conformance finding (flagged for review)
The SSOT implements the exact canonical floor. The live inline in
auto_ratchet.hppuses the exact-rational formtarget*100 < total*60, which diverges from the oracle floor in exactly one measure-zero case —target == floor(total*60/100)ANDtotal*60 % 100 != 0— where the inline waits one extra work-quantum (negligibly STRICTER; never observed at real uint288 scale). The KAT pins both the canonical floor and that boundary divergence non-circularly via a verbatim inline replica.Fenced
auto_ratchet.hppconsensus path NOT rewired (delegation = byte-identity follow-on).Proof
dgb_auto_ratchet_tail_guard_test9/9 green locally (-DCOIN_DGB=ON). GPG-signed.No self-merge — surfacing for tap/auto-merge per fenced band.