-
Notifications
You must be signed in to change notification settings - Fork 5
Open
Milestone
Description
Context
The SPO State module manages stake pool registrations, parameters, retirements, and block production tracking. It currently expects incremental message processing from genesis via a number of subscriptions.
Problem
When bootstrapping from a snapshot (e.g., epoch 500), the SPO state module needs to initialize from parsed snapshot data sent by the bootstrapper. The SPO state module should receive everything needed to initialize.
For some added context, the bootstrapper parses NewEpochState CBOR (I believe this is from p_state and blocks_made) and sends initialization messages via the snapshot topic. This ticket may require some tinkering to the streaming_parser and you will need to implement the callback for this module in the bootstrapper.
Acceptance Criteria
- Bootstrapper sends information required to bootstrap SPO state module
- Module handles bootstrap message containing all required SPO state
- Normal SPO state processing continues after bootstrap completes (via Mithril or Peer Networking / Upstream fetcher).
Testing Requirements
- Bootstrap data validates against Blockfrost pools API
Definition of Done
- SPO state initializes from snapshot without replaying chain history
- All pool registrations, retirements, and block statistics accurate after bootstrap
- Blockfrost API validation confirms correctness
Metadata
Metadata
Assignees
Labels
No labels