ouroboros-consensus-0.26.0.0: Consensus layer for the Ouroboros blockchain protocol
Safe HaskellNone
LanguageHaskell2010

Ouroboros.Consensus.HardFork.Combinator.Forging

Synopsis

Documentation

type HardForkCannotForge (xs ∷ [Type]) = OneEraCannotForge xs Source #

If we cannot forge, it's because the current era could not forge

data HardForkForgeStateInfo (xs ∷ [Type]) where Source #

For each era in which we want to forge blocks, we have a BlockForging, and thus ForgeStateInfo.

When we update the hard fork forge state, we only update the forge state of the current era. However, the current era might not have a forge state as it lacks a BlockForging.

TODO #2766: expire past ForgeState

Constructors

CurrentEraLacksBlockForging ∷ ∀ x y (xs1 ∷ [Type]). EraIndex (x ': (y ': xs1)) → HardForkForgeStateInfo (x ': (y ': xs1))

There is no BlockForging record for the current era.

CurrentEraForgeStateUpdated ∷ ∀ (xs ∷ [Type]). OneEraForgeStateInfo xs → HardForkForgeStateInfo xs

The ForgeState of the current era was updated.

type HardForkForgeStateUpdateError (xs ∷ [Type]) = OneEraForgeStateUpdateError xs Source #

For each era in which we want to forge blocks, we have a BlockForging, and thus ForgeStateUpdateError.

hardForkBlockForging Source #

Arguments

∷ ∀ (m ∷ TypeType) (xs ∷ [Type]). (CanHardFork xs, Monad m) 
Text

Used as the forgeLabel, the labels of the given BlockForgings will be ignored.

NonEmptyOptNP (BlockForging m) xs 
BlockForging m (HardForkBlock xs)