ouroboros-consensus-0.1.0.1: Consensus layer for the Ouroboros blockchain protocol
Safe Haskell None
Language Haskell2010

Ouroboros.Consensus.HardFork.Combinator

Description

The hard fork combinator

Intended for unqualified import

Synopsis

Documentation

type Except e = ExceptT e Identity Source #

The parameterizable exception monad.

Computations are either exceptions or normal values.

The return function returns a normal value, while >>= exits on the first exception. For a variant that continues after an error and collects all the errors, see Errors .

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.

Constructors

EpochInfo

Fields

data SingleEraInfo blk Source #

Information about an era (mostly for type errors)

Instances

Instances details
Eq ( SingleEraInfo blk) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Info

Show ( SingleEraInfo blk) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Info

Generic ( SingleEraInfo blk) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Info

Associated Types

type Rep ( SingleEraInfo blk) :: Type -> Type Source #

NoThunks ( SingleEraInfo blk) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Info

Serialise ( SingleEraInfo blk) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Info

type Rep ( SingleEraInfo blk) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Info

type Rep ( SingleEraInfo blk) = D1 (' MetaData "SingleEraInfo" "Ouroboros.Consensus.HardFork.Combinator.Info" "ouroboros-consensus-0.1.0.1-DT4Cvwf63DZKctsEvaJqCU" ' False ) ( C1 (' MetaCons "SingleEraInfo" ' PrefixI ' True ) ( S1 (' MetaSel (' Just "singleEraName") ' NoSourceUnpackedness ' SourceStrict ' DecidedStrict ) ( Rec0 Text )))

data Product2 f g x y Source #

Constructors

Pair2 (f x y) (g x y)

Instances

Instances details
( Eq (f x y), Eq (g x y)) => Eq ( Product2 f g x y) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Util.Functors

( Show (f x y), Show (g x y)) => Show ( Product2 f g x y) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Util.Functors

Generic ( Product2 f g x y) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Util.Functors

Associated Types

type Rep ( Product2 f g x y) :: Type -> Type Source #

type Rep ( Product2 f g x y) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Util.Functors

type Rep ( Product2 f g x y) = D1 (' MetaData "Product2" "Ouroboros.Consensus.HardFork.Combinator.Util.Functors" "ouroboros-consensus-0.1.0.1-DT4Cvwf63DZKctsEvaJqCU" ' False ) ( C1 (' MetaCons "Pair2" ' PrefixI ' False ) ( S1 (' MetaSel (' Nothing :: Maybe Symbol ) ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 (f x y)) :*: S1 (' MetaSel (' Nothing :: Maybe Symbol ) ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 (g x y))))

data family Ticked st :: Type 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.

Instances

Instances details
Show ( Ticked ()) Source #
Instance details

Defined in Ouroboros.Consensus.Ticked

Show ( Ticked a) => Show ( Ticked ( K a x)) Source #
Instance details

Defined in Ouroboros.Consensus.Ticked

( SListI xs, Show ( Ticked a)) => Show ( Ticked ( HardForkLedgerView_ ( K a :: Type -> Type ) xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Protocol.LedgerView

Generic ( Ticked ( LedgerState ( HardForkBlock xs))) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Ledger

NoThunks ( Ticked ( LedgerState ( DualBlock m a))) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

CanHardFork xs => NoThunks ( Ticked ( LedgerState ( HardForkBlock xs))) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Ledger

Bridge m a => GetTip ( Ticked ( LedgerState ( DualBlock m a))) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

CanHardFork xs => GetTip ( Ticked ( LedgerState ( HardForkBlock xs))) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Ledger

IsLedger ( LedgerState blk) => GetTip ( Ticked ( ExtLedgerState blk)) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Extended

IsLedger l => GetTip ( Ticked ( LedgerDB l)) Source #
Instance details

Defined in Ouroboros.Consensus.Storage.LedgerDB.InMemory

Isomorphic ( Ticked :.: LedgerState ) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Embed.Unary

Show ( Ticked (f a)) => Show (( Ticked :.: f) a) Source #
Instance details

Defined in Ouroboros.Consensus.Ticked

NoThunks ( Ticked (f a)) => NoThunks (( Ticked :.: f) a) Source #
Instance details

Defined in Ouroboros.Consensus.Ticked

data Ticked () Source #
Instance details

Defined in Ouroboros.Consensus.Ticked

type Rep ( Ticked ( LedgerState ( HardForkBlock xs))) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Ledger

type Rep ( Ticked ( LedgerState ( HardForkBlock xs))) = D1 (' MetaData "Ticked" "Ouroboros.Consensus.HardFork.Combinator.Ledger" "ouroboros-consensus-0.1.0.1-DT4Cvwf63DZKctsEvaJqCU" ' False ) ( C1 (' MetaCons "TickedHardForkLedgerState" ' PrefixI ' True ) ( S1 (' MetaSel (' Just "tickedHardForkLedgerStateTransition") ' NoSourceUnpackedness ' SourceStrict ' DecidedStrict ) ( Rec0 TransitionInfo ) :*: S1 (' MetaSel (' Just "tickedHardForkLedgerStatePerEra") ' NoSourceUnpackedness ' SourceStrict ' DecidedStrict ) ( Rec0 ( HardForkState ( Ticked :.: LedgerState ) xs))))
type HeaderHash ( Ticked l) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Basics

data Ticked ( LedgerState ( DualBlock m a)) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

data Ticked ( LedgerState ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Ledger

data Ticked ( HeaderState blk) Source #
Instance details

Defined in Ouroboros.Consensus.HeaderValidation

newtype Ticked ( WrapLedgerView blk) Source #
Instance details

Defined in Ouroboros.Consensus.TypeFamilyWrappers

newtype Ticked ( WrapChainDepState blk) Source #
Instance details

Defined in Ouroboros.Consensus.TypeFamilyWrappers

data Ticked ( ExtLedgerState blk) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Extended

data Ticked ( LedgerDB l) Source #

Ticking the ledger DB just ticks the current state

We don't push the new state into the DB until we apply a block.

Instance details

Defined in Ouroboros.Consensus.Storage.LedgerDB.InMemory

data Ticked ( HardForkChainDepState xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Protocol

data Ticked ( PBftState c) Source #
Instance details

Defined in Ouroboros.Consensus.Protocol.PBFT

newtype Ticked ( PBftLedgerView c) Source #
Instance details

Defined in Ouroboros.Consensus.Protocol.PBFT

data Ticked ( HardForkLedgerView_ f xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Protocol.LedgerView

newtype Ticked ( K a x) Source #
Instance details

Defined in Ouroboros.Consensus.Ticked

data family NestedCtxt_ blk :: ( Type -> Type ) -> Type -> Type Source #

Context identifying what kind of block we have

In almost all places we will use NestedCtxt rather than NestedCtxt_ .

Instances

Instances details
SameDepIndex ( NestedCtxt_ m f) => SameDepIndex ( NestedCtxt_ ( DualBlock m a) f) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

CanHardFork xs => SameDepIndex ( NestedCtxt_ ( HardForkBlock xs) Header ) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Block

Show ( NestedCtxt_ m f x) => Show ( NestedCtxt_ ( DualBlock m a) f x) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

All SingleEraBlock xs => Show ( NestedCtxt_ ( HardForkBlock xs) Header a) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Block

data NestedCtxt_ ( HardForkBlock xs) a b Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Block

data NestedCtxt_ ( HardForkBlock xs) a b where
newtype NestedCtxt_ ( DualBlock m a) f x Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

newtype NestedCtxt_ ( DualBlock m a) f x where

data family Header blk :: Type Source #

Instances

Instances details
Isomorphic Header Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Embed.Unary

Inject Header Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Embed.Nary

Typeable xs => ShowProxy ( Header ( HardForkBlock xs) :: Type ) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Block

CanHardFork xs => HasNestedContent Header ( HardForkBlock xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Block

SerialiseHFC xs => ReconstructNestedCtxt Header ( HardForkBlock xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Serialisation.SerialiseDisk

( Typeable m, Typeable a) => ShowProxy ( DualHeader m a :: Type ) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

HasNestedContent Header m => HasNestedContent Header ( DualBlock m a) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

ReconstructNestedCtxt Header m => ReconstructNestedCtxt Header ( DualBlock m a) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

All ( Compose Eq Header ) xs => Eq ( Header ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Block

CanHardFork xs => Show ( Header ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Block

NoThunks ( Header ( DualBlock m a)) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

CanHardFork xs => NoThunks ( Header ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Block

CanHardFork xs => HasHeader ( Header ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Block

HasHeader blk => StandardHash ( Header blk) Source #
Instance details

Defined in Ouroboros.Consensus.Block.Abstract

All CondenseConstraints xs => Condense ( Header ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Condense

SerialiseHFC xs => DecodeDiskDep ( NestedCtxt Header ) ( HardForkBlock xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Serialisation.SerialiseDisk

SerialiseHFC xs => DecodeDiskDepIx ( NestedCtxt Header ) ( HardForkBlock xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Serialisation.SerialiseDisk

SerialiseHFC xs => EncodeDiskDep ( NestedCtxt Header ) ( HardForkBlock xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Serialisation.SerialiseDisk

SerialiseHFC xs => EncodeDiskDepIx ( NestedCtxt Header ) ( HardForkBlock xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Serialisation.SerialiseDisk

SerialiseHFC xs => SerialiseNodeToNode ( HardForkBlock xs) ( Header ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Serialisation.SerialiseNodeToNode

EncodeDiskDep ( NestedCtxt Header ) m => EncodeDiskDep ( NestedCtxt Header ) ( DualBlock m a) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

EncodeDiskDepIx ( NestedCtxt Header ) m => EncodeDiskDepIx ( NestedCtxt Header ) ( DualBlock m a) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

Show ( Header m) => Show ( DualHeader m a) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

Bridge m a => HasHeader ( DualHeader m a) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

CanHardFork xs => SameDepIndex ( NestedCtxt_ ( HardForkBlock xs) Header ) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Block

All SingleEraBlock xs => Show ( NestedCtxt_ ( HardForkBlock xs) Header a) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Block

type HeaderHash ( Header blk) Source #
Instance details

Defined in Ouroboros.Consensus.Block.Abstract

newtype Header ( HardForkBlock xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Block

type BlockProtocol ( Header blk) Source #
Instance details

Defined in Ouroboros.Consensus.Block.Abstract

newtype Header ( DualBlock m a) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

data family StorageConfig blk :: Type Source #

Config needed for the NodeInitStorage class. Defined here to avoid circular dependencies.

Instances

Instances details
Isomorphic StorageConfig Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Embed.Unary

Generic ( StorageConfig ( DualBlock m a)) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

( NoThunks ( StorageConfig m), NoThunks ( StorageConfig a)) => NoThunks ( StorageConfig ( DualBlock m a)) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

CanHardFork xs => NoThunks ( StorageConfig ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Basics

type Rep ( StorageConfig ( DualBlock m a)) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

type Rep ( StorageConfig ( DualBlock m a)) = D1 (' MetaData "StorageConfig" "Ouroboros.Consensus.Ledger.Dual" "ouroboros-consensus-0.1.0.1-DT4Cvwf63DZKctsEvaJqCU" ' 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 #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Basics

data StorageConfig ( DualBlock m a) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

data family CodecConfig blk :: Type 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

Instances details
Isomorphic CodecConfig Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Embed.Unary

Generic ( CodecConfig ( DualBlock m a)) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

( NoThunks ( CodecConfig m), NoThunks ( CodecConfig a)) => NoThunks ( CodecConfig ( DualBlock m a)) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

CanHardFork xs => NoThunks ( CodecConfig ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Basics

type Rep ( CodecConfig ( DualBlock m a)) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

type Rep ( CodecConfig ( DualBlock m a)) = D1 (' MetaData "CodecConfig" "Ouroboros.Consensus.Ledger.Dual" "ouroboros-consensus-0.1.0.1-DT4Cvwf63DZKctsEvaJqCU" ' 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 #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Basics

data CodecConfig ( DualBlock m a) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

data family BlockConfig blk :: Type Source #

Static configuration required to work with this type of blocks

Instances

Instances details
Isomorphic BlockConfig Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Embed.Unary

NoThunks ( BlockConfig ( DualBlock m a)) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

CanHardFork xs => NoThunks ( BlockConfig ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Basics

newtype BlockConfig ( HardForkBlock xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Basics

data BlockConfig ( DualBlock m a) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

data family ConsensusConfig p :: Type 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

Instances details
Generic ( ConsensusConfig ( ModChainSel p s)) Source #
Instance details

Defined in Ouroboros.Consensus.Protocol.ModChainSel

Generic ( ConsensusConfig ( Bft c)) Source #
Instance details

Defined in Ouroboros.Consensus.Protocol.BFT

Generic ( ConsensusConfig ( HardForkProtocol xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Basics

Generic ( ConsensusConfig ( PBft c)) Source #
Instance details

Defined in Ouroboros.Consensus.Protocol.PBFT

ConsensusProtocol p => NoThunks ( ConsensusConfig ( ModChainSel p s)) Source #
Instance details

Defined in Ouroboros.Consensus.Protocol.ModChainSel

BftCrypto c => NoThunks ( ConsensusConfig ( Bft c)) Source #
Instance details

Defined in Ouroboros.Consensus.Protocol.BFT

CanHardFork xs => NoThunks ( ConsensusConfig ( HardForkProtocol xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Basics

NoThunks ( ConsensusConfig ( PBft c)) Source #
Instance details

Defined in Ouroboros.Consensus.Protocol.PBFT

type Rep ( ConsensusConfig ( ModChainSel p s)) Source #
Instance details

Defined in Ouroboros.Consensus.Protocol.ModChainSel

type Rep ( ConsensusConfig ( ModChainSel p s)) = D1 (' MetaData "ConsensusConfig" "Ouroboros.Consensus.Protocol.ModChainSel" "ouroboros-consensus-0.1.0.1-DT4Cvwf63DZKctsEvaJqCU" ' True ) ( C1 (' MetaCons "McsConsensusConfig" ' PrefixI ' True ) ( S1 (' MetaSel (' Just "mcsConfigP") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 ( ConsensusConfig p))))
type Rep ( ConsensusConfig ( Bft c)) Source #
Instance details

Defined in Ouroboros.Consensus.Protocol.BFT

type Rep ( ConsensusConfig ( HardForkProtocol xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Basics

type Rep ( ConsensusConfig ( HardForkProtocol xs)) = D1 (' MetaData "ConsensusConfig" "Ouroboros.Consensus.HardFork.Combinator.Basics" "ouroboros-consensus-0.1.0.1-DT4Cvwf63DZKctsEvaJqCU" ' 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 ( PBft c)) Source #
Instance details

Defined in Ouroboros.Consensus.Protocol.PBFT

type Rep ( ConsensusConfig ( PBft c)) = D1 (' MetaData "ConsensusConfig" "Ouroboros.Consensus.Protocol.PBFT" "ouroboros-consensus-0.1.0.1-DT4Cvwf63DZKctsEvaJqCU" ' True ) ( C1 (' MetaCons "PBftConfig" ' PrefixI ' True ) ( S1 (' MetaSel (' Just "pbftParams") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 PBftParams )))
data ConsensusConfig ( Bft c) Source #

(Static) node configuration

Instance details

Defined in Ouroboros.Consensus.Protocol.BFT

data ConsensusConfig ( HardForkProtocol xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Basics

newtype ConsensusConfig ( PBft c) Source #

(Static) node configuration

Instance details

Defined in Ouroboros.Consensus.Protocol.PBFT

newtype ConsensusConfig ( ModChainSel p s) Source #
Instance details

Defined in Ouroboros.Consensus.Protocol.ModChainSel

data family LedgerState blk :: Type Source #

Ledger state associated with a block

Instances

Instances details
Isomorphic LedgerState Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Embed.Unary

Inject LedgerState Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Embed.Nary

( Eq ( LedgerState m), Eq ( LedgerState a), Bridge m a) => Eq ( LedgerState ( DualBlock m a)) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

CanHardFork xs => Eq ( LedgerState ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Basics

( Show ( LedgerState m), Show ( LedgerState a), Bridge m a) => Show ( LedgerState ( DualBlock m a)) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

CanHardFork xs => Show ( LedgerState ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Basics

Generic ( Ticked ( LedgerState ( HardForkBlock xs))) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Ledger

NoThunks ( Ticked ( LedgerState ( DualBlock m a))) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

CanHardFork xs => NoThunks ( Ticked ( LedgerState ( HardForkBlock xs))) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Ledger

NoThunks ( LedgerState ( DualBlock m a)) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

CanHardFork xs => NoThunks ( LedgerState ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Basics

Bridge m a => IsLedger ( LedgerState ( DualBlock m a)) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

CanHardFork xs => IsLedger ( LedgerState ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Ledger

Bridge m a => GetTip ( Ticked ( LedgerState ( DualBlock m a))) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

CanHardFork xs => GetTip ( Ticked ( LedgerState ( HardForkBlock xs))) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Ledger

Bridge m a => GetTip ( LedgerState ( DualBlock m a)) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

CanHardFork xs => GetTip ( LedgerState ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Ledger

CanHardFork xs => ApplyBlock ( LedgerState ( HardForkBlock xs)) ( HardForkBlock xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Ledger

SerialiseHFC xs => DecodeDisk ( HardForkBlock xs) ( LedgerState ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Serialisation.SerialiseDisk

SerialiseHFC xs => EncodeDisk ( HardForkBlock xs) ( LedgerState ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Serialisation.SerialiseDisk

Bridge m a => ApplyBlock ( LedgerState ( DualBlock m a)) ( DualBlock m a) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

Isomorphic ( Ticked :.: LedgerState ) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Embed.Unary

type Rep ( Ticked ( LedgerState ( HardForkBlock xs))) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Ledger

type Rep ( Ticked ( LedgerState ( HardForkBlock xs))) = D1 (' MetaData "Ticked" "Ouroboros.Consensus.HardFork.Combinator.Ledger" "ouroboros-consensus-0.1.0.1-DT4Cvwf63DZKctsEvaJqCU" ' False ) ( C1 (' MetaCons "TickedHardForkLedgerState" ' PrefixI ' True ) ( S1 (' MetaSel (' Just "tickedHardForkLedgerStateTransition") ' NoSourceUnpackedness ' SourceStrict ' DecidedStrict ) ( Rec0 TransitionInfo ) :*: S1 (' MetaSel (' Just "tickedHardForkLedgerStatePerEra") ' NoSourceUnpackedness ' SourceStrict ' DecidedStrict ) ( Rec0 ( HardForkState ( Ticked :.: LedgerState ) xs))))
type HeaderHash ( LedgerState blk) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Basics

data Ticked ( LedgerState ( DualBlock m a)) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

data Ticked ( LedgerState ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Ledger

newtype LedgerState ( HardForkBlock xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Basics

type LedgerErr ( LedgerState ( DualBlock m a)) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

type LedgerErr ( LedgerState ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Ledger

type AuxLedgerEvent ( LedgerState ( DualBlock m a)) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

type AuxLedgerEvent ( LedgerState ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Ledger

type LedgerCfg ( LedgerState ( DualBlock m a)) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

type LedgerCfg ( LedgerState ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Basics

data LedgerState ( DualBlock m a) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

data family Validated x :: Type Source #

" Validated " transaction or block

The ledger defines how to validate transactions and blocks. It's possible the type before and after validation may be distinct (eg Alonzo transactions), which originally motivated this family.

We also gain the related benefit that certain interface functions, such as those that reapply blocks, can have a more precise type now. TODO

Similarly, the Node-to-Client mini protocols can explicitly indicate that the client trusts the blocks from the local server, by having the server send Validated blocks to the client. TODO

Note that validation has different implications for a transaction than for a block. In particular, a validated transaction can be " reapplied " to different ledger states, whereas a validated block must only be " reapplied " to the exact same ledger state (eg as part of rebuilding from an on-disk ledger snapshot).

Since the ledger defines validation, see the ledger details for concrete examples of what determines the validity (wrt to a LedgerState ) of a transaction and/or block. Example properties include: a transaction's claimed inputs exist and are still unspent, a block carries a sufficient cryptographic signature, etc.

Instances

Instances details
CanHardFork xs => Eq ( Validated ( GenTx ( HardForkBlock xs))) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Mempool

Bridge m a => Show ( Validated ( GenTx ( DualBlock m a))) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

CanHardFork xs => Show ( Validated ( GenTx ( HardForkBlock xs))) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Mempool

Generic ( Validated ( GenTx ( HardForkBlock xs))) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Mempool

NoThunks ( Validated ( GenTx ( DualBlock m a))) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

CanHardFork xs => NoThunks ( Validated ( GenTx ( HardForkBlock xs))) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Mempool

type Rep ( Validated ( GenTx ( HardForkBlock xs))) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Mempool

type Rep ( Validated ( GenTx ( HardForkBlock xs))) = D1 (' MetaData "Validated" "Ouroboros.Consensus.HardFork.Combinator.Mempool" "ouroboros-consensus-0.1.0.1-DT4Cvwf63DZKctsEvaJqCU" ' True ) ( C1 (' MetaCons "HardForkValidatedGenTx" ' PrefixI ' True ) ( S1 (' MetaSel (' Just "getHardForkValidatedGenTx") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 ( OneEraValidatedGenTx xs))))
data Validated ( GenTx ( DualBlock m a)) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

newtype Validated ( GenTx ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Mempool

data family TxId tx :: Type Source #

A generalized transaction, GenTx , identifier.

Instances

Instances details
( Typeable m, Typeable a) => ShowProxy ( TxId ( GenTx ( DualBlock m a)) :: Type ) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

Typeable xs => ShowProxy ( TxId ( GenTx ( HardForkBlock xs)) :: Type ) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Mempool

Eq ( GenTxId m) => Eq ( TxId ( GenTx ( DualBlock m a))) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

CanHardFork xs => Eq ( TxId ( GenTx ( HardForkBlock xs))) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Mempool

Ord ( GenTxId m) => Ord ( TxId ( GenTx ( DualBlock m a))) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

CanHardFork xs => Ord ( TxId ( GenTx ( HardForkBlock xs))) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Mempool

Show ( GenTxId m) => Show ( TxId ( GenTx ( DualBlock m a))) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

CanHardFork xs => Show ( TxId ( GenTx ( HardForkBlock xs))) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Mempool

Generic ( TxId ( GenTx ( HardForkBlock xs))) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Mempool

NoThunks ( TxId ( GenTx ( DualBlock m a))) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

CanHardFork xs => NoThunks ( TxId ( GenTx ( HardForkBlock xs))) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Mempool

All CondenseConstraints xs => Condense ( TxId ( GenTx ( HardForkBlock xs))) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Condense

SerialiseHFC xs => SerialiseNodeToClient ( HardForkBlock xs) ( GenTxId ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Serialisation.SerialiseNodeToClient

SerialiseHFC xs => SerialiseNodeToNode ( HardForkBlock xs) ( GenTxId ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Serialisation.SerialiseNodeToNode

type Rep ( TxId ( GenTx ( HardForkBlock xs))) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Mempool

type Rep ( TxId ( GenTx ( HardForkBlock xs))) = D1 (' MetaData "TxId" "Ouroboros.Consensus.HardFork.Combinator.Mempool" "ouroboros-consensus-0.1.0.1-DT4Cvwf63DZKctsEvaJqCU" ' True ) ( C1 (' MetaCons "HardForkGenTxId" ' PrefixI ' True ) ( S1 (' MetaSel (' Just "getHardForkGenTxId") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 ( OneEraGenTxId xs))))
newtype TxId ( GenTx ( DualBlock m a)) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

newtype TxId ( GenTx ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Mempool

data family GenTx blk :: Type Source #

Generalized transaction

The mempool (and, accordingly, blocks) consist of "generalized transactions"; this could be "proper" transactions (transferring funds) but also other kinds of things such as update proposals, delegations, etc.

Instances

Instances details
Isomorphic GenTx Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Embed.Unary

Inject GenTx Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Embed.Nary

( Typeable m, Typeable a) => ShowProxy ( TxId ( GenTx ( DualBlock m a)) :: Type ) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

Typeable xs => ShowProxy ( TxId ( GenTx ( HardForkBlock xs)) :: Type ) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Mempool

( Typeable m, Typeable a) => ShowProxy ( GenTx ( DualBlock m a) :: Type ) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

Typeable xs => ShowProxy ( GenTx ( HardForkBlock xs) :: Type ) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Mempool

CanHardFork xs => Eq ( Validated ( GenTx ( HardForkBlock xs))) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Mempool

Eq ( GenTxId m) => Eq ( TxId ( GenTx ( DualBlock m a))) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

CanHardFork xs => Eq ( TxId ( GenTx ( HardForkBlock xs))) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Mempool

CanHardFork xs => Eq ( GenTx ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Mempool

Ord ( GenTxId m) => Ord ( TxId ( GenTx ( DualBlock m a))) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

CanHardFork xs => Ord ( TxId ( GenTx ( HardForkBlock xs))) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Mempool

Bridge m a => Show ( Validated ( GenTx ( DualBlock m a))) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

CanHardFork xs => Show ( Validated ( GenTx ( HardForkBlock xs))) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Mempool

Show ( GenTxId m) => Show ( TxId ( GenTx ( DualBlock m a))) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

CanHardFork xs => Show ( TxId ( GenTx ( HardForkBlock xs))) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Mempool

Bridge m a => Show ( GenTx ( DualBlock m a)) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

CanHardFork xs => Show ( GenTx ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Mempool

Generic ( Validated ( GenTx ( HardForkBlock xs))) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Mempool

Generic ( TxId ( GenTx ( HardForkBlock xs))) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Mempool

Generic ( GenTx ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Mempool

NoThunks ( Validated ( GenTx ( DualBlock m a))) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

CanHardFork xs => NoThunks ( Validated ( GenTx ( HardForkBlock xs))) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Mempool

NoThunks ( TxId ( GenTx ( DualBlock m a))) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

CanHardFork xs => NoThunks ( TxId ( GenTx ( HardForkBlock xs))) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Mempool

NoThunks ( GenTx ( DualBlock m a)) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

CanHardFork xs => NoThunks ( GenTx ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Mempool

All CondenseConstraints xs => Condense ( TxId ( GenTx ( HardForkBlock xs))) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Condense

All CondenseConstraints xs => Condense ( GenTx ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Condense

Bridge m a => HasTxId ( GenTx ( DualBlock m a)) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

CanHardFork xs => HasTxId ( GenTx ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Mempool

SerialiseHFC xs => SerialiseNodeToClient ( HardForkBlock xs) ( GenTxId ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Serialisation.SerialiseNodeToClient

SerialiseHFC xs => SerialiseNodeToClient ( HardForkBlock xs) ( GenTx ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Serialisation.SerialiseNodeToClient

SerialiseHFC xs => SerialiseNodeToNode ( HardForkBlock xs) ( GenTxId ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Serialisation.SerialiseNodeToNode

SerialiseHFC xs => SerialiseNodeToNode ( HardForkBlock xs) ( GenTx ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Serialisation.SerialiseNodeToNode

type Rep ( Validated ( GenTx ( HardForkBlock xs))) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Mempool

type Rep ( Validated ( GenTx ( HardForkBlock xs))) = D1 (' MetaData "Validated" "Ouroboros.Consensus.HardFork.Combinator.Mempool" "ouroboros-consensus-0.1.0.1-DT4Cvwf63DZKctsEvaJqCU" ' True ) ( C1 (' MetaCons "HardForkValidatedGenTx" ' PrefixI ' True ) ( S1 (' MetaSel (' Just "getHardForkValidatedGenTx") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 ( OneEraValidatedGenTx xs))))
type Rep ( TxId ( GenTx ( HardForkBlock xs))) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Mempool

type Rep ( TxId ( GenTx ( HardForkBlock xs))) = D1 (' MetaData "TxId" "Ouroboros.Consensus.HardFork.Combinator.Mempool" "ouroboros-consensus-0.1.0.1-DT4Cvwf63DZKctsEvaJqCU" ' True ) ( C1 (' MetaCons "HardForkGenTxId" ' PrefixI ' True ) ( S1 (' MetaSel (' Just "getHardForkGenTxId") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 ( OneEraGenTxId xs))))
type Rep ( GenTx ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Mempool

type Rep ( GenTx ( HardForkBlock xs)) = D1 (' MetaData "GenTx" "Ouroboros.Consensus.HardFork.Combinator.Mempool" "ouroboros-consensus-0.1.0.1-DT4Cvwf63DZKctsEvaJqCU" ' True ) ( C1 (' MetaCons "HardForkGenTx" ' PrefixI ' True ) ( S1 (' MetaSel (' Just "getHardForkGenTx") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 ( OneEraGenTx xs))))
data Validated ( GenTx ( DualBlock m a)) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

newtype Validated ( GenTx ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Mempool

newtype TxId ( GenTx ( DualBlock m a)) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

newtype TxId ( GenTx ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Mempool

newtype GenTx ( HardForkBlock xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Mempool

data GenTx ( DualBlock m a) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

class IsNonEmpty xs where Source #

Instances

Instances details
IsNonEmpty (x ': xs :: [a]) Source #
Instance details

Defined in Ouroboros.Consensus.Util.SOP

Methods

isNonEmpty :: proxy (x ': xs) -> ProofNonEmpty (x ': xs) Source #

data ProofNonEmpty :: [a] -> Type where Source #

Constructors

ProofNonEmpty :: Proxy x -> Proxy xs -> ProofNonEmpty (x ': xs)

class ( UpdateLedger blk, NoThunks ( PartialLedgerConfig blk)) => HasPartialLedgerConfig blk where Source #

Partial ledger config

Minimal complete definition

Nothing

Methods

completeLedgerConfig :: proxy blk -> EpochInfo ( Except PastHorizonException ) -> PartialLedgerConfig blk -> LedgerConfig blk Source #

Construct LedgerConfig from PartialLedgerCfg

NOTE: The EpochInfo provided will have limited range, any attempt to look past its horizon will result in a pure PastHorizonException . The horizon is determined by the tip of the ledger state (not view) from which the EpochInfo is derived.

data InPairs (f :: k -> k -> Type ) (xs :: [k]) where Source #

We have an f x y for each pair (x, y) of successive list elements

Constructors

PNil :: InPairs f '[x]
PCons :: f x y -> InPairs f (y ': zs) -> InPairs f (x ': (y ': zs))

data Telescope (g :: k -> Type ) (f :: k -> Type ) (xs :: [k]) where Source #

Telescope

A telescope is an extension of an NS , where every time we "go right" in the sum we have an additional value.

Blockchain intuition: think of g as representing some kind of past state, and f some kind of current state. Then depending on how many hard fork transitions we have had, we might either have, say

TZ currentByronState
TS pastByronState $ TZ currentShelleyState
TS pastByronState $ TS pastShelleyState $ TZ currentGoguenState

The Telescope API mostly follows sop-core conventions, supporting functor ( hmap , hcmap ), applicative ( hap , hpure ), foldable ( hcollapse ) and traversable ( hsequence' ). However, since Telescope is a bi-functor, it cannot reuse the sop-core classes. The naming scheme of the functions is adopted from sop-core though; for example:

bi h (c) zipWith
|  |  |    |
|  |  |    \ zipWith: the name from base
|  |  |
|  |  \ constrained: version of the function with a constraint parameter
|  |
|  \ higher order: 'Telescope' (like 'NS'/'NP') is a /higher order/ functor
|
\ bifunctor: 'Telescope' (unlike 'NS'/'NP') is a higher order /bifunctor/

In addition to the standard SOP operators, the new operators that make a Telescope a telescope are extend , retract and align ; see their documentation for details.

Constructors

TZ :: !(f x) -> Telescope g f (x ': xs)
TS :: !(g x) -> !( Telescope g f xs) -> Telescope g f (x ': xs)

Instances

Instances details
HAp ( Telescope g :: (k -> Type ) -> [k] -> Type ) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Util.Telescope

Methods

hap :: forall (f :: k0 -> Type ) (g0 :: k0 -> Type ) (xs :: l). Prod ( Telescope g) (f -.-> g0) xs -> Telescope g f xs -> Telescope g g0 xs Source #

HTraverse_ ( Telescope g :: (k -> Type ) -> [k] -> Type ) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Util.Telescope

Methods

hctraverse_ :: forall c (xs :: l) g0 proxy f. ( AllN ( Telescope g) c xs, Applicative g0) => proxy c -> ( forall (a :: k0). c a => f a -> g0 ()) -> Telescope g f xs -> g0 () Source #

htraverse_ :: forall (xs :: l) g0 f. ( SListIN ( Telescope g) xs, Applicative g0) => ( forall (a :: k0). f a -> g0 ()) -> Telescope g f xs -> g0 () Source #

HSequence ( Telescope g :: (k -> Type ) -> [k] -> Type ) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Util.Telescope

Methods

hsequence' :: forall (xs :: l) f (g0 :: k0 -> Type ). ( SListIN ( Telescope g) xs, Applicative f) => Telescope g (f :.: g0) xs -> f ( Telescope g g0 xs) Source #

hctraverse' :: forall c (xs :: l) g0 proxy f f'. ( AllN ( Telescope g) c xs, Applicative g0) => proxy c -> ( forall (a :: k0). c a => f a -> g0 (f' a)) -> Telescope g f xs -> g0 ( Telescope g f' xs) Source #

htraverse' :: forall (xs :: l) g0 f f'. ( SListIN ( Telescope g) xs, Applicative g0) => ( forall (a :: k0). f a -> g0 (f' a)) -> Telescope g f xs -> g0 ( Telescope g f' xs) Source #

( All ( Compose Eq g) xs, All ( Compose Eq f) xs) => Eq ( Telescope g f xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Util.Telescope

( All ( Compose Eq g) xs, All ( Compose Ord g) xs, All ( Compose Eq f) xs, All ( Compose Ord f) xs) => Ord ( Telescope g f xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Util.Telescope

( All ( Compose Show g) xs, All ( Compose Show f) xs) => Show ( Telescope g f xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Util.Telescope

( All ( Compose NoThunks g) xs, All ( Compose NoThunks f) xs) => NoThunks ( Telescope g f xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Util.Telescope

type Prod ( Telescope g :: (k -> Type ) -> [k] -> Type ) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Util.Telescope

type Prod ( Telescope g :: (k -> Type ) -> [k] -> Type ) = NP :: (k -> Type ) -> [k] -> Type
type SListIN ( Telescope g :: (k -> Type ) -> [k] -> Type ) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Util.Telescope

type SListIN ( Telescope g :: (k -> Type ) -> [k] -> Type ) = SListI :: [k] -> Constraint
type AllN ( Telescope g :: (k -> Type ) -> [k] -> Type ) (c :: k -> Constraint ) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Util.Telescope

type AllN ( Telescope g :: (k -> Type ) -> [k] -> Type ) (c :: k -> Constraint ) = All c

data Mismatch :: (k -> Type ) -> (k -> Type ) -> [k] -> Type where Source #

Constructors

ML :: f x -> NS g xs -> Mismatch f g (x ': xs)
MR :: NS f xs -> g x -> Mismatch f g (x ': xs)
MS :: Mismatch f g xs -> Mismatch f g (x ': xs)

Instances

Instances details
HAp ( Mismatch f :: (k -> Type ) -> [k] -> Type ) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Util.Match

Methods

hap :: forall (f0 :: k0 -> Type ) (g :: k0 -> Type ) (xs :: l). Prod ( Mismatch f) (f0 -.-> g) xs -> Mismatch f f0 xs -> Mismatch f g xs Source #

( All ( Compose Eq f) xs, All ( Compose Eq g) xs) => Eq ( Mismatch f g xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Util.Match

( All ( Compose Eq f) xs, All ( Compose Ord f) xs, All ( Compose Eq g) xs, All ( Compose Ord g) xs) => Ord ( Mismatch f g xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Util.Match

( All ( Compose Show f) xs, All ( Compose Show g) xs) => Show ( Mismatch f g xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Util.Match

( All ( Compose NoThunks f) xs, All ( Compose NoThunks g) xs) => NoThunks ( Mismatch f g xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Util.Match

type Prod ( Mismatch f :: (k -> Type ) -> [k] -> Type ) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Util.Match

type Prod ( Mismatch f :: (k -> Type ) -> [k] -> Type ) = NP :: (k -> Type ) -> [k] -> Type
type SListIN ( Mismatch f :: (k -> Type ) -> [k] -> Type ) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Util.Match

type SListIN ( Mismatch f :: (k -> Type ) -> [k] -> Type ) = SListI :: [k] -> Constraint
type AllN ( Mismatch f :: (k -> Type ) -> [k] -> Type ) (c :: k -> Constraint ) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Util.Match

type AllN ( Mismatch f :: (k -> Type ) -> [k] -> Type ) (c :: k -> Constraint ) = All c

newtype HardForkState f xs Source #

Generic hard fork state

This is used both for the consensus state and the ledger state.

Instances

Instances details
SerialiseHFC xs => DecodeDisk ( HardForkBlock xs) ( HardForkChainDepState xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Serialisation.SerialiseDisk

SerialiseHFC xs => EncodeDisk ( HardForkBlock xs) ( HardForkChainDepState xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Serialisation.SerialiseDisk

HAp HardForkState Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.State.Instances

Methods

hap :: forall (f :: k -> Type ) (g :: k -> Type ) (xs :: l). Prod HardForkState (f -.-> g) xs -> HardForkState f xs -> HardForkState g xs Source #

HCollapse HardForkState Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.State.Instances

HSequence HardForkState Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.State.Instances

Methods

hsequence' :: forall (xs :: l) f (g :: k -> Type ). ( SListIN HardForkState xs, Applicative f) => HardForkState (f :.: g) xs -> f ( HardForkState g xs) Source #

hctraverse' :: forall c (xs :: l) g proxy f f'. ( AllN HardForkState c xs, Applicative g) => proxy c -> ( forall (a :: k). c a => f a -> g (f' a)) -> HardForkState f xs -> g ( HardForkState f' xs) Source #

htraverse' :: forall (xs :: l) g f f'. ( SListIN HardForkState xs, Applicative g) => ( forall (a :: k). f a -> g (f' a)) -> HardForkState f xs -> g ( HardForkState f' xs) Source #

( All SingleEraBlock xs, forall blk. SingleEraBlock blk => Eq (f blk)) => Eq ( HardForkState f xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.State.Instances

( All SingleEraBlock xs, forall blk. SingleEraBlock blk => Show (f blk)) => Show ( HardForkState f xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.State.Instances

( All SingleEraBlock xs, forall blk. SingleEraBlock blk => NoThunks (f blk)) => NoThunks ( HardForkState f xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.State.Instances

data Ticked ( HardForkChainDepState xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Protocol

type Prod HardForkState Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.State.Instances

type SListIN HardForkState Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.State.Instances

type CollapseTo HardForkState a Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.State.Instances

type AllN HardForkState (c :: Type -> Constraint ) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.State.Instances

data family BlockQuery blk :: Type -> Type Source #

Different queries supported by the ledger, indexed by the result type.

Instances

Instances details
ShowQuery ( BlockQuery ( DualBlock m a)) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

All SingleEraBlock xs => ShowQuery ( BlockQuery ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Ledger.Query

SameDepIndex ( BlockQuery ( DualBlock m a)) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

All SingleEraBlock xs => SameDepIndex ( BlockQuery ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Ledger.Query

Inject ( SomeSecond BlockQuery ) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Embed.Nary

SerialiseHFC xs => SerialiseResult ( HardForkBlock xs) ( BlockQuery ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Serialisation.SerialiseNodeToClient

SerialiseHFC xs => SerialiseNodeToClient ( HardForkBlock xs) ( SomeSecond BlockQuery ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Serialisation.SerialiseNodeToClient

SameDepIndex ( BlockQuery blk) => Eq ( SomeSecond BlockQuery blk) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Query

( forall result. Show ( BlockQuery blk result)) => Show ( SomeSecond BlockQuery blk) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Query

Show ( BlockQuery ( DualBlock m a) result) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

All SingleEraBlock xs => Show ( BlockQuery ( HardForkBlock xs) result) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Ledger.Query

( Typeable m, Typeable a) => ShowProxy ( BlockQuery ( DualBlock m a) :: Type -> Type ) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

Typeable xs => ShowProxy ( BlockQuery ( HardForkBlock xs) :: Type -> Type ) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Ledger.Query

data BlockQuery ( HardForkBlock xs) a Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Ledger.Query

data BlockQuery ( HardForkBlock xs) a where
data BlockQuery ( DualBlock m a) result Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

data BlockQuery ( DualBlock m a) result

class ( LedgerSupportsProtocol blk, InspectLedger blk, LedgerSupportsMempool blk, HasTxId ( GenTx blk), QueryLedger blk, HasPartialConsensusConfig ( BlockProtocol blk), HasPartialLedgerConfig blk, ConvertRawHash blk, ReconstructNestedCtxt Header blk, CommonProtocolParams blk, LedgerSupportsPeerSelection blk, ConfigSupportsNode blk, NodeInitStorage blk, BlockSupportsMetrics blk, Eq ( GenTx blk), Eq ( Validated ( GenTx blk)), Eq ( ApplyTxErr blk), Show blk, Show ( Header blk), Show ( CannotForge blk), Show ( ForgeStateInfo blk), Show ( ForgeStateUpdateError blk)) => SingleEraBlock blk where Source #

Blocks from which we can assemble a hard fork

Methods

singleEraTransition Source #

Arguments

:: PartialLedgerConfig blk
-> EraParams

Current era parameters

-> Bound

Start of this era

-> LedgerState blk
-> Maybe EpochNo

Era transition

This should only report the transition point once it is stable (rollback cannot affect it anymore).

Since we need this to construct the HardForkSummary (and hence the EpochInfo ), this takes the partial config, not the full config (or we'd end up with a catch-22).

singleEraInfo :: proxy blk -> SingleEraInfo blk Source #

Era information (for use in error messages)

data WithBlockNo (f :: k -> Type ) (a :: k) Source #

Instances

Instances details
Eq (f a) => Eq ( WithBlockNo f a) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Protocol.ChainSel

Show (f a) => Show ( WithBlockNo f a) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Protocol.ChainSel

Generic ( WithBlockNo f a) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Protocol.ChainSel

Associated Types

type Rep ( WithBlockNo f a) :: Type -> Type Source #

NoThunks (f a) => NoThunks ( WithBlockNo f a) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Protocol.ChainSel

type Rep ( WithBlockNo f a) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Protocol.ChainSel

type Rep ( WithBlockNo f a) = D1 (' MetaData "WithBlockNo" "Ouroboros.Consensus.HardFork.Combinator.Protocol.ChainSel" "ouroboros-consensus-0.1.0.1-DT4Cvwf63DZKctsEvaJqCU" ' False ) ( C1 (' MetaCons "WithBlockNo" ' PrefixI ' True ) ( S1 (' MetaSel (' Just "getBlockNo") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 BlockNo ) :*: S1 (' MetaSel (' Just "dropBlockNo") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 (f a))))

data AcrossEraSelection :: Type -> Type -> Type where Source #

Constructors

CompareBlockNo :: AcrossEraSelection x y

Just compare block numbers

This is a useful default when two eras run totally different consensus protocols, and we just want to choose the longer chain.

SelectSameProtocol :: BlockProtocol x ~ BlockProtocol y => AcrossEraSelection x y

Two eras running the same protocol

In this case, we can just call compareChains even across eras. (The ChainSelConfig must also be the same in both eras: we assert this at the value level.)

NOTE: We require that the eras have the same protocol , not merely the same SelectView , because if we have two eras with different protocols that happen to use the same SelectView but a different way to compare chains, it's not clear how to do cross-era selection.

CustomChainSel :: ( SelectView ( BlockProtocol x) -> SelectView ( BlockProtocol y) -> Ordering ) -> AcrossEraSelection x y

Custom chain selection

This is the most general form, and allows to override chain selection for the specific combination of two eras with a custom comparison function.

class SingleEraBlock blk => NoHardForks blk where Source #

Methods

getEraParams :: TopLevelConfig blk -> EraParams Source #

Extract EraParams from the top-level config

The HFC itself does not care about this, as it must be given the full shape across all eras.

toPartialLedgerConfig :: proxy blk -> LedgerConfig blk -> PartialLedgerConfig blk Source #

Construct partial ledger config from full ledger config

See also toPartialConsensusConfig

data HardForkLedgerView_ f xs Source #

Constructors

HardForkLedgerView

Fields

Instances

Instances details
( SListI xs, Show ( Ticked a)) => Show ( Ticked ( HardForkLedgerView_ ( K a :: Type -> Type ) xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Protocol.LedgerView

( SListI xs, Show a) => Show ( HardForkLedgerView_ ( K a :: Type -> Type ) xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Protocol.LedgerView

CanHardFork xs => Show ( HardForkLedgerView_ WrapLedgerView xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Protocol.LedgerView

data Ticked ( HardForkLedgerView_ f xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Protocol.LedgerView

newtype OneEraHash (xs :: [k]) Source #

The hash for an era

This type is special: we don't use an NS here, because the hash by itself should not allow us to differentiate between eras. If it did, the size of the hash would necessarily have to increase, and that leads to trouble. So, the type parameter xs here is merely a phantom one, and we just store the underlying raw hash.

Instances

Instances details
Eq ( OneEraHash xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

Ord ( OneEraHash xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

Show ( OneEraHash xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

NoThunks ( OneEraHash xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

Serialise ( OneEraHash xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

Condense ( OneEraHash xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

newtype OneEraGenTxId xs Source #

Instances

Instances details
CanHardFork xs => Eq ( OneEraGenTxId xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

CanHardFork xs => Ord ( OneEraGenTxId xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

CanHardFork xs => Show ( OneEraGenTxId xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

CanHardFork xs => NoThunks ( OneEraGenTxId xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.AcrossEras

data HardForkLedgerConfig xs Source #

newtype HardForkBlock xs Source #

Instances

Instances details
Typeable xs => ShowProxy ( Header ( HardForkBlock xs) :: Type ) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Block

Typeable xs => ShowProxy ( TxId ( GenTx ( HardForkBlock xs)) :: Type ) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Mempool

Typeable xs => ShowProxy ( GenTx ( HardForkBlock xs) :: Type ) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Mempool

CanHardFork xs => HasNestedContent Header ( HardForkBlock xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Block

SerialiseHFC xs => ReconstructNestedCtxt Header ( HardForkBlock xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Serialisation.SerialiseDisk

All ( Compose Eq Header ) xs => Eq ( Header ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Block

CanHardFork xs => Eq ( LedgerState ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Basics

CanHardFork xs => Eq ( Validated ( GenTx ( HardForkBlock xs))) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Mempool

CanHardFork xs => Eq ( TxId ( GenTx ( HardForkBlock xs))) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Mempool

CanHardFork xs => Eq ( GenTx ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Mempool

All Eq xs => Eq ( HardForkBlock xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Block

CanHardFork xs => Ord ( TxId ( GenTx ( HardForkBlock xs))) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Mempool

CanHardFork xs => Show ( Header ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Block

CanHardFork xs => Show ( LedgerState ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Basics

CanHardFork xs => Show ( Validated ( GenTx ( HardForkBlock xs))) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Mempool

CanHardFork xs => Show ( TxId ( GenTx ( HardForkBlock xs))) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Mempool

CanHardFork xs => Show ( GenTx ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Mempool

CanHardFork xs => Show ( HardForkBlock xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Basics

Generic ( Ticked ( LedgerState ( HardForkBlock xs))) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Ledger

Generic ( Validated ( GenTx ( HardForkBlock xs))) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Mempool

Generic ( TxId ( GenTx ( HardForkBlock xs))) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Mempool

Generic ( GenTx ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Mempool

CanHardFork xs => NoThunks ( Ticked ( LedgerState ( HardForkBlock xs))) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Ledger

CanHardFork xs => NoThunks ( Header ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Block

CanHardFork xs => NoThunks ( StorageConfig ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Basics

CanHardFork xs => NoThunks ( CodecConfig ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Basics

CanHardFork xs => NoThunks ( BlockConfig ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Basics

CanHardFork xs => NoThunks ( LedgerState ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Basics

CanHardFork xs => NoThunks ( Validated ( GenTx ( HardForkBlock xs))) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Mempool

CanHardFork xs => NoThunks ( TxId ( GenTx ( HardForkBlock xs))) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Mempool

CanHardFork xs => NoThunks ( GenTx ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Mempool

All SingleEraBlock xs => ShowQuery ( BlockQuery ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Ledger.Query

CanHardFork xs => HasHeader ( Header ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Block

CanHardFork xs => HasHeader ( HardForkBlock xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Block

CanHardFork xs => StandardHash ( HardForkBlock xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Block

SerialiseHFC xs => HasNetworkProtocolVersion ( HardForkBlock xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Serialisation.Common

All SingleEraBlock xs => SameDepIndex ( BlockQuery ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Ledger.Query

All CondenseConstraints xs => Condense ( Header ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Condense

All CondenseConstraints xs => Condense ( TxId ( GenTx ( HardForkBlock xs))) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Condense

All CondenseConstraints xs => Condense ( GenTx ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Condense

All CondenseConstraints xs => Condense ( HardForkBlock xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Condense

CanHardFork xs => ConvertRawHash ( HardForkBlock xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Block

CanHardFork xs => GetHeader ( HardForkBlock xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Block

CanHardFork xs => GetPrevHash ( HardForkBlock xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Block

CanHardFork xs => IsLedger ( LedgerState ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Ledger

CanHardFork xs => GetTip ( Ticked ( LedgerState ( HardForkBlock xs))) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Ledger

CanHardFork xs => GetTip ( LedgerState ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Ledger

CanHardFork xs => UpdateLedger ( HardForkBlock xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Ledger

CanHardFork xs => LedgerSupportsPeerSelection ( HardForkBlock xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Ledger.PeerSelection

CanHardFork xs => CommonProtocolParams ( HardForkBlock xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Ledger.CommonProtocolParams

CanHardFork xs => BlockSupportsProtocol ( HardForkBlock xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Protocol

CanHardFork xs => BlockSupportsMetrics ( HardForkBlock xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Node.Metrics

All HasTxs xs => HasTxs ( HardForkBlock xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Mempool

CanHardFork xs => HasTxId ( GenTx ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Mempool

CanHardFork xs => LedgerSupportsMempool ( HardForkBlock xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Mempool

CanHardFork xs => ValidateEnvelope ( HardForkBlock xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Ledger

CanHardFork xs => BasicEnvelopeValidation ( HardForkBlock xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Block

CanHardFork xs => HasAnnTip ( HardForkBlock xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Block

Associated Types

type TipInfo ( HardForkBlock xs) Source #

CanHardFork xs => InspectLedger ( HardForkBlock xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Ledger

SerialiseHFC xs => HasBinaryBlockInfo ( HardForkBlock xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Serialisation.SerialiseDisk

CanHardFork xs => LedgerSupportsProtocol ( HardForkBlock xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Ledger

All SingleEraBlock xs => HasHardForkHistory ( HardForkBlock xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Ledger

CanHardFork xs => ConfigSupportsNode ( HardForkBlock xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Node

All SingleEraBlock xs => QueryLedger ( HardForkBlock xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Ledger.Query

CanHardFork xs => NodeInitStorage ( HardForkBlock xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Node.InitStorage

SerialiseHFC xs => SerialiseDiskConstraints ( HardForkBlock xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Serialisation.SerialiseDisk

( CanHardFork xs, SupportedNetworkProtocolVersion ( HardForkBlock xs), SerialiseHFC xs) => RunNode ( HardForkBlock xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Node

SerialiseHFC xs => SerialiseNodeToClientConstraints ( HardForkBlock xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Serialisation.SerialiseNodeToClient

SerialiseHFC xs => SerialiseNodeToNodeConstraints ( HardForkBlock xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Serialisation.SerialiseNodeToNode

SerialiseHFC xs => SerialiseNodeToClient ( HardForkBlock xs) SlotNo Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Serialisation.SerialiseNodeToClient

Typeable xs => ShowProxy ( HardForkBlock xs :: Type ) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Basics

CanHardFork xs => ApplyBlock ( LedgerState ( HardForkBlock xs)) ( HardForkBlock xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Ledger

SerialiseHFC xs => DecodeDiskDep ( NestedCtxt Header ) ( HardForkBlock xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Serialisation.SerialiseDisk

SerialiseHFC xs => DecodeDiskDepIx ( NestedCtxt Header ) ( HardForkBlock xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Serialisation.SerialiseDisk

SerialiseHFC xs => EncodeDiskDep ( NestedCtxt Header ) ( HardForkBlock xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Serialisation.SerialiseDisk

SerialiseHFC xs => EncodeDiskDepIx ( NestedCtxt Header ) ( HardForkBlock xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Serialisation.SerialiseDisk

SerialiseHFC xs => DecodeDisk ( HardForkBlock xs) ( LedgerState ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Serialisation.SerialiseDisk

SerialiseHFC xs => DecodeDisk ( HardForkBlock xs) ( HardForkChainDepState xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Serialisation.SerialiseDisk

SerialiseHFC xs => DecodeDisk ( HardForkBlock xs) ( AnnTip ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Serialisation.SerialiseDisk

SerialiseHFC xs => EncodeDisk ( HardForkBlock xs) ( LedgerState ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Serialisation.SerialiseDisk

SerialiseHFC xs => EncodeDisk ( HardForkBlock xs) ( HardForkChainDepState xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Serialisation.SerialiseDisk

SerialiseHFC xs => EncodeDisk ( HardForkBlock xs) ( AnnTip ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Serialisation.SerialiseDisk

SerialiseHFC xs => EncodeDisk ( HardForkBlock xs) ( HardForkBlock xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Serialisation.SerialiseDisk

SerialiseHFC xs => SerialiseResult ( HardForkBlock xs) ( BlockQuery ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Serialisation.SerialiseNodeToClient

SerialiseHFC xs => SerialiseNodeToClient ( HardForkBlock xs) ( HardForkApplyTxErr xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Serialisation.SerialiseNodeToClient

SerialiseHFC xs => SerialiseNodeToClient ( HardForkBlock xs) ( GenTxId ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Serialisation.SerialiseNodeToClient

SerialiseHFC xs => SerialiseNodeToClient ( HardForkBlock xs) ( GenTx ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Serialisation.SerialiseNodeToClient

SerialiseHFC xs => SerialiseNodeToClient ( HardForkBlock xs) ( Serialised ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Serialisation.SerialiseNodeToClient

SerialiseHFC xs => SerialiseNodeToClient ( HardForkBlock xs) ( HardForkBlock xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Serialisation.SerialiseNodeToClient

SerialiseHFC xs => SerialiseNodeToNode ( HardForkBlock xs) ( GenTxId ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Serialisation.SerialiseNodeToNode

SerialiseHFC xs => SerialiseNodeToNode ( HardForkBlock xs) ( GenTx ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Serialisation.SerialiseNodeToNode

SerialiseHFC xs => SerialiseNodeToNode ( HardForkBlock xs) ( SerialisedHeader ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Serialisation.SerialiseNodeToNode

SerialiseHFC xs => SerialiseNodeToNode ( HardForkBlock xs) ( Serialised ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Serialisation.SerialiseNodeToNode

SerialiseHFC xs => SerialiseNodeToNode ( HardForkBlock xs) ( Header ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Serialisation.SerialiseNodeToNode

SerialiseHFC xs => SerialiseNodeToNode ( HardForkBlock xs) ( HardForkBlock xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Serialisation.SerialiseNodeToNode

SerialiseHFC xs => DecodeDisk ( HardForkBlock xs) ( ByteString -> HardForkBlock xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Serialisation.SerialiseDisk

SerialiseHFC xs => SerialiseNodeToClient ( HardForkBlock xs) ( SomeSecond BlockQuery ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Serialisation.SerialiseNodeToClient

All SingleEraBlock xs => Show ( BlockQuery ( HardForkBlock xs) result) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Ledger.Query

CanHardFork xs => SameDepIndex ( NestedCtxt_ ( HardForkBlock xs) Header ) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Block

Typeable xs => ShowProxy ( BlockQuery ( HardForkBlock xs) :: Type -> Type ) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Ledger.Query

All SingleEraBlock xs => Show ( NestedCtxt_ ( HardForkBlock xs) Header a) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Block

type Rep ( Ticked ( LedgerState ( HardForkBlock xs))) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Ledger

type Rep ( Ticked ( LedgerState ( HardForkBlock xs))) = D1 (' MetaData "Ticked" "Ouroboros.Consensus.HardFork.Combinator.Ledger" "ouroboros-consensus-0.1.0.1-DT4Cvwf63DZKctsEvaJqCU" ' False ) ( C1 (' MetaCons "TickedHardForkLedgerState" ' PrefixI ' True ) ( S1 (' MetaSel (' Just "tickedHardForkLedgerStateTransition") ' NoSourceUnpackedness ' SourceStrict ' DecidedStrict ) ( Rec0 TransitionInfo ) :*: S1 (' MetaSel (' Just "tickedHardForkLedgerStatePerEra") ' NoSourceUnpackedness ' SourceStrict ' DecidedStrict ) ( Rec0 ( HardForkState ( Ticked :.: LedgerState ) xs))))
type Rep ( Validated ( GenTx ( HardForkBlock xs))) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Mempool

type Rep ( Validated ( GenTx ( HardForkBlock xs))) = D1 (' MetaData "Validated" "Ouroboros.Consensus.HardFork.Combinator.Mempool" "ouroboros-consensus-0.1.0.1-DT4Cvwf63DZKctsEvaJqCU" ' True ) ( C1 (' MetaCons "HardForkValidatedGenTx" ' PrefixI ' True ) ( S1 (' MetaSel (' Just "getHardForkValidatedGenTx") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 ( OneEraValidatedGenTx xs))))
type Rep ( TxId ( GenTx ( HardForkBlock xs))) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Mempool

type Rep ( TxId ( GenTx ( HardForkBlock xs))) = D1 (' MetaData "TxId" "Ouroboros.Consensus.HardFork.Combinator.Mempool" "ouroboros-consensus-0.1.0.1-DT4Cvwf63DZKctsEvaJqCU" ' True ) ( C1 (' MetaCons "HardForkGenTxId" ' PrefixI ' True ) ( S1 (' MetaSel (' Just "getHardForkGenTxId") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 ( OneEraGenTxId xs))))
type Rep ( GenTx ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Mempool

type Rep ( GenTx ( HardForkBlock xs)) = D1 (' MetaData "GenTx" "Ouroboros.Consensus.HardFork.Combinator.Mempool" "ouroboros-consensus-0.1.0.1-DT4Cvwf63DZKctsEvaJqCU" ' True ) ( C1 (' MetaCons "HardForkGenTx" ' PrefixI ' True ) ( S1 (' MetaSel (' Just "getHardForkGenTx") ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 ( OneEraGenTx xs))))
type HeaderHash ( HardForkBlock xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Basics

type BlockNodeToNodeVersion ( HardForkBlock xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Serialisation.Common

type BlockNodeToClientVersion ( HardForkBlock xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Serialisation.Common

data Ticked ( LedgerState ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Ledger

data NestedCtxt_ ( HardForkBlock xs) a b Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Block

data NestedCtxt_ ( HardForkBlock xs) a b where
newtype Header ( HardForkBlock xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Block

newtype StorageConfig ( HardForkBlock xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Basics

newtype CodecConfig ( HardForkBlock xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Basics

newtype BlockConfig ( HardForkBlock xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Basics

type BlockProtocol ( HardForkBlock xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Basics

newtype LedgerState ( HardForkBlock xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Basics

type LedgerErr ( LedgerState ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Ledger

type AuxLedgerEvent ( LedgerState ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Ledger

type LedgerCfg ( LedgerState ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Basics

newtype Validated ( GenTx ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Mempool

newtype TxId ( GenTx ( HardForkBlock xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Mempool

type ApplyTxErr ( HardForkBlock xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Mempool

newtype GenTx ( HardForkBlock xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Mempool

type ForgeStateUpdateError ( HardForkBlock xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Forging

type ForgeStateInfo ( HardForkBlock xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Forging

type CannotForge ( HardForkBlock xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Forging

type OtherHeaderEnvelopeError ( HardForkBlock xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Ledger

type TipInfo ( HardForkBlock xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Block

type LedgerWarning ( HardForkBlock xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Ledger

type LedgerUpdate ( HardForkBlock xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Ledger

type HardForkIndices ( HardForkBlock xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Ledger

data BlockQuery ( HardForkBlock xs) a Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Ledger.Query

data BlockQuery ( HardForkBlock xs) a where

data HardForkProtocol (xs :: [ Type ]) Source #

Instances

Instances details
Generic ( ConsensusConfig ( HardForkProtocol xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Basics

CanHardFork xs => NoThunks ( ConsensusConfig ( HardForkProtocol xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Basics

CanHardFork xs => ConsensusProtocol ( HardForkProtocol xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Protocol

type Rep ( ConsensusConfig ( HardForkProtocol xs)) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Basics

type Rep ( ConsensusConfig ( HardForkProtocol xs)) = D1 (' MetaData "ConsensusConfig" "Ouroboros.Consensus.HardFork.Combinator.Basics" "ouroboros-consensus-0.1.0.1-DT4Cvwf63DZKctsEvaJqCU" ' 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 ChainDepState ( HardForkProtocol xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Protocol

type IsLeader ( HardForkProtocol xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Protocol

type CanBeLeader ( HardForkProtocol xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Protocol

type SelectView ( HardForkProtocol xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Protocol

type LedgerView ( HardForkProtocol xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Protocol

type ValidationErr ( HardForkProtocol xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Protocol

type ValidateView ( HardForkProtocol xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Protocol

data ConsensusConfig ( HardForkProtocol xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Basics

data HardForkValidationErr xs Source #

Constructors

HardForkValidationErrFromEra ( OneEraValidationErr xs)

Validation error from one of the eras

HardForkValidationErrWrongEra ( MismatchEraInfo xs)

We tried to apply a block from the wrong era

Instances

Instances details
CanHardFork xs => Eq ( HardForkValidationErr xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Protocol

CanHardFork xs => Show ( HardForkValidationErr xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Protocol

Generic ( HardForkValidationErr xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Protocol

CanHardFork xs => NoThunks ( HardForkValidationErr xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Protocol

type Rep ( HardForkValidationErr xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Protocol

type Rep ( HardForkValidationErr xs) = D1 (' MetaData "HardForkValidationErr" "Ouroboros.Consensus.HardFork.Combinator.Protocol" "ouroboros-consensus-0.1.0.1-DT4Cvwf63DZKctsEvaJqCU" ' False ) ( C1 (' MetaCons "HardForkValidationErrFromEra" ' PrefixI ' False ) ( S1 (' MetaSel (' Nothing :: Maybe Symbol ) ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 ( OneEraValidationErr xs))) :+: C1 (' MetaCons "HardForkValidationErrWrongEra" ' PrefixI ' False ) ( S1 (' MetaSel (' Nothing :: Maybe Symbol ) ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 ( MismatchEraInfo xs))))

type HardForkCanBeLeader xs = SomeErasCanBeLeader xs Source #

We have one or more BlockForging s, and thus CanBeLeader proofs, for each era in which we can forge blocks.

type HardForkIsLeader xs = OneEraIsLeader xs Source #

We are a leader if we have a proof from one of the eras

data HardForkLedgerWarning xs Source #

Constructors

HardForkWarningInEra ( OneEraLedgerWarning xs)

Warning from the underlying era

HardForkWarningTransitionMismatch ( EraIndex xs) EraParams EpochNo

The transition to the next era does not match the EraParams

The EraParams can specify a lower bound on when the transition to the next era will happen. If the actual transition, when confirmed, is before this lower bound, the node is misconfigured and will likely not work correctly. This should be taken care of as soon as possible (before the transition happens).

HardForkWarningTransitionInFinalEra ( EraIndex xs) EpochNo

Transition in the final era

The final era should never confirm any transitions. For clarity, we also record the index of that final era.

HardForkWarningTransitionUnconfirmed ( EraIndex xs)

An already-confirmed transition got un-confirmed

HardForkWarningTransitionReconfirmed ( EraIndex xs) ( EraIndex xs) EpochNo EpochNo

An already-confirmed transition got changed

We record the indices of the era we are transitioning from and to, as well as the old and new EpochNo of that transition, in that order.

data AnnForecast state view blk Source #

Forecast annotated with details about the ledger it was derived from

data HardForkEnvelopeErr xs Source #

Constructors

HardForkEnvelopeErrFromEra ( OneEraEnvelopeErr xs)

Validation error from one of the eras

HardForkEnvelopeErrWrongEra ( MismatchEraInfo xs)

We tried to apply a block from the wrong era

Instances

Instances details
CanHardFork xs => Eq ( HardForkEnvelopeErr xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Ledger

CanHardFork xs => Show ( HardForkEnvelopeErr xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Ledger

Generic ( HardForkEnvelopeErr xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Ledger

CanHardFork xs => NoThunks ( HardForkEnvelopeErr xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Ledger

type Rep ( HardForkEnvelopeErr xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Ledger

type Rep ( HardForkEnvelopeErr xs) = D1 (' MetaData "HardForkEnvelopeErr" "Ouroboros.Consensus.HardFork.Combinator.Ledger" "ouroboros-consensus-0.1.0.1-DT4Cvwf63DZKctsEvaJqCU" ' False ) ( C1 (' MetaCons "HardForkEnvelopeErrFromEra" ' PrefixI ' False ) ( S1 (' MetaSel (' Nothing :: Maybe Symbol ) ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 ( OneEraEnvelopeErr xs))) :+: C1 (' MetaCons "HardForkEnvelopeErrWrongEra" ' PrefixI ' False ) ( S1 (' MetaSel (' Nothing :: Maybe Symbol ) ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 ( MismatchEraInfo xs))))

data HardForkLedgerError xs Source #

Constructors

HardForkLedgerErrorFromEra ( OneEraLedgerError xs)

Validation error from one of the eras

HardForkLedgerErrorWrongEra ( MismatchEraInfo xs)

We tried to apply a block from the wrong era

Instances

Instances details
CanHardFork xs => Eq ( HardForkLedgerError xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Ledger

CanHardFork xs => Show ( HardForkLedgerError xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Ledger

Generic ( HardForkLedgerError xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Ledger

CanHardFork xs => NoThunks ( HardForkLedgerError xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Ledger

type Rep ( HardForkLedgerError xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Ledger

type Rep ( HardForkLedgerError xs) = D1 (' MetaData "HardForkLedgerError" "Ouroboros.Consensus.HardFork.Combinator.Ledger" "ouroboros-consensus-0.1.0.1-DT4Cvwf63DZKctsEvaJqCU" ' False ) ( C1 (' MetaCons "HardForkLedgerErrorFromEra" ' PrefixI ' False ) ( S1 (' MetaSel (' Nothing :: Maybe Symbol ) ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 ( OneEraLedgerError xs))) :+: C1 (' MetaCons "HardForkLedgerErrorWrongEra" ' PrefixI ' False ) ( S1 (' MetaSel (' Nothing :: Maybe Symbol ) ' NoSourceUnpackedness ' NoSourceStrictness ' DecidedLazy ) ( Rec0 ( MismatchEraInfo xs))))

mkHardForkForecast :: forall state view xs. SListI xs => InPairs ( TranslateForecast state view) xs -> HardForkState ( AnnForecast state view) xs -> Forecast ( HardForkLedgerView_ view xs) Source #

Change a telescope of a forecast into a forecast of a telescope

data HardForkApplyTxErr xs Source #

Constructors

HardForkApplyTxErrFromEra !( OneEraApplyTxErr xs)

Validation error from one of the eras

HardForkApplyTxErrWrongEra !( MismatchEraInfo xs)

We tried to apply a block from the wrong era

Instances

Instances details
CanHardFork xs => Eq ( HardForkApplyTxErr xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Mempool

CanHardFork xs => Show ( HardForkApplyTxErr xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Mempool

Generic ( HardForkApplyTxErr xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Mempool

Typeable xs => ShowProxy ( HardForkApplyTxErr xs :: Type ) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Mempool

SerialiseHFC xs => SerialiseNodeToClient ( HardForkBlock xs) ( HardForkApplyTxErr xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Serialisation.SerialiseNodeToClient

type Rep ( HardForkApplyTxErr xs) Source #
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Mempool

type Rep ( HardForkApplyTxErr xs) = D1 (' MetaData "HardForkApplyTxErr" "Ouroboros.Consensus.HardFork.Combinator.Mempool" "ouroboros-consensus-0.1.0.1-DT4Cvwf63DZKctsEvaJqCU" ' False ) ( C1 (' MetaCons "HardForkApplyTxErrFromEra" ' PrefixI ' False ) ( S1 (' MetaSel (' Nothing :: Maybe Symbol ) ' NoSourceUnpackedness ' SourceStrict ' DecidedStrict ) ( Rec0 ( OneEraApplyTxErr xs))) :+: C1 (' MetaCons "HardForkApplyTxErrWrongEra" ' PrefixI ' False ) ( S1 (' MetaSel (' Nothing :: Maybe Symbol ) ' NoSourceUnpackedness ' SourceStrict ' DecidedStrict ) ( Rec0 ( MismatchEraInfo xs))))

getHardForkQuery :: BlockQuery ( HardForkBlock xs) result -> ( forall result'. (result :~: HardForkQueryResult xs result') -> QueryIfCurrent xs result' -> r) -> ( forall x' xs'. (xs :~: (x' ': xs')) -> ProofNonEmpty xs' -> QueryAnytime result -> EraIndex xs -> r) -> ( forall x' xs'. (xs :~: (x' ': xs')) -> ProofNonEmpty xs' -> QueryHardFork xs result -> r) -> r Source #

data HardForkForgeStateInfo xs 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 :: EraIndex (x ': (y ': xs)) -> HardForkForgeStateInfo (x ': (y ': xs))

There is no BlockForging record for the current era.

CurrentEraForgeStateUpdated :: OneEraForgeStateInfo xs -> HardForkForgeStateInfo xs

The ForgeState of the current era was updated.

hardForkBlockForging Source #

Arguments

:: forall m xs. ( CanHardFork xs, Monad m)
=> Text

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

-> NonEmptyOptNP ( BlockForging m) xs
-> BlockForging m ( HardForkBlock xs)