Safe Haskell | None |
---|---|
Language | Haskell2010 |
Ouroboros.Consensus.Mock.Ledger.Stake
Synopsis
- data StakeHolder
- type AddrDist = Map Addr NodeId
- newtype StakeDist = StakeDist {}
- equalStakeDist ∷ AddrDist → StakeDist
- genesisStakeDist ∷ AddrDist → StakeDist
- relativeStakes ∷ Map StakeHolder Amount → StakeDist
- stakeWithDefault ∷ Rational → CoreNodeId → StakeDist → Rational
- totalStakes ∷ Map Addr NodeId → Utxo → Map StakeHolder Amount
- data family Ticked st
Stakeholders
data StakeHolder Source #
Constructors
StakeCore CoreNodeId | Stake of a core node |
StakeEverybodyElse | Stake for everybody else (we don't need to distinguish) |
Instances
Eq StakeHolder Source # | |
Defined in Ouroboros.Consensus.Mock.Ledger.Stake Methods (==) ∷ StakeHolder → StakeHolder → Bool Source # (/=) ∷ StakeHolder → StakeHolder → Bool Source # | |
Ord StakeHolder Source # | |
Defined in Ouroboros.Consensus.Mock.Ledger.Stake Methods compare ∷ StakeHolder → StakeHolder → Ordering Source # (<) ∷ StakeHolder → StakeHolder → Bool Source # (<=) ∷ StakeHolder → StakeHolder → Bool Source # (>) ∷ StakeHolder → StakeHolder → Bool Source # (>=) ∷ StakeHolder → StakeHolder → Bool Source # max ∷ StakeHolder → StakeHolder → StakeHolder Source # min ∷ StakeHolder → StakeHolder → StakeHolder Source # | |
Show StakeHolder Source # | |
Defined in Ouroboros.Consensus.Mock.Ledger.Stake |
Address distribution
type AddrDist = Map Addr NodeId Source #
Mapping from addresses to node IDs
This is needed in order to assign stake to nodes.
Stake distribution
In the mock setup, only core nodes have stake
INVARIANT: The rationals should sum to 1.
Constructors
StakeDist | |
Fields |
equalStakeDist ∷ AddrDist → StakeDist Source #
Stake distribution where every address has equal state
genesisStakeDist ∷ AddrDist → StakeDist Source #
Genesis stake distribution
totalStakes ∷ Map Addr NodeId → Utxo → Map StakeHolder Amount Source #
Compute stakes of all nodes
The Nothing
value holds the total stake of all addresses that don't
get mapped to a NodeId.
Type family instances
data family Ticked st Source #
" Ticked " piece of state (LedgerState
, LedgerView
, ChainIndepState
)
Ticking refers to the passage of time (the ticking of the clock). When a piece of state is marked as ticked, it means that time-related changes have been applied to the state (or forecast).
Some examples of time related changes:
- Scheduled delegations might have been applied in Byron
- New leader schedule computed for Shelley
- Transition from Byron to Shelley activated in the hard fork combinator.
- Nonces switched out at the start of a new epoch.