Skip to content

dgb: SSOT think() Phase-2 verification-extension walk bounds + non-circular KAT - #362

Merged
frstrtr merged 1 commit into
masterfrom
dgb/think-p2-walk-bounds
Jun 23, 2026
Merged

dgb: SSOT think() Phase-2 verification-extension walk bounds + non-circular KAT#362
frstrtr merged 1 commit into
masterfrom
dgb/think-p2-walk-bounds

Conversation

@frstrtr

@frstrtr frstrtr commented Jun 23, 2026

Copy link
Copy Markdown
Owner

Phase-B pool/share pillar (off live master, NOT stacked on #360 — avoids the dead-base trap).

What

Lift the inline want/can/get walk-bound arithmetic from share_tracker.hpp think() Phase 2 into a header-only SSOT src/impl/dgb/think_p2_walk_bounds.hpp, sibling to the Phase-1 think_p1_walk_bounds.hpp landed in #353.

Oracle (p2pool data.py:2098-2103)

want = max(CHAIN_LENGTH - head_height, 0)
can  = last_height                            if unrooted (last_last is None)
     = max(last_height - 1 - CHAIN_LENGTH, 0) otherwise
get  = min(want, can)

Fence

  • dgb/ tree-local only; header-only; share_tracker.hpp NOT yet rewired (byte-identity delegation is the follow-on, off updated master once this lands).
  • Consensus-neutral pure arithmetic — no subsidy/payout/version-gate/PPLNS touched.
  • KAT 4/4: expectations hand-derived from the oracle formula, not read back from the subject (non-circular).
  • Registered in dir CMakeLists.txt + both build.yml --target allowlists (no ci: build test_dgb_subsidy in both Linux test jobs (fix master-red NOT_BUILT) #143 NOT_BUILT sentinel).

Verify

dgb_think_p2_walk_bounds_test 4/4 PASSED locally; GPG-signed a9d1733.

@frstrtr
frstrtr force-pushed the dgb/think-p2-walk-bounds branch 2 times, most recently from 6e1fb9f to 332e139 Compare June 23, 2026 14:15
@frstrtr
frstrtr force-pushed the dgb/think-p2-walk-bounds branch 2 times, most recently from 7db1498 to 7d2887b Compare June 23, 2026 17:37
@frstrtr
frstrtr force-pushed the dgb/think-p2-walk-bounds branch from 7d2887b to a58695a Compare June 23, 2026 18:45
…rcular KAT

Lift the inline want/can/get walk-bound arithmetic from share_tracker.hpp
think() Phase 2 into a header-only SSOT (think_p2_walk_bounds.hpp), sibling
to the Phase-1 think_p1_walk_bounds.hpp landed in #353. Pins the three
integer decisions per verified head against the p2pool data.py:2098-2103
oracle:
  want = max(CHAIN_LENGTH - head_height, 0)
  can  = last_height                          if unrooted
       = max(last_height - 1 - CHAIN_LENGTH, 0) otherwise
  get  = min(want, can)

FENCED, additive: dgb/ tree-local only, header-only, share_tracker.hpp is
NOT yet rewired (byte-identity delegation is the follow-on). Consensus-
neutral pure arithmetic. KAT (4/4) hand-derives expectations from the
oracle formula, not the subject. Registered in both the dir CMakeLists.txt
and both build.yml --target allowlists (avoids #143 NOT_BUILT sentinel).
@frstrtr
frstrtr force-pushed the dgb/think-p2-walk-bounds branch from a58695a to e93f5b4 Compare June 23, 2026 20:46
@frstrtr
frstrtr merged commit 8b1ee9f into master Jun 23, 2026
33 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