Safe Haskell | None |
---|---|
Language | Haskell2010 |
Ouroboros.Consensus.HardFork.Combinator.Basics
Synopsis
- newtype HardForkBlock (xs ∷ [Type]) = HardForkBlock {}
- data HardForkProtocol (xs ∷ [Type])
- data family LedgerState blk (mk ∷ MapKind)
- data family BlockConfig blk
- data family CodecConfig blk
- data family ConsensusConfig p
- data HardForkLedgerConfig (xs ∷ [Type]) = HardForkLedgerConfig {}
- data family StorageConfig blk
- completeConsensusConfig' ∷ HasPartialConsensusConfig (BlockProtocol blk) ⇒ EpochInfo (Except PastHorizonException) → WrapPartialConsensusConfig blk → ConsensusConfig (BlockProtocol blk)
- completeConsensusConfig'' ∷ HasPartialConsensusConfig (BlockProtocol blk) ⇒ EpochInfo (Except PastHorizonException) → WrapPartialConsensusConfig blk → WrapConsensusConfig blk
- completeLedgerConfig' ∷ HasPartialLedgerConfig blk ⇒ EpochInfo (Except PastHorizonException) → WrapPartialLedgerConfig blk → LedgerConfig blk
- completeLedgerConfig'' ∷ HasPartialLedgerConfig blk ⇒ EpochInfo (Except PastHorizonException) → WrapPartialLedgerConfig blk → WrapLedgerConfig blk
- distribLedgerConfig ∷ ∀ (xs ∷ [Type]). CanHardFork xs ⇒ EpochInfo (Except PastHorizonException) → LedgerConfig (HardForkBlock xs) → NP WrapLedgerConfig xs
- distribTopLevelConfig ∷ ∀ (xs ∷ [Type]). All SingleEraBlock xs ⇒ EpochInfo (Except PastHorizonException) → TopLevelConfig (HardForkBlock xs) → NP TopLevelConfig xs
- data EpochInfo (m ∷ Type → Type)
- type Except e = ExceptT e Identity
Hard fork protocol, block, and ledger state
newtype HardForkBlock (xs ∷ [Type]) Source #
Constructors
HardForkBlock | |
Fields |
Instances
data HardForkProtocol (xs ∷ [Type]) Source #
Instances
Generic (ConsensusConfig (HardForkProtocol xs)) Source # | |||||||||||||||||||||||||||||
Defined in Ouroboros.Consensus.HardFork.Combinator.Basics Associated Types
Methods from ∷ ConsensusConfig (HardForkProtocol xs) → Rep (ConsensusConfig (HardForkProtocol xs)) x # to ∷ Rep (ConsensusConfig (HardForkProtocol xs)) x → ConsensusConfig (HardForkProtocol xs) # | |||||||||||||||||||||||||||||
CanHardFork xs ⇒ NoThunks (ConsensusConfig (HardForkProtocol xs)) Source # | |||||||||||||||||||||||||||||
Defined in Ouroboros.Consensus.HardFork.Combinator.Basics Methods noThunks ∷ Context → ConsensusConfig (HardForkProtocol xs) → IO (Maybe ThunkInfo) Source # wNoThunks ∷ Context → ConsensusConfig (HardForkProtocol xs) → IO (Maybe ThunkInfo) Source # showTypeOf ∷ Proxy (ConsensusConfig (HardForkProtocol xs)) → String Source # | |||||||||||||||||||||||||||||
CanHardFork xs ⇒ ConsensusProtocol (HardForkProtocol xs) Source # | |||||||||||||||||||||||||||||
Defined in Ouroboros.Consensus.HardFork.Combinator.Protocol Associated Types
Methods checkIsLeader ∷ ConsensusConfig (HardForkProtocol xs) → CanBeLeader (HardForkProtocol xs) → SlotNo → Ticked (ChainDepState (HardForkProtocol xs)) → Maybe (IsLeader (HardForkProtocol xs)) Source # tickChainDepState ∷ ConsensusConfig (HardForkProtocol xs) → LedgerView (HardForkProtocol xs) → SlotNo → ChainDepState (HardForkProtocol xs) → Ticked (ChainDepState (HardForkProtocol xs)) Source # updateChainDepState ∷ ConsensusConfig (HardForkProtocol xs) → ValidateView (HardForkProtocol xs) → SlotNo → Ticked (ChainDepState (HardForkProtocol xs)) → Except (ValidationErr (HardForkProtocol xs)) (ChainDepState (HardForkProtocol xs)) Source # reupdateChainDepState ∷ ConsensusConfig (HardForkProtocol xs) → ValidateView (HardForkProtocol xs) → SlotNo → Ticked (ChainDepState (HardForkProtocol xs)) → ChainDepState (HardForkProtocol xs) Source # protocolSecurityParam ∷ ConsensusConfig (HardForkProtocol xs) → SecurityParam Source # | |||||||||||||||||||||||||||||
type Rep (ConsensusConfig (HardForkProtocol xs)) Source # | |||||||||||||||||||||||||||||
Defined in Ouroboros.Consensus.HardFork.Combinator.Basics type Rep (ConsensusConfig (HardForkProtocol xs)) = D1 ('MetaData "ConsensusConfig" "Ouroboros.Consensus.HardFork.Combinator.Basics" "ouroboros-consensus-0.25.0.0-inplace" 'False) (C1 ('MetaCons "HardForkConsensusConfig" 'PrefixI 'True) (S1 ('MetaSel ('Just "hardForkConsensusConfigK") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 SecurityParam) :*: (S1 ('MetaSel ('Just "hardForkConsensusConfigShape") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Shape xs)) :*: S1 ('MetaSel ('Just "hardForkConsensusConfigPerEra") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (PerEraConsensusConfig xs))))) | |||||||||||||||||||||||||||||
type CanBeLeader (HardForkProtocol xs) Source # | |||||||||||||||||||||||||||||
type ChainDepState (HardForkProtocol xs) Source # | |||||||||||||||||||||||||||||
data ConsensusConfig (HardForkProtocol xs) Source # | |||||||||||||||||||||||||||||
type IsLeader (HardForkProtocol xs) Source # | |||||||||||||||||||||||||||||
type LedgerView (HardForkProtocol xs) Source # | |||||||||||||||||||||||||||||
type SelectView (HardForkProtocol xs) Source # | |||||||||||||||||||||||||||||
type ValidateView (HardForkProtocol xs) Source # | |||||||||||||||||||||||||||||
type ValidationErr (HardForkProtocol xs) Source # | |||||||||||||||||||||||||||||
data family LedgerState blk (mk ∷ MapKind) Source #
Ledger state associated with a block
This is the Consensus notion of a Ledger ledger state. Each block type is
associated with one of the Ledger types for the ledger state. Virtually
every concept in this codebase revolves around this type, or the referenced
blk
. Whenever we use the type variable l
we intend to signal that the
expected instantiation is either a LedgerState
or some wrapper over it
(like the ExtLedgerState
).
This type is parametrized over mk ::
to express the
MapKind
LedgerTables
contained in such a LedgerState
. See LedgerTables
for a
more thorough description.
The main operations we can do with a LedgerState
are ticking (defined in
IsLedger
), and applying a block (defined in
ApplyBlock
).
Instances
CanHardFork xs ⇒ GetTip (LedgerState (HardForkBlock xs)) Source # | |||||||||
Defined in Ouroboros.Consensus.HardFork.Combinator.Ledger Methods getTip ∷ ∀ (mk ∷ MapKind). LedgerState (HardForkBlock xs) mk → Point (LedgerState (HardForkBlock xs)) Source # | |||||||||
Bridge m a ⇒ GetTip (LedgerState (DualBlock m a)) Source # | |||||||||
Defined in Ouroboros.Consensus.Ledger.Dual Methods getTip ∷ ∀ (mk ∷ MapKind). LedgerState (DualBlock m a) mk → Point (LedgerState (DualBlock m a)) Source # | |||||||||
CanHardFork xs ⇒ IsLedger (LedgerState (HardForkBlock xs)) Source # | |||||||||
Defined in Ouroboros.Consensus.HardFork.Combinator.Ledger Associated Types
Methods applyChainTickLedgerResult ∷ ComputeLedgerEvents → LedgerCfg (LedgerState (HardForkBlock xs)) → SlotNo → LedgerState (HardForkBlock xs) EmptyMK → LedgerResult (LedgerState (HardForkBlock xs)) (Ticked (LedgerState (HardForkBlock xs)) DiffMK) Source # | |||||||||
Bridge m a ⇒ IsLedger (LedgerState (DualBlock m a)) Source # | |||||||||
Defined in Ouroboros.Consensus.Ledger.Dual Associated Types
Methods applyChainTickLedgerResult ∷ ComputeLedgerEvents → LedgerCfg (LedgerState (DualBlock m a)) → SlotNo → LedgerState (DualBlock m a) EmptyMK → LedgerResult (LedgerState (DualBlock m a)) (Ticked (LedgerState (DualBlock m a)) DiffMK) Source # | |||||||||
All (Compose CanStowLedgerTables LedgerState) xs ⇒ CanStowLedgerTables (LedgerState (HardForkBlock xs)) Source # | |||||||||
Defined in Ouroboros.Consensus.HardFork.Combinator.Ledger Methods stowLedgerTables ∷ LedgerState (HardForkBlock xs) ValuesMK → LedgerState (HardForkBlock xs) EmptyMK Source # unstowLedgerTables ∷ LedgerState (HardForkBlock xs) EmptyMK → LedgerState (HardForkBlock xs) ValuesMK Source # | |||||||||
CanStowLedgerTables (LedgerState m) ⇒ CanStowLedgerTables (LedgerState (DualBlock m a)) Source # | |||||||||
Defined in Ouroboros.Consensus.Ledger.Dual Methods stowLedgerTables ∷ LedgerState (DualBlock m a) ValuesMK → LedgerState (DualBlock m a) EmptyMK Source # unstowLedgerTables ∷ LedgerState (DualBlock m a) EmptyMK → LedgerState (DualBlock m a) ValuesMK Source # | |||||||||
(CanHardFork xs, HasCanonicalTxIn xs, HasHardForkTxOut xs) ⇒ HasLedgerTables (LedgerState (HardForkBlock xs)) Source # | Warning: | ||||||||
Defined in Ouroboros.Consensus.HardFork.Combinator.Ledger Methods projectLedgerTables ∷ ∀ (mk ∷ MapKind). (CanMapMK mk, CanMapKeysMK mk, ZeroableMK mk) ⇒ LedgerState (HardForkBlock xs) mk → LedgerTables (LedgerState (HardForkBlock xs)) mk Source # withLedgerTables ∷ ∀ (mk ∷ MapKind) (any ∷ MapKind). (CanMapMK mk, CanMapKeysMK mk, ZeroableMK mk) ⇒ LedgerState (HardForkBlock xs) any → LedgerTables (LedgerState (HardForkBlock xs)) mk → LedgerState (HardForkBlock xs) mk Source # | |||||||||
(Bridge m a, NoThunks (TxOut (LedgerState m)), NoThunks (TxIn (LedgerState m)), Show (TxOut (LedgerState m)), Show (TxIn (LedgerState m)), Eq (TxOut (LedgerState m)), Ord (TxIn (LedgerState m)), MemPack (TxOut (LedgerState m)), MemPack (TxIn (LedgerState m))) ⇒ HasLedgerTables (LedgerState (DualBlock m a)) Source # | |||||||||
Defined in Ouroboros.Consensus.Ledger.Dual Methods projectLedgerTables ∷ ∀ (mk ∷ MapKind). (CanMapMK mk, CanMapKeysMK mk, ZeroableMK mk) ⇒ LedgerState (DualBlock m a) mk → LedgerTables (LedgerState (DualBlock m a)) mk Source # withLedgerTables ∷ ∀ (mk ∷ MapKind) (any ∷ MapKind). (CanMapMK mk, CanMapKeysMK mk, ZeroableMK mk) ⇒ LedgerState (DualBlock m a) any → LedgerTables (LedgerState (DualBlock m a)) mk → LedgerState (DualBlock m a) mk Source # | |||||||||
(CanHardFork xs, HasHardForkTxOut xs) ⇒ CanUpgradeLedgerTables (LedgerState (HardForkBlock xs)) Source # | |||||||||
Defined in Ouroboros.Consensus.HardFork.Combinator.Ledger Methods upgradeTables ∷ ∀ (mk1 ∷ MapKind) (mk2 ∷ MapKind). LedgerState (HardForkBlock xs) mk1 → LedgerState (HardForkBlock xs) mk2 → LedgerTables (LedgerState (HardForkBlock xs)) ValuesMK → LedgerTables (LedgerState (HardForkBlock xs)) ValuesMK Source # | |||||||||
CanUpgradeLedgerTables (LedgerState (DualBlock m a)) Source # | |||||||||
Defined in Ouroboros.Consensus.Ledger.Dual Methods upgradeTables ∷ ∀ (mk1 ∷ MapKind) (mk2 ∷ MapKind). LedgerState (DualBlock m a) mk1 → LedgerState (DualBlock m a) mk2 → LedgerTables (LedgerState (DualBlock m a)) ValuesMK → LedgerTables (LedgerState (DualBlock m a)) ValuesMK Source # | |||||||||
(CanHardFork xs, HasCanonicalTxIn xs, HasHardForkTxOut xs) ⇒ ApplyBlock (LedgerState (HardForkBlock xs)) (HardForkBlock xs) Source # | |||||||||
Defined in Ouroboros.Consensus.HardFork.Combinator.Ledger Methods applyBlockLedgerResultWithValidation ∷ ValidationPolicy → ComputeLedgerEvents → LedgerCfg (LedgerState (HardForkBlock xs)) → HardForkBlock xs → Ticked (LedgerState (HardForkBlock xs)) ValuesMK → Except (LedgerErr (LedgerState (HardForkBlock xs))) (LedgerResult (LedgerState (HardForkBlock xs)) (LedgerState (HardForkBlock xs) DiffMK)) Source # applyBlockLedgerResult ∷ ComputeLedgerEvents → LedgerCfg (LedgerState (HardForkBlock xs)) → HardForkBlock xs → Ticked (LedgerState (HardForkBlock xs)) ValuesMK → Except (LedgerErr (LedgerState (HardForkBlock xs))) (LedgerResult (LedgerState (HardForkBlock xs)) (LedgerState (HardForkBlock xs) DiffMK)) Source # reapplyBlockLedgerResult ∷ ComputeLedgerEvents → LedgerCfg (LedgerState (HardForkBlock xs)) → HardForkBlock xs → Ticked (LedgerState (HardForkBlock xs)) ValuesMK → LedgerResult (LedgerState (HardForkBlock xs)) (LedgerState (HardForkBlock xs) DiffMK) Source # getBlockKeySets ∷ HardForkBlock xs → LedgerTables (LedgerState (HardForkBlock xs)) KeysMK Source # | |||||||||
Bridge m a ⇒ ApplyBlock (LedgerState (DualBlock m a)) (DualBlock m a) Source # | |||||||||
Defined in Ouroboros.Consensus.Ledger.Dual Methods applyBlockLedgerResultWithValidation ∷ ValidationPolicy → ComputeLedgerEvents → LedgerCfg (LedgerState (DualBlock m a)) → DualBlock m a → Ticked (LedgerState (DualBlock m a)) ValuesMK → Except (LedgerErr (LedgerState (DualBlock m a))) (LedgerResult (LedgerState (DualBlock m a)) (LedgerState (DualBlock m a) DiffMK)) Source # applyBlockLedgerResult ∷ ComputeLedgerEvents → LedgerCfg (LedgerState (DualBlock m a)) → DualBlock m a → Ticked (LedgerState (DualBlock m a)) ValuesMK → Except (LedgerErr (LedgerState (DualBlock m a))) (LedgerResult (LedgerState (DualBlock m a)) (LedgerState (DualBlock m a) DiffMK)) Source # reapplyBlockLedgerResult ∷ ComputeLedgerEvents → LedgerCfg (LedgerState (DualBlock m a)) → DualBlock m a → Ticked (LedgerState (DualBlock m a)) ValuesMK → LedgerResult (LedgerState (DualBlock m a)) (LedgerState (DualBlock m a) DiffMK) Source # getBlockKeySets ∷ DualBlock m a → LedgerTables (LedgerState (DualBlock m a)) KeysMK Source # | |||||||||
SerialiseHFC xs ⇒ DecodeDisk (HardForkBlock xs) (LedgerState (HardForkBlock xs) EmptyMK) Source # | |||||||||
Defined in Ouroboros.Consensus.HardFork.Combinator.Serialisation.SerialiseDisk Methods decodeDisk ∷ CodecConfig (HardForkBlock xs) → ∀ s. Decoder s (LedgerState (HardForkBlock xs) EmptyMK) Source # | |||||||||
SerialiseHFC xs ⇒ EncodeDisk (HardForkBlock xs) (LedgerState (HardForkBlock xs) EmptyMK) Source # | |||||||||
Defined in Ouroboros.Consensus.HardFork.Combinator.Serialisation.SerialiseDisk Methods encodeDisk ∷ CodecConfig (HardForkBlock xs) → LedgerState (HardForkBlock xs) EmptyMK → Encoding Source # | |||||||||
(ShowMK mk, CanHardFork xs) ⇒ Show (LedgerState (HardForkBlock xs) mk) Source # | |||||||||
Defined in Ouroboros.Consensus.HardFork.Combinator.Basics Methods showsPrec ∷ Int → LedgerState (HardForkBlock xs) mk → ShowS # show ∷ LedgerState (HardForkBlock xs) mk → String # showList ∷ [LedgerState (HardForkBlock xs) mk] → ShowS # | |||||||||
(Bridge m a, ShowMK mk) ⇒ Show (LedgerState (DualBlock m a) mk) Source # | |||||||||
Defined in Ouroboros.Consensus.Ledger.Dual | |||||||||
(EqMK mk, CanHardFork xs) ⇒ Eq (LedgerState (HardForkBlock xs) mk) Source # | |||||||||
Defined in Ouroboros.Consensus.HardFork.Combinator.Basics Methods (==) ∷ LedgerState (HardForkBlock xs) mk → LedgerState (HardForkBlock xs) mk → Bool # (/=) ∷ LedgerState (HardForkBlock xs) mk → LedgerState (HardForkBlock xs) mk → Bool # | |||||||||
(Bridge m a, EqMK mk) ⇒ Eq (LedgerState (DualBlock m a) mk) Source # | |||||||||
Defined in Ouroboros.Consensus.Ledger.Dual Methods (==) ∷ LedgerState (DualBlock m a) mk → LedgerState (DualBlock m a) mk → Bool # (/=) ∷ LedgerState (DualBlock m a) mk → LedgerState (DualBlock m a) mk → Bool # | |||||||||
(NoThunksMK mk, CanHardFork xs) ⇒ NoThunks (LedgerState (HardForkBlock xs) mk) Source # | |||||||||
Defined in Ouroboros.Consensus.HardFork.Combinator.Basics Methods noThunks ∷ Context → LedgerState (HardForkBlock xs) mk → IO (Maybe ThunkInfo) Source # wNoThunks ∷ Context → LedgerState (HardForkBlock xs) mk → IO (Maybe ThunkInfo) Source # showTypeOf ∷ Proxy (LedgerState (HardForkBlock xs) mk) → String Source # | |||||||||
NoThunks (LedgerState (DualBlock m a) mk) Source # | |||||||||
CanHardFork xs ⇒ GetTip (Ticked (LedgerState (HardForkBlock xs))) Source # | |||||||||
Defined in Ouroboros.Consensus.HardFork.Combinator.Ledger Methods getTip ∷ ∀ (mk ∷ MapKind). Ticked (LedgerState (HardForkBlock xs)) mk → Point (Ticked (LedgerState (HardForkBlock xs))) Source # | |||||||||
Bridge m a ⇒ GetTip (Ticked (LedgerState (DualBlock m a))) Source # | |||||||||
Defined in Ouroboros.Consensus.Ledger.Dual | |||||||||
(CanHardFork xs, HasCanonicalTxIn xs, HasHardForkTxOut xs) ⇒ HasLedgerTables (Ticked (LedgerState (HardForkBlock xs))) Source # | |||||||||
Defined in Ouroboros.Consensus.HardFork.Combinator.Ledger Methods projectLedgerTables ∷ ∀ (mk ∷ MapKind). (CanMapMK mk, CanMapKeysMK mk, ZeroableMK mk) ⇒ Ticked (LedgerState (HardForkBlock xs)) mk → LedgerTables (Ticked (LedgerState (HardForkBlock xs))) mk Source # withLedgerTables ∷ ∀ (mk ∷ MapKind) (any ∷ MapKind). (CanMapMK mk, CanMapKeysMK mk, ZeroableMK mk) ⇒ Ticked (LedgerState (HardForkBlock xs)) any → LedgerTables (Ticked (LedgerState (HardForkBlock xs))) mk → Ticked (LedgerState (HardForkBlock xs)) mk Source # | |||||||||
(Bridge m a, NoThunks (TxOut (LedgerState m)), NoThunks (TxIn (LedgerState m)), Show (TxOut (LedgerState m)), Show (TxIn (LedgerState m)), Eq (TxOut (LedgerState m)), Ord (TxIn (LedgerState m)), MemPack (TxOut (LedgerState m)), MemPack (TxIn (LedgerState m))) ⇒ HasLedgerTables (Ticked (LedgerState (DualBlock m a))) Source # | |||||||||
Defined in Ouroboros.Consensus.Ledger.Dual Methods projectLedgerTables ∷ ∀ (mk ∷ MapKind). (CanMapMK mk, CanMapKeysMK mk, ZeroableMK mk) ⇒ Ticked (LedgerState (DualBlock m a)) mk → LedgerTables (Ticked (LedgerState (DualBlock m a))) mk Source # withLedgerTables ∷ ∀ (mk ∷ MapKind) (any ∷ MapKind). (CanMapMK mk, CanMapKeysMK mk, ZeroableMK mk) ⇒ Ticked (LedgerState (DualBlock m a)) any → LedgerTables (Ticked (LedgerState (DualBlock m a))) mk → Ticked (LedgerState (DualBlock m a)) mk Source # | |||||||||
(txout ~ TxOut (LedgerState m), IndexedMemPack (LedgerState m EmptyMK) txout) ⇒ IndexedMemPack (LedgerState (DualBlock m a) EmptyMK) txout Source # | |||||||||
Defined in Ouroboros.Consensus.Ledger.Dual Methods indexedPackedByteCount ∷ LedgerState (DualBlock m a) EmptyMK → txout → Int Source # indexedPackM ∷ LedgerState (DualBlock m a) EmptyMK → txout → Pack s () Source # indexedUnpackM ∷ Buffer b ⇒ LedgerState (DualBlock m a) EmptyMK → Unpack b txout Source # indexedTypeName ∷ LedgerState (DualBlock m a) EmptyMK → String Source # | |||||||||
StandardHash blk ⇒ StandardHash (LedgerState blk ∷ MapKind → Type) Source # | |||||||||
Defined in Ouroboros.Consensus.Ledger.Basics | |||||||||
NoThunks (Ticked (LedgerState (DualBlock m a)) mk) Source # | |||||||||
Defined in Ouroboros.Consensus.Ledger.Dual | |||||||||
Inject (Flip LedgerState mk) Source # | |||||||||
Defined in Ouroboros.Consensus.HardFork.Combinator.Embed.Nary Methods inject ∷ ∀ x (xs ∷ [Type]). (CanHardFork xs, HasCanonicalTxIn xs, HasHardForkTxOut xs) ⇒ InjectionIndex xs x → Flip LedgerState mk x → Flip LedgerState mk (HardForkBlock xs) Source # | |||||||||
Isomorphic (Flip LedgerState mk) Source # | |||||||||
Defined in Ouroboros.Consensus.HardFork.Combinator.Embed.Unary Methods project ∷ NoHardForks blk ⇒ Flip LedgerState mk (HardForkBlock '[blk]) → Flip LedgerState mk blk Source # inject ∷ NoHardForks blk ⇒ Flip LedgerState mk blk → Flip LedgerState mk (HardForkBlock '[blk]) Source # | |||||||||
type AuxLedgerEvent (LedgerState (HardForkBlock xs)) Source # | |||||||||
type AuxLedgerEvent (LedgerState (DualBlock m a)) Source # | |||||||||
Defined in Ouroboros.Consensus.Ledger.Dual | |||||||||
type LedgerCfg (LedgerState (HardForkBlock xs)) Source # | |||||||||
type LedgerCfg (LedgerState (DualBlock m a)) Source # | |||||||||
Defined in Ouroboros.Consensus.Ledger.Dual | |||||||||
type LedgerErr (LedgerState (HardForkBlock xs)) Source # | |||||||||
type LedgerErr (LedgerState (DualBlock m a)) Source # | |||||||||
Defined in Ouroboros.Consensus.Ledger.Dual | |||||||||
newtype LedgerState (HardForkBlock xs) mk Source # | |||||||||
type TxIn (LedgerState (HardForkBlock xs)) Source # | Must be the | ||||||||
type TxIn (LedgerState (DualBlock m a)) Source # | |||||||||
Defined in Ouroboros.Consensus.Ledger.Dual | |||||||||
type TxOut (LedgerState (HardForkBlock xs)) Source # | Must be the | ||||||||
type TxOut (LedgerState (DualBlock m a)) Source # | |||||||||
Defined in Ouroboros.Consensus.Ledger.Dual | |||||||||
data LedgerState (DualBlock m a) mk Source # | |||||||||
Defined in Ouroboros.Consensus.Ledger.Dual | |||||||||
data Ticked (LedgerState (HardForkBlock xs) ∷ MapKind → Type) (mk ∷ MapKind) Source # | |||||||||
Defined in Ouroboros.Consensus.HardFork.Combinator.Ledger data Ticked (LedgerState (HardForkBlock xs) ∷ MapKind → Type) (mk ∷ MapKind) = TickedHardForkLedgerState {} | |||||||||
data Ticked (LedgerState (DualBlock m a) ∷ MapKind → Type) (mk ∷ MapKind) Source # | |||||||||
Defined in Ouroboros.Consensus.Ledger.Dual data Ticked (LedgerState (DualBlock m a) ∷ MapKind → Type) (mk ∷ MapKind) = TickedDualLedgerState {} | |||||||||
type HeaderHash (LedgerState blk ∷ MapKind → Type) Source # | |||||||||
Defined in Ouroboros.Consensus.Ledger.Basics |
Config
data family BlockConfig blk Source #
Static configuration required to work with this type of blocks
Instances
Isomorphic BlockConfig Source # | |
Defined in Ouroboros.Consensus.HardFork.Combinator.Embed.Unary Methods project ∷ NoHardForks blk ⇒ BlockConfig (HardForkBlock '[blk]) → BlockConfig blk Source # inject ∷ NoHardForks blk ⇒ BlockConfig blk → BlockConfig (HardForkBlock '[blk]) Source # | |
CanHardFork xs ⇒ NoThunks (BlockConfig (HardForkBlock xs)) Source # | |
Defined in Ouroboros.Consensus.HardFork.Combinator.Basics Methods noThunks ∷ Context → BlockConfig (HardForkBlock xs) → IO (Maybe ThunkInfo) Source # wNoThunks ∷ Context → BlockConfig (HardForkBlock xs) → IO (Maybe ThunkInfo) Source # showTypeOf ∷ Proxy (BlockConfig (HardForkBlock xs)) → String Source # | |
NoThunks (BlockConfig (DualBlock m a)) Source # | |
newtype BlockConfig (DisableDiffusionPipelining blk) Source # | |
Defined in Ouroboros.Consensus.Block.SupportsDiffusionPipelining newtype BlockConfig (DisableDiffusionPipelining blk) = DisableDiffusionPipeliningBlockConfig (BlockConfig blk) | |
newtype BlockConfig (SelectViewDiffusionPipelining blk) Source # | |
Defined in Ouroboros.Consensus.Block.SupportsDiffusionPipelining newtype BlockConfig (SelectViewDiffusionPipelining blk) = SelectViewDiffusionPipeliningBlockConfig (BlockConfig blk) | |
newtype BlockConfig (HardForkBlock xs) Source # | |
data BlockConfig (DualBlock m a) Source # | |
Defined in Ouroboros.Consensus.Ledger.Dual |
data family CodecConfig blk Source #
Static configuration required for serialisation and deserialisation of types pertaining to this type of block.
Data family instead of type family to get better type inference.
Instances
Isomorphic CodecConfig Source # | |||||
Defined in Ouroboros.Consensus.HardFork.Combinator.Embed.Unary Methods project ∷ NoHardForks blk ⇒ CodecConfig (HardForkBlock '[blk]) → CodecConfig blk Source # inject ∷ NoHardForks blk ⇒ CodecConfig blk → CodecConfig (HardForkBlock '[blk]) Source # | |||||
Generic (CodecConfig (DualBlock m a)) Source # | |||||
Defined in Ouroboros.Consensus.Ledger.Dual Associated Types
Methods from ∷ CodecConfig (DualBlock m a) → Rep (CodecConfig (DualBlock m a)) x # to ∷ Rep (CodecConfig (DualBlock m a)) x → CodecConfig (DualBlock m a) # | |||||
CanHardFork xs ⇒ NoThunks (CodecConfig (HardForkBlock xs)) Source # | |||||
Defined in Ouroboros.Consensus.HardFork.Combinator.Basics Methods noThunks ∷ Context → CodecConfig (HardForkBlock xs) → IO (Maybe ThunkInfo) Source # wNoThunks ∷ Context → CodecConfig (HardForkBlock xs) → IO (Maybe ThunkInfo) Source # showTypeOf ∷ Proxy (CodecConfig (HardForkBlock xs)) → String Source # | |||||
(NoThunks (CodecConfig m), NoThunks (CodecConfig a)) ⇒ NoThunks (CodecConfig (DualBlock m a)) Source # | |||||
type Rep (CodecConfig (DualBlock m a)) Source # | |||||
Defined in Ouroboros.Consensus.Ledger.Dual type Rep (CodecConfig (DualBlock m a)) = D1 ('MetaData "CodecConfig" "Ouroboros.Consensus.Ledger.Dual" "ouroboros-consensus-0.25.0.0-inplace" 'False) (C1 ('MetaCons "DualCodecConfig" 'PrefixI 'True) (S1 ('MetaSel ('Just "dualCodecConfigMain") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (CodecConfig m)) :*: S1 ('MetaSel ('Just "dualCodecConfigAux") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (CodecConfig a)))) | |||||
newtype CodecConfig (HardForkBlock xs) Source # | |||||
data CodecConfig (DualBlock m a) Source # | |||||
Defined in Ouroboros.Consensus.Ledger.Dual data CodecConfig (DualBlock m a) = DualCodecConfig {
|
data family ConsensusConfig p Source #
Static configuration required to run the consensus protocol
Every method in the ConsensusProtocol
class takes the consensus
configuration as a parameter, so having this as a data family rather than a
type family resolves most ambiguity.
Defined out of the class so that protocols can define this type without having to define the entire protocol at the same time (or indeed in the same module).
Instances
Generic (ConsensusConfig (HardForkProtocol xs)) Source # | |||||
Defined in Ouroboros.Consensus.HardFork.Combinator.Basics Associated Types
Methods from ∷ ConsensusConfig (HardForkProtocol xs) → Rep (ConsensusConfig (HardForkProtocol xs)) x # to ∷ Rep (ConsensusConfig (HardForkProtocol xs)) x → ConsensusConfig (HardForkProtocol xs) # | |||||
Generic (ConsensusConfig (Bft c)) Source # | |||||
Defined in Ouroboros.Consensus.Protocol.BFT Associated Types
Methods from ∷ ConsensusConfig (Bft c) → Rep (ConsensusConfig (Bft c)) x # to ∷ Rep (ConsensusConfig (Bft c)) x → ConsensusConfig (Bft c) # | |||||
Generic (ConsensusConfig (ModChainSel p s)) Source # | |||||
Defined in Ouroboros.Consensus.Protocol.ModChainSel Associated Types
Methods from ∷ ConsensusConfig (ModChainSel p s) → Rep (ConsensusConfig (ModChainSel p s)) x # to ∷ Rep (ConsensusConfig (ModChainSel p s)) x → ConsensusConfig (ModChainSel p s) # | |||||
Generic (ConsensusConfig (PBft c)) Source # | |||||
Defined in Ouroboros.Consensus.Protocol.PBFT Associated Types
Methods from ∷ ConsensusConfig (PBft c) → Rep (ConsensusConfig (PBft c)) x # to ∷ Rep (ConsensusConfig (PBft c)) x → ConsensusConfig (PBft c) # | |||||
CanHardFork xs ⇒ NoThunks (ConsensusConfig (HardForkProtocol xs)) Source # | |||||
Defined in Ouroboros.Consensus.HardFork.Combinator.Basics Methods noThunks ∷ Context → ConsensusConfig (HardForkProtocol xs) → IO (Maybe ThunkInfo) Source # wNoThunks ∷ Context → ConsensusConfig (HardForkProtocol xs) → IO (Maybe ThunkInfo) Source # showTypeOf ∷ Proxy (ConsensusConfig (HardForkProtocol xs)) → String Source # | |||||
BftCrypto c ⇒ NoThunks (ConsensusConfig (Bft c)) Source # | |||||
ConsensusProtocol p ⇒ NoThunks (ConsensusConfig (ModChainSel p s)) Source # | |||||
Defined in Ouroboros.Consensus.Protocol.ModChainSel Methods noThunks ∷ Context → ConsensusConfig (ModChainSel p s) → IO (Maybe ThunkInfo) Source # wNoThunks ∷ Context → ConsensusConfig (ModChainSel p s) → IO (Maybe ThunkInfo) Source # showTypeOf ∷ Proxy (ConsensusConfig (ModChainSel p s)) → String Source # | |||||
NoThunks (ConsensusConfig (PBft c)) Source # | |||||
type Rep (ConsensusConfig (HardForkProtocol xs)) Source # | |||||
Defined in Ouroboros.Consensus.HardFork.Combinator.Basics type Rep (ConsensusConfig (HardForkProtocol xs)) = D1 ('MetaData "ConsensusConfig" "Ouroboros.Consensus.HardFork.Combinator.Basics" "ouroboros-consensus-0.25.0.0-inplace" 'False) (C1 ('MetaCons "HardForkConsensusConfig" 'PrefixI 'True) (S1 ('MetaSel ('Just "hardForkConsensusConfigK") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 SecurityParam) :*: (S1 ('MetaSel ('Just "hardForkConsensusConfigShape") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Shape xs)) :*: S1 ('MetaSel ('Just "hardForkConsensusConfigPerEra") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (PerEraConsensusConfig xs))))) | |||||
type Rep (ConsensusConfig (Bft c)) Source # | |||||
Defined in Ouroboros.Consensus.Protocol.BFT type Rep (ConsensusConfig (Bft c)) = D1 ('MetaData "ConsensusConfig" "Ouroboros.Consensus.Protocol.BFT" "ouroboros-consensus-0.25.0.0-inplace" 'False) (C1 ('MetaCons "BftConfig" 'PrefixI 'True) (S1 ('MetaSel ('Just "bftParams") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 BftParams) :*: (S1 ('MetaSel ('Just "bftSignKey") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (SignKeyDSIGN (BftDSIGN c))) :*: S1 ('MetaSel ('Just "bftVerKeys") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Map NodeId (VerKeyDSIGN (BftDSIGN c))))))) | |||||
type Rep (ConsensusConfig (ModChainSel p s)) Source # | |||||
Defined in Ouroboros.Consensus.Protocol.ModChainSel type Rep (ConsensusConfig (ModChainSel p s)) = D1 ('MetaData "ConsensusConfig" "Ouroboros.Consensus.Protocol.ModChainSel" "ouroboros-consensus-0.25.0.0-inplace" 'True) (C1 ('MetaCons "McsConsensusConfig" 'PrefixI 'True) (S1 ('MetaSel ('Just "mcsConfigP") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (ConsensusConfig p)))) | |||||
type Rep (ConsensusConfig (PBft c)) Source # | |||||
Defined in Ouroboros.Consensus.Protocol.PBFT type Rep (ConsensusConfig (PBft c)) = D1 ('MetaData "ConsensusConfig" "Ouroboros.Consensus.Protocol.PBFT" "ouroboros-consensus-0.25.0.0-inplace" 'True) (C1 ('MetaCons "PBftConfig" 'PrefixI 'True) (S1 ('MetaSel ('Just "pbftParams") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 PBftParams))) | |||||
data ConsensusConfig (HardForkProtocol xs) Source # | |||||
data ConsensusConfig (Bft c) Source # | (Static) node configuration | ||||
Defined in Ouroboros.Consensus.Protocol.BFT data ConsensusConfig (Bft c) = BftConfig {
| |||||
newtype ConsensusConfig (PBft c) Source # | (Static) node configuration | ||||
Defined in Ouroboros.Consensus.Protocol.PBFT | |||||
newtype ConsensusConfig (ModChainSel p s) Source # | |||||
Defined in Ouroboros.Consensus.Protocol.ModChainSel |
data HardForkLedgerConfig (xs ∷ [Type]) Source #
Constructors
HardForkLedgerConfig | |
Fields
|
Instances
Generic (HardForkLedgerConfig xs) Source # | |||||
Defined in Ouroboros.Consensus.HardFork.Combinator.Basics Associated Types
Methods from ∷ HardForkLedgerConfig xs → Rep (HardForkLedgerConfig xs) x # to ∷ Rep (HardForkLedgerConfig xs) x → HardForkLedgerConfig xs # | |||||
CanHardFork xs ⇒ NoThunks (HardForkLedgerConfig xs) Source # | |||||
SerialiseHFC xs ⇒ SerialiseNodeToClient (HardForkBlock xs) (HardForkLedgerConfig xs) Source # | |||||
Defined in Ouroboros.Consensus.HardFork.Combinator.Serialisation.SerialiseNodeToClient Methods encodeNodeToClient ∷ CodecConfig (HardForkBlock xs) → BlockNodeToClientVersion (HardForkBlock xs) → HardForkLedgerConfig xs → Encoding Source # decodeNodeToClient ∷ CodecConfig (HardForkBlock xs) → BlockNodeToClientVersion (HardForkBlock xs) → ∀ s. Decoder s (HardForkLedgerConfig xs) Source # | |||||
type Rep (HardForkLedgerConfig xs) Source # | |||||
Defined in Ouroboros.Consensus.HardFork.Combinator.Basics type Rep (HardForkLedgerConfig xs) = D1 ('MetaData "HardForkLedgerConfig" "Ouroboros.Consensus.HardFork.Combinator.Basics" "ouroboros-consensus-0.25.0.0-inplace" 'False) (C1 ('MetaCons "HardForkLedgerConfig" 'PrefixI 'True) (S1 ('MetaSel ('Just "hardForkLedgerConfigShape") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (Shape xs)) :*: S1 ('MetaSel ('Just "hardForkLedgerConfigPerEra") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (PerEraLedgerConfig xs)))) |
data family StorageConfig blk Source #
Config needed for the
NodeInitStorage
class. Defined here to
avoid circular dependencies.
Instances
Isomorphic StorageConfig Source # | |||||
Defined in Ouroboros.Consensus.HardFork.Combinator.Embed.Unary Methods project ∷ NoHardForks blk ⇒ StorageConfig (HardForkBlock '[blk]) → StorageConfig blk Source # inject ∷ NoHardForks blk ⇒ StorageConfig blk → StorageConfig (HardForkBlock '[blk]) Source # | |||||
Generic (StorageConfig (DualBlock m a)) Source # | |||||
Defined in Ouroboros.Consensus.Ledger.Dual Associated Types
Methods from ∷ StorageConfig (DualBlock m a) → Rep (StorageConfig (DualBlock m a)) x # to ∷ Rep (StorageConfig (DualBlock m a)) x → StorageConfig (DualBlock m a) # | |||||
CanHardFork xs ⇒ NoThunks (StorageConfig (HardForkBlock xs)) Source # | |||||
Defined in Ouroboros.Consensus.HardFork.Combinator.Basics Methods noThunks ∷ Context → StorageConfig (HardForkBlock xs) → IO (Maybe ThunkInfo) Source # wNoThunks ∷ Context → StorageConfig (HardForkBlock xs) → IO (Maybe ThunkInfo) Source # showTypeOf ∷ Proxy (StorageConfig (HardForkBlock xs)) → String Source # | |||||
(NoThunks (StorageConfig m), NoThunks (StorageConfig a)) ⇒ NoThunks (StorageConfig (DualBlock m a)) Source # | |||||
type Rep (StorageConfig (DualBlock m a)) Source # | |||||
Defined in Ouroboros.Consensus.Ledger.Dual type Rep (StorageConfig (DualBlock m a)) = D1 ('MetaData "StorageConfig" "Ouroboros.Consensus.Ledger.Dual" "ouroboros-consensus-0.25.0.0-inplace" 'False) (C1 ('MetaCons "DualStorageConfig" 'PrefixI 'True) (S1 ('MetaSel ('Just "dualStorageConfigMain") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (StorageConfig m)) :*: S1 ('MetaSel ('Just "dualStorageConfigAux") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (StorageConfig a)))) | |||||
newtype StorageConfig (HardForkBlock xs) Source # | |||||
data StorageConfig (DualBlock m a) Source # | |||||
Defined in Ouroboros.Consensus.Ledger.Dual |
Functions on config
completeConsensusConfig' ∷ HasPartialConsensusConfig (BlockProtocol blk) ⇒ EpochInfo (Except PastHorizonException) → WrapPartialConsensusConfig blk → ConsensusConfig (BlockProtocol blk) Source #
completeConsensusConfig'' ∷ HasPartialConsensusConfig (BlockProtocol blk) ⇒ EpochInfo (Except PastHorizonException) → WrapPartialConsensusConfig blk → WrapConsensusConfig blk Source #
completeLedgerConfig' ∷ HasPartialLedgerConfig blk ⇒ EpochInfo (Except PastHorizonException) → WrapPartialLedgerConfig blk → LedgerConfig blk Source #
completeLedgerConfig'' ∷ HasPartialLedgerConfig blk ⇒ EpochInfo (Except PastHorizonException) → WrapPartialLedgerConfig blk → WrapLedgerConfig blk Source #
distribLedgerConfig ∷ ∀ (xs ∷ [Type]). CanHardFork xs ⇒ EpochInfo (Except PastHorizonException) → LedgerConfig (HardForkBlock xs) → NP WrapLedgerConfig xs Source #
distribTopLevelConfig ∷ ∀ (xs ∷ [Type]). All SingleEraBlock xs ⇒ EpochInfo (Except PastHorizonException) → TopLevelConfig (HardForkBlock xs) → NP TopLevelConfig xs Source #
Convenience re-exports
data EpochInfo (m ∷ Type → Type) Source #
Information about epochs
Different epochs may have different sizes and different slot lengths. This
information is encapsulated by EpochInfo
. It is parameterized over a monad
m
because the information about how long each epoch is may depend on
information derived from the blockchain itself. It ultimately requires acess
to state, and so either uses the monad for that or uses the monad to reify
failure due to cached state information being too stale for the current
query.