Skip to content

rewards: preserve inactive stake credits and checkpoint recovery - #286

Closed
7layermagik wants to merge 4 commits into
alpenglow-devfrom
7layer/pr-epoch-rewards-correctness
Closed

7layermagik wants to merge 4 commits into
alpenglow-devfrom
7layer/pr-epoch-rewards-correctness

Conversation

@7layermagik

@7layermagik 7layermagik commented Sep 24, 2026 •

Copy link
Copy Markdown

Consolidated into #292. This review is closed to keep the agreed four-PR structure; its commits are preserved in the replacement.

Correct epoch-transition inputs and checkpoint recovery independently of the performance work.

  • Preserve credits observed for fully cooled stake accounts when no reward is earned. The captured epoch-116 regression covers the 33 affected stakes and expected bank hash.
  • Preserve completed reward-distribution bookkeeping and fold its checkpoint window atomically only after verified completion. A zero remaining-partition counter alone does not establish safe completion.
  • Include the small retirement helper required by the checkpoint fix. Preserve Shaun Colley's authorship and omit the incident scratch report.

Validation: targeted epoch/rewards/replay regression tests pass. The complete replay and rewards package suites also pass in the dependent checkpoint branch. The captured fixture is not a fresh full-cluster replay or deployment.

smcio and others added 4 commits September 24, 2026 00:15
Retain activation status from the existing points calculation and exclude inactive stakes from the Alpenglow skipped-reward credit advance. Preserve explicit forced-update cases.

Add an epoch-116 fixture that reproduces the original slot 6264001 bank hash before the fix and the expected footer hash afterward. Include reward regressions in the race CI job.
Keep the epoch boundary replayable when distribution consumes its last spool before a failed bank verification. Apply the hold again after finality gating, and commit the full reward window atomically so ordinary fold batches cannot leave an unrecoverable active EpochRewards checkpoint.

Cover failed distribution, finality lag, completion generations, small fold batches and failed-commit retry. Document the epoch-116 diagnosis, bank-hash evidence and verified recovery checkpoint.
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.

2 participants