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
-
data
IndividualPoolStake
crypto =
IndividualPoolStake
{
- individualPoolStake :: ! Rational
- individualPoolStakeVrf :: !( Hash crypto ( VerKeyVRF crypto))
-
newtype
PoolDistr
crypto =
PoolDistr
{
- unPoolDistr :: Map ( KeyHash ' StakePool crypto) ( IndividualPoolStake crypto)
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.
Constructors
IndividualPoolStake | |
Fields
|
Instances
newtype PoolDistr crypto Source #
A map of stake pool IDs (the hash of the stake pool operator's
verification key) to
IndividualPoolStake
.
Constructors
PoolDistr | |
Fields
|
Instances
Eq ( PoolDistr crypto) Source # | |
Show ( PoolDistr crypto) Source # | |
NFData ( PoolDistr crypto) Source # | |
Defined in Cardano.Ledger.PoolDistr |
|
Crypto crypto => ToCBOR ( PoolDistr crypto) Source # | |
Defined in Cardano.Ledger.PoolDistr |
|
Crypto crypto => FromCBOR ( PoolDistr crypto) Source # | |
NoThunks ( PoolDistr crypto) Source # | |
HasExp ( PoolDistr crypto) ( Map ( KeyHash ' StakePool crypto) ( IndividualPoolStake crypto)) Source # | |
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. |