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

Ouroboros.Consensus.Ledger.Dual

Synopsis

Documentation

Pair types

data DualBlock m a Source #

Dual block

The dual block is used to instantiate the consensus with a dual ledger, consisting of two ledger states associated with two types of blocks. The (consensus) chain state will still be updated based on one block type only, which is therefore designed as the main block, while the other block is designated as the auxiliary block.

The auxiliary block is optional; this can be used if some " main " blocks should have no effect on the auxiliary ledger state at all. The motivating example is EBBs: if the main blocks are real Byron blocks, and the auxiliary blocks are Byron spec blocks, then regular Byron blocks correspond to Byron spec blocks, but EBBs don't correspond to a spec block at all and should leave the Byron spec ledger state unchanged.

NOTE: The dual ledger is used for testing purposes only; we do not do any meaningful NoThunks checks here.

Instances

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

Defined in Ouroboros.Consensus.Ledger.Dual

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

Defined in Ouroboros.Consensus.Ledger.Dual

( 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

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

Defined in Ouroboros.Consensus.Ledger.Dual

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

Defined in Ouroboros.Consensus.Ledger.Dual

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

Defined in Ouroboros.Consensus.Ledger.Dual

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

Defined in Ouroboros.Consensus.Ledger.Dual

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

Defined in Ouroboros.Consensus.Ledger.Dual

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

Defined in Ouroboros.Consensus.Ledger.Dual

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

Defined in Ouroboros.Consensus.Ledger.Dual

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

Defined in Ouroboros.Consensus.Ledger.Dual

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

Defined in Ouroboros.Consensus.Ledger.Dual

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

Defined in Ouroboros.Consensus.Ledger.Dual

NoThunks ( Header ( 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

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

Defined in Ouroboros.Consensus.Ledger.Dual

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

Defined in Ouroboros.Consensus.Ledger.Dual

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

Defined in Ouroboros.Consensus.Ledger.Dual

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

Defined in Ouroboros.Consensus.Ledger.Dual

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

Defined in Ouroboros.Consensus.Ledger.Dual

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

Defined in Ouroboros.Consensus.Ledger.Dual

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

Defined in Ouroboros.Consensus.Ledger.Dual

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

Defined in Ouroboros.Consensus.Ledger.Dual

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

Defined in Ouroboros.Consensus.Ledger.Dual

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

Defined in Ouroboros.Consensus.Ledger.Dual

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

Defined in Ouroboros.Consensus.Ledger.Dual

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

Defined in Ouroboros.Consensus.Ledger.Dual

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

Defined in Ouroboros.Consensus.Ledger.Dual

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

Defined in Ouroboros.Consensus.Ledger.Dual

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

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

Defined in Ouroboros.Consensus.Ledger.Dual

Show ( BlockQuery ( DualBlock m a) result) 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

( Show m, Show a, Show ( BridgeBlock m a)) => Show ( DualBlock 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

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

Defined in Ouroboros.Consensus.Ledger.Dual

StandardHash m => StandardHash ( DualBlock m a) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

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

Defined in Ouroboros.Consensus.Ledger.Dual

Condense m => Condense ( DualBlock m a) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

ConvertRawHash m => ConvertRawHash ( DualBlock m a) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

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

Defined in Ouroboros.Consensus.Ledger.Dual

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

Defined in Ouroboros.Consensus.Ledger.Dual

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

Defined in Ouroboros.Consensus.Ledger.Dual

LedgerSupportsPeerSelection m => LedgerSupportsPeerSelection ( DualBlock m a) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

Bridge m a => CommonProtocolParams ( DualBlock m a) Source #

Forward to the main ledger

Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

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

Defined in Ouroboros.Consensus.Ledger.Dual

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

Defined in Ouroboros.Consensus.Ledger.Dual

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

Defined in Ouroboros.Consensus.Ledger.Dual

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

Defined in Ouroboros.Consensus.Ledger.Dual

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

Defined in Ouroboros.Consensus.Ledger.Dual

Associated Types

type TipInfo ( DualBlock m a) Source #

InspectLedger m => InspectLedger ( DualBlock m a) Source #

InspectLedger just refers to the main block

InspectLedger is intended to check the ledger state against the node's configuration, and hence takes a full TopLevelConfig . However, we cannot construct that for the auxiliary block, since we have no protocol config for it. We therefore just use the main block.

Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

HasBinaryBlockInfo m => HasBinaryBlockInfo ( DualBlock m a) Source #

The binary info just refers to the main block

This is sufficient, because we never need just the header of the auxiliary.

Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

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

Defined in Ouroboros.Consensus.Ledger.Dual

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

Defined in Ouroboros.Consensus.Ledger.Dual

Associated Types

type HardForkIndices ( DualBlock m a) :: [ Type ] Source #

ConfigSupportsNode m => ConfigSupportsNode ( DualBlock m a) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

Bridge m a => QueryLedger ( DualBlock m a) Source #

Not used in the tests: no constructors

Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

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

Defined in Ouroboros.Consensus.Ledger.Dual

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

Defined in Ouroboros.Consensus.Ledger.Dual

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))))
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))))
data Ticked ( LedgerState ( DualBlock m a)) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

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

Defined in Ouroboros.Consensus.Ledger.Dual

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

Defined in Ouroboros.Consensus.Ledger.Dual

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

Defined in Ouroboros.Consensus.Ledger.Dual

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

Defined in Ouroboros.Consensus.Ledger.Dual

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

Defined in Ouroboros.Consensus.Ledger.Dual

type HeaderHash ( DualBlock m a) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

newtype NestedCtxt_ ( DualBlock m a) f x Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

newtype NestedCtxt_ ( DualBlock m a) f x where
newtype Header ( DualBlock m a) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

data StorageConfig ( DualBlock m a) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

data CodecConfig ( DualBlock m a) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

data BlockConfig ( DualBlock m a) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

type BlockProtocol ( DualBlock m a) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

data LedgerState ( DualBlock m a) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

type ApplyTxErr ( DualBlock m a) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

data GenTx ( DualBlock m a) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

type ForgeStateUpdateError ( DualBlock m a) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

type ForgeStateInfo ( DualBlock m a) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

type CannotForge ( DualBlock m a) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

type OtherHeaderEnvelopeError ( DualBlock m a) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

type TipInfo ( DualBlock m a) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

type LedgerWarning ( DualBlock m a) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

type LedgerUpdate ( DualBlock m a) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

type HardForkIndices ( DualBlock m a) Source #
Instance details

Defined in Ouroboros.Consensus.Ledger.Dual

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

Defined in Ouroboros.Consensus.Ledger.Dual

data BlockQuery ( DualBlock m a) result

data DualLedgerError m a Source #

Both ledger rules threw an error

We do not verify that the errors agree, merely that they both report some error.

If only one of the two semantics reports an error, we fail with an error (see agreeOnError ), rather than a regular chain failure; if this happens, it indicates a bug, and the node should fail (rather than just, for example, reject a block).

Lifted functions

Type class family instances

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 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 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

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 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 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 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 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 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 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

Serialisation