Skip to content

dgb: delegate naughty-propagation onto coin SSOT (byte-identity rewire) - #448

Merged
frstrtr merged 1 commit into
masterfrom
dgb/naughty-propagation-delegate
Jun 24, 2026
Merged

dgb: delegate naughty-propagation onto coin SSOT (byte-identity rewire)#448
frstrtr merged 1 commit into
masterfrom
dgb/naughty-propagation-delegate

Conversation

@frstrtr

@frstrtr frstrtr commented Jun 24, 2026

Copy link
Copy Markdown
Owner

What

Byte-identity delegation follow-on to #445. Rewires the inline naughty-propagation ancestor-punishment body in share_tracker.hpp onto dgb::propagate_naughty_from_parent() (the SSOT landed in #445).

Why this is value-identical

The SSOT encodes both the generation arithmetic and the oracle parent is naughty guard (p2pool-dgb-scrypt data.py:543-549):

  • engaged <=> parent_idx->naughty > 0 (prior inline guard)
  • value = 1 + parent_naughty, reset to 0 when > 6
  • nullopt for a non-naughty parent => child counter left untouched (never zeroed), exactly the prior if (... naughty > 0) branch

No consensus value changes vs the pre-delegation inline path. This is the behavioral-rewire follow-on integrator flagged for separate diffing.

Scope / isolation

src/impl/dgb/share_tracker.hpp only (+1 include, body delegated). dgb/ per-coin isolation holds; no shared/bitcoin_family or other-coin tree touched.

Stacking

Base = dgb/naughty-propagation-ssot (#445), where the SSOT header lives. Retarget -> master after #445 lands.

Proof

  • dgb_share_test 33/33
  • dgb_naughty_propagation_test 4/4

Rewire the inline ancestor-punishment body at share_tracker.hpp:566-578
onto dgb::propagate_naughty_from_parent() from coin/naughty_propagation.hpp
(landed in the SSOT slice). The SSOT encodes BOTH the +1/clamp-at-6
generation arithmetic and the oracle "parent is naughty" guard
(data.py:543-549): it returns nullopt for a non-naughty parent, which is
exactly the prior `parent_idx->naughty > 0` branch -- the child counter is
left untouched in that case, never zeroed.

Value-identical to the pre-delegation inline path:
  engaged  <=> parent_idx->naughty > 0
  value     = 1 + parent_naughty, reset to 0 when > 6
No consensus value changes; this is the behavioral rewire follow-on to the
fenced SSOT. dgb/ only, per-coin isolation holds.

Proof: dgb_share_test 33/33, dgb_naughty_propagation_test 4/4.
@frstrtr
frstrtr force-pushed the dgb/naughty-propagation-delegate branch from ae51317 to cdde321 Compare June 24, 2026 18:39
@frstrtr
frstrtr changed the base branch from dgb/naughty-propagation-ssot to master June 24, 2026 18:39
@frstrtr
frstrtr merged commit 3650198 into master Jun 24, 2026
25 checks passed
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