Skip to content

btc: F10/(b) complete — delete residual flat-count version-punish - #365

Merged
frstrtr merged 1 commit into
masterfrom
btc/f10b-version-punish-remove
Jun 23, 2026
Merged

btc: F10/(b) complete — delete residual flat-count version-punish#365
frstrtr merged 1 commit into
masterfrom
btc/f10b-version-punish-remove

Conversation

@frstrtr

@frstrtr frstrtr commented Jun 23, 2026

Copy link
Copy Markdown
Owner

Standalone F10/(b)-completion for the BTC twin, per integrator dispatch. Kept SEPARATE from btc/f11-donation-exclude (different consensus axis).

What

Deletes the non-canonical 95%-flat-count version-obsolescence punish that the gap-audit found HALF-APPLIED on BTC (share_check.hpp:1751 already carried the F10/(b) marker; the punish path itself was still live).

  • delete ShareTracker::should_punish_version (share_tracker.hpp:2689) + its live head-decoration call (share_tracker.hpp:1198, reason=1) — head-scoring now punishes only naughty heads
  • delete dead AutoRatchet::validate_version_switch (auto_ratchet.hpp:279; zero callers in src/impl/btc/)
  • mirrors landed LTC (share_tracker.hpp:2670) / DGB (:2651) removal, same F10/(b) marker
  • new f10b_version_punish_removal_test.cpp (3 KATs); full btc_share_test 9/9 local

Acceptance vs dispatch

  1. Branch off MASTER ✅ (origin/master c1f62f2)
  2. should_punish_version def+call deleted, marker present ✅
  3. dead validate_version_switch deleted ✅
  4. scope src/impl/btc/ ONLY ✅ (no core, no bitcoin_family, no other coin tree)
  5. CI rollup — pending on this push (head 80c8281)
  6. Consensus-bearing — HOLD for operator merge, NOT self-merged

One intentional marker divergence from LTC (flagging for byte-parity re-verify)

The removal marker clause describing BTC own ratchet reads "AutoRatchet (work-weighted, per #290)" where LTC reads "count-based AutoRatchet". This is deliberate: BTC ratchet IS work-weighted post-#290; LTC is count-based. The deleted code + call-site removal are pattern-identical; only this one factual clause differs. Making it byte-identical would put a wrong comment on BTC.

Head SHA: 80c8281

Removes the non-canonical 95%-flat-count version-obsolescence punish that
the gap-audit found half-applied on the BTC twin (share_check.hpp already
carried the F10/(b) marker; the punish path itself was still live).

- delete ShareTracker::should_punish_version (share_tracker.hpp) and its
  live head-decoration call (formerly :1198, reason=1); head-scoring now
  punishes only naughty heads, matching canonical Phase-4 tip selection
- delete dead AutoRatchet::validate_version_switch (auto_ratchet.hpp;
  zero callers in src/impl/btc/) — the version gate is the check() 60%
  PPLNS-weighted switch rule in share_check step 2
- mirrors the landed LTC (share_tracker.hpp:2670) / DGB (:2651) removal,
  with the same F10/(b) removal marker
- new f10b_version_punish_removal_test.cpp (3 KATs) locks the accept-gate
  vs head-selection invariant on the version axis; full btc_share_test 9/9

Scope: src/impl/btc/ only. Consensus-bearing (tip selection) — hold for
operator merge.
@frstrtr
frstrtr merged commit 5f26628 into master Jun 23, 2026
20 checks passed
frstrtr added a commit that referenced this pull request Jun 23, 2026
Removes the non-canonical 95%-flat-count version-obsolescence punish that
the gap-audit found half-applied on the BTC twin (share_check.hpp already
carried the F10/(b) marker; the punish path itself was still live).

- delete ShareTracker::should_punish_version (share_tracker.hpp) and its
  live head-decoration call (formerly :1198, reason=1); head-scoring now
  punishes only naughty heads, matching canonical Phase-4 tip selection
- delete dead AutoRatchet::validate_version_switch (auto_ratchet.hpp;
  zero callers in src/impl/btc/) — the version gate is the check() 60%
  PPLNS-weighted switch rule in share_check step 2
- mirrors the landed LTC (share_tracker.hpp:2670) / DGB (:2651) removal,
  with the same F10/(b) removal marker
- new f10b_version_punish_removal_test.cpp (3 KATs) locks the accept-gate
  vs head-selection invariant on the version axis; full btc_share_test 9/9

Scope: src/impl/btc/ only. Consensus-bearing (tip selection) — hold for
operator merge.

Co-authored-by: frstrtr <frstrtr@users.noreply.github.com>
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