cardano-ledger-core-0.1.0.0: Core components of Cardano ledgers from the Shelley release on.
Safe Haskell None
Language Haskell2010

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 crypto 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.

Instances

Instances details
Eq ( IndividualPoolStake crypto) Source #
Instance details

Defined in Cardano.Ledger.PoolDistr

Show ( IndividualPoolStake crypto) Source #
Instance details

Defined in Cardano.Ledger.PoolDistr

Generic ( IndividualPoolStake crypto) Source #
Instance details

Defined in Cardano.Ledger.PoolDistr

Associated Types

type Rep ( IndividualPoolStake crypto) :: Type -> Type Source #

NFData ( IndividualPoolStake crypto) Source #
Instance details

Defined in Cardano.Ledger.PoolDistr

Crypto crypto => ToCBOR ( IndividualPoolStake crypto) Source #
Instance details

Defined in Cardano.Ledger.PoolDistr

Crypto crypto => FromCBOR ( IndividualPoolStake crypto) Source #
Instance details

Defined in Cardano.Ledger.PoolDistr

NoThunks ( IndividualPoolStake crypto) Source #
Instance details

Defined in Cardano.Ledger.PoolDistr

HasExp ( PoolDistr crypto) ( Map ( KeyHash ' StakePool crypto) ( IndividualPoolStake crypto)) Source #
Instance details

Defined in Cardano.Ledger.PoolDistr

Embed ( PoolDistr crypto) ( Map ( KeyHash ' StakePool crypto) ( IndividualPoolStake crypto)) Source #

We can Embed a Newtype around a Map (or other Iterable type) and then use it in a set expression.

Instance details

Defined in Cardano.Ledger.PoolDistr

type Rep ( IndividualPoolStake crypto) Source #
Instance details

Defined in Cardano.Ledger.PoolDistr

type Rep ( IndividualPoolStake crypto) = D1 (' MetaData "IndividualPoolStake" "Cardano.Ledger.PoolDistr" "cardano-ledger-core-0.1.0.0-3EJt5rxsPizAWHDEqGPh9V" ' False ) ( C1 (' MetaCons "IndividualPoolStake" ' PrefixI ' True ) ( S1 (' MetaSel (' Just "individualPoolStake") ' NoSourceUnpackedness ' SourceStrict ' DecidedStrict ) ( Rec0 Rational ) :*: S1 (' MetaSel (' Just "individualPoolStakeVrf") ' NoSourceUnpackedness ' SourceStrict ' DecidedStrict ) ( Rec0 ( Hash crypto ( VerKeyVRF crypto)))))

newtype PoolDistr crypto Source #

A map of stake pool IDs (the hash of the stake pool operator's verification key) to IndividualPoolStake .

Instances

Instances details
Eq ( PoolDistr crypto) Source #
Instance details

Defined in Cardano.Ledger.PoolDistr

Show ( PoolDistr crypto) Source #
Instance details

Defined in Cardano.Ledger.PoolDistr

NFData ( PoolDistr crypto) Source #
Instance details

Defined in Cardano.Ledger.PoolDistr

Methods

rnf :: PoolDistr crypto -> () Source #

Crypto crypto => ToCBOR ( PoolDistr crypto) Source #
Instance details

Defined in Cardano.Ledger.PoolDistr

Crypto crypto => FromCBOR ( PoolDistr crypto) Source #
Instance details

Defined in Cardano.Ledger.PoolDistr

NoThunks ( PoolDistr crypto) Source #
Instance details

Defined in Cardano.Ledger.PoolDistr

HasExp ( PoolDistr crypto) ( Map ( KeyHash ' StakePool crypto) ( IndividualPoolStake crypto)) Source #
Instance details

Defined in Cardano.Ledger.PoolDistr

Embed ( PoolDistr crypto) ( Map ( KeyHash ' StakePool crypto) ( IndividualPoolStake crypto)) Source #

We can Embed a Newtype around a Map (or other Iterable type) and then use it in a set expression.

Instance details

Defined in Cardano.Ledger.PoolDistr