-
Notifications
You must be signed in to change notification settings - Fork 6
Closed
Milestone
Description
Context
The Acropolis Cardano node bootstraps from snapshot files containing new epoch state information. These snapshots include delegation state, pulsing reward updates/snapshot, pool registrations, and stake account information. The snapshot bootstrap process must correctly parse and interpret this data to generate accurate Stake Pool Delegation Distribution (SPDD) and initialize the node with state that matches the Cardano ledger.
Problem
The snapshot bootstrap was using incorrect reward data for stake calculations. Specifically:
- Wrong data source: Using instantaneous reward account balances from
DStateinstead of the reward snapshot frompulsing_rew_updateinNewEpochState - Inaccurate stake distribution: Generated SPDD didn't match cardano-db-sync
epoch_stakedata
This resulted in the node starting with incorrect stake distribution, which could affect consensus and validation going forward.
Acceptance Criteria
- Rewards are extracted from
pulsing_rew_updatesnapshot instead ofDState - Parser handles both pulsing (in-progress) and completed reward update variants
- Generated SPDD matches cardano-db-sync
epoch_staketable for test epochs - Rewards verifier matches up expected rewards with actual rewards
- Bootstrap process correctly aggregates rewards per stake credential
Testing Requirements
- Verification test comparing generated SPDD against db-sync
epoch_stakedata - Use accounts_state/verifier.rs method along with csv containing rewards to ensure rewards match up
Definition of Done
- SPDD output verified against cardano-db-sync for at least 2 different epochs
- No regressions in booting from snapshot
Metadata
Metadata
Assignees
Labels
No labels