cardano course
  • Welcome!
  • Video lessons
  • Handbook
    • Module 1. Building and running the node
      • Building the node
      • Running the node and connecting to a network
    • Module 2. Basic operations
      • Creating keys and addresses
      • Creating a simple transaction
      • Registering the stake address and delegating
    • Module 3. Protocol parameters and configuration files
      • Protocol parameters
      • Byron genesis file
      • Shelley genesis file
      • Alonzo genesis file
      • Conway genesis file
      • Node configuration file
      • Topology file
    • Module 4. Peer-to-peer (P2P) networking
    • Module 5. Creating a stake pool
      • The setup
      • Generating keys
      • Registering a stake pool
      • Runtime system options
      • Running the nodes
      • Stake snapshots
      • Upgrading cardano-node and cardano-cli
      • Pool operations and maintenance
      • Retiring a stake pool
    • Module 6. Monitoring the nodes
    • Module 7. Cardano governance
      • Update proposals
      • Polls
    • Module 8. Setting up a local cluster
      • Creating a local cluster
      • Spending the genesis UTXO
      • From Byron to Shelley
      • Moving funds to a Shelley address
      • Creating a first stake pool
      • Bringing decentralization parameter down to .80
      • From Shelley to Alonzo
      • Creating a second stake pool before moving to the Babbage era
      • Redelegating genesis keys
      • Vasil hard fork
      • Creating a local cluster with the mkfiles script
    • Module 9. Simple scripts and Plutus scripts
    • Module 10. New tracing system
    • Module 11. Running the SMASH server
    • Module 12. Running the token metadata server
  • Curated playlist
Powered by GitBook
On this page

Was this helpful?

Edit on GitHub
  1. Handbook
  2. Module 5. Creating a stake pool

Stake snapshots

PreviousRunning the nodesNextUpgrading cardano-node and cardano-cli

Last updated 1 year ago

Was this helpful?

At every epoch transition, the system performs a stake distribution snapshot. These snapshots are used for the slot leader election process and consist of:

  • Stake: a mapping of credentials to lovelace

  • Delegations: a mapping of credentials to stake pools

  • Pool parameters: each stake pool's parameters storage

At any given time, the system must store the last three snapshots. To keep track of snapshots, Mark, Set, and Go naming is used. Mark is the most recent one, which becomes Set after an epoch and Go after another epoch.

A snapshot Mark at epoch transition from EpochN to EpochN+1 will be used for the slot leader election process during EpochN+2, when it becomes Set. Finally, it is employed for rewards calculation during Epoch N+3 when it becomes Go.

On any current epoch, Mark is not actively used, Set is used for the slot leader election process, and Go is used for the rewards calculation:

You can query the stake snapshots:

cardano-cli query stake-snapshot --testnet-magic 2 --stake-pool-id <POOL_ID>
{
    "activeStakeGo": 145769691498797,
    "activeStakeMark": 147258956481483,
    "activeStakeSet": 146034637994668,
    "poolStakeGo": 9497641630,
    "poolStakeMark": 9497641630,
    "poolStakeSet": 9497641630
}

For more details, please see section 11.1 of the .

Shelley ledger specification