cardano-ledger-core-1.17.0.0: Core components of Cardano ledgers from the Shelley release on.
Safe HaskellSafe-Inferred
LanguageHaskell2010

Cardano.Ledger.PoolDistr

Description

The stake distribution, aggregated by stake pool (as opposed to stake credential), plays a primary role in Cardano's proof of stake network. Together with the VRF checks, the stake distribution determines leader election. The leader election is the precisely the part of the ledger that is determined by Ouroboros (Praos and Genesis), our consensus mechanism. See Section 16, "Leader Value Calculation", of the formal specification.

Synopsis

Documentation

data IndividualPoolStake Source #

The IndividualPoolStake contains all the stake controlled by a single stake pool (the combination of owners and delegates) for a given epoch, and also the hash of the stake pool's registered VRF key.

When a stake pool produces a block, the header contains the full VRF verification key and VRF value for leader election. We check the VRF key against the value in IndividualPoolStake and we check the VRF value using the epoch nonce and the relative stake of the pool as given in IndividualPoolStake. The stake is relative to the total amount of active stake in the network. Stake is active if it is both registered and delegated to a registered stake pool.

Constructors

IndividualPoolStake 

Fields

Instances

Instances details
ToJSON IndividualPoolStake Source # 
Instance details

Defined in Cardano.Ledger.PoolDistr

Generic IndividualPoolStake Source # 
Instance details

Defined in Cardano.Ledger.PoolDistr

Associated Types

type Rep IndividualPoolStakeTypeType #

Show IndividualPoolStake Source # 
Instance details

Defined in Cardano.Ledger.PoolDistr

DecCBOR IndividualPoolStake Source # 
Instance details

Defined in Cardano.Ledger.PoolDistr

EncCBOR IndividualPoolStake Source # 
Instance details

Defined in Cardano.Ledger.PoolDistr

NFData IndividualPoolStake Source # 
Instance details

Defined in Cardano.Ledger.PoolDistr

Methods

rnfIndividualPoolStake → () #

Eq IndividualPoolStake Source # 
Instance details

Defined in Cardano.Ledger.PoolDistr

NoThunks IndividualPoolStake Source # 
Instance details

Defined in Cardano.Ledger.PoolDistr

type Rep IndividualPoolStake Source # 
Instance details

Defined in Cardano.Ledger.PoolDistr

type Rep IndividualPoolStake = D1 ('MetaData "IndividualPoolStake" "Cardano.Ledger.PoolDistr" "cardano-ledger-core-1.17.0.0-inplace" 'False) (C1 ('MetaCons "IndividualPoolStake" 'PrefixI 'True) (S1 ('MetaSel ('Just "individualPoolStake") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Rational) :*: (S1 ('MetaSel ('Just "individualTotalPoolStake") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (CompactForm Coin)) :*: S1 ('MetaSel ('Just "individualPoolStakeVrf") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (VRFVerKeyHash 'StakePoolVRF)))))

data PoolDistr Source #

A map of stake pool IDs (the hash of the stake pool operator's verification key) to IndividualPoolStake. Also holds absolute values necessary for the calculations in the computeDRepDistr.

Constructors

PoolDistr 

Fields

Instances

Instances details
ToJSON PoolDistr Source # 
Instance details

Defined in Cardano.Ledger.PoolDistr

Generic PoolDistr Source # 
Instance details

Defined in Cardano.Ledger.PoolDistr

Associated Types

type Rep PoolDistrTypeType #

Methods

fromPoolDistrRep PoolDistr x #

toRep PoolDistr x → PoolDistr #

Show PoolDistr Source # 
Instance details

Defined in Cardano.Ledger.PoolDistr

Methods

showsPrecIntPoolDistrShowS #

showPoolDistrString #

showList ∷ [PoolDistr] → ShowS #

DecCBOR PoolDistr Source # 
Instance details

Defined in Cardano.Ledger.PoolDistr

EncCBOR PoolDistr Source # 
Instance details

Defined in Cardano.Ledger.PoolDistr

Methods

encCBORPoolDistrEncoding Source #

encodedSizeExpr ∷ (∀ t. EncCBOR t ⇒ Proxy t → Size) → Proxy PoolDistrSize Source #

encodedListSizeExpr ∷ (∀ t. EncCBOR t ⇒ Proxy t → Size) → Proxy [PoolDistr] → Size Source #

NFData PoolDistr Source # 
Instance details

Defined in Cardano.Ledger.PoolDistr

Methods

rnfPoolDistr → () #

Eq PoolDistr Source # 
Instance details

Defined in Cardano.Ledger.PoolDistr

Methods

(==)PoolDistrPoolDistrBool #

(/=)PoolDistrPoolDistrBool #

NoThunks PoolDistr Source # 
Instance details

Defined in Cardano.Ledger.PoolDistr

type Rep PoolDistr Source # 
Instance details

Defined in Cardano.Ledger.PoolDistr

type Rep PoolDistr = D1 ('MetaData "PoolDistr" "Cardano.Ledger.PoolDistr" "cardano-ledger-core-1.17.0.0-inplace" 'False) (C1 ('MetaCons "PoolDistr" 'PrefixI 'True) (S1 ('MetaSel ('Just "unPoolDistr") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Map (KeyHash 'StakePool) IndividualPoolStake)) :*: S1 ('MetaSel ('Just "pdTotalActiveStake") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (CompactForm Coin))))