Skip to content

Bootstrap Parameters Module #387

@lowhung

Description

@lowhung

Context

The Parameters State module tracks protocol parameters across eras (Byron through Conway) by processing governance outcomes at epoch boundaries. Currently expects GovernanceOutcome messages starting from genesis to build up parameter history through era transitions.

Problem

When bootstrapping from a snapshot (e.g., epoch 500), the parameters state module needs to initialize with the correct protocol parameters for that epoch rather than replaying all governance outcomes from genesis. According to the CDDL specification, protocol parameters are stored in the snapshot at:

  • Current parameters: gs_current_pparams at NewEpochState[3][1][1][3][3] (gov_state)
  • Previous parameters: gs_previous_pparams at NewEpochState[3][1][1][3][4] (gov_state)
  • Committee state: gs_committee at NewEpochState[3][1][1][3][1]
  • Constitution: gs_constitution at NewEpochState[3][1][1][3][2]
    So we know they're there!

Acceptance Criteria

  • Parameters state initializes from snapshot gov_state during bootstrap
  • Current and previous protocol parameters loaded from snapshot
  • Bootstrap data validates against Blockfrost parameters endpoints

Testing Requirements

  • Blockfrost /epochs/{epoch}/parameters endpoint matches bootstrap data

Definition of Done

  • Parameters state initializes from snapshot without replaying governance outcomes
  • Current and previous parameters accurate after bootstrap
  • Blockfrost API validation confirms correctness

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions