| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Byron.Spec.Ledger.Core.Generators
Description
Generators for the Core values.
Synopsis
- vkGen ∷ Gen VKey
- vkgenesisGen ∷ Gen VKeyGenesis
- addrGen ∷ Gen Addr
- slotGen ∷ Word64 → Word64 → Gen Slot
- epochGen ∷ Word64 → Word64 → Gen Epoch
- blockCountGen ∷ Word64 → Word64 → Gen BlockCount
- k ∷ Word64 → Word64 → Gen BlockCount
- kForNumberOfEpochs ∷ Word64 → Word64 → BlockCount
Documentation
blockCountGen ∷ Word64 → Word64 → Gen BlockCount Source #
Generates a block count within the given bound
Arguments
| ∷ Word64 | Chain length |
| → Word64 | Maximum number of epochs |
| → Gen BlockCount |
Generate a chain stability parameter value (k) using the given chain length and desired
number of epochs.
Arguments
| ∷ Word64 | Chain length |
| → Word64 | Desired number of epochs |
| → BlockCount |
Given a chain length, determine the k value that will split the chain length into the desired
number of epochs.
We have that:
chainLength = slotsPerEpoch k * numberOfEpochs
= { algebra }
chainLength / numberOfEpochs = slotsPerEpoch k
= { 'slotsPerEpochtoK' is the inverse of 'slotsPerEpoch'; algebra }
slotsPerEpochToK (chainLength / numberOfEpochs) = kSo the resulting k value will be directly proportional to the chainLength and inversely
proportional to the chosen numberOfEpochs.
The minimum value for k will be 1. In particular, this will be the value
returned when the number of epochs is greater or equal than chainLength.