Safe Haskell | None |
---|---|
Language | Haskell2010 |
Ouroboros.Consensus.HardFork.Combinator.Mempool
Contents
Synopsis
- data family GenTx blk
- data HardForkApplyTxErr (xs ∷ [Type])
- data family TxId blk
- data family Validated x
- hardForkApplyTxErrFromEither ∷ ∀ (xs ∷ [Type]). Either (MismatchEraInfo xs) (OneEraApplyTxErr xs) → HardForkApplyTxErr xs
- hardForkApplyTxErrToEither ∷ ∀ (xs ∷ [Type]). HardForkApplyTxErr xs → Either (MismatchEraInfo xs) (OneEraApplyTxErr xs)
Documentation
data family GenTx blk 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
data HardForkApplyTxErr (xs ∷ [Type]) 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
Typeable xs ⇒ ShowProxy (HardForkApplyTxErr xs ∷ Type) Source # | |||||
Generic (HardForkApplyTxErr xs) Source # | |||||
Defined in Ouroboros.Consensus.HardFork.Combinator.Mempool Associated Types
Methods from ∷ HardForkApplyTxErr xs → Rep (HardForkApplyTxErr xs) x # to ∷ Rep (HardForkApplyTxErr xs) x → HardForkApplyTxErr xs # | |||||
CanHardFork xs ⇒ Show (HardForkApplyTxErr xs) Source # | |||||
Defined in Ouroboros.Consensus.HardFork.Combinator.Mempool Methods showsPrec ∷ Int → HardForkApplyTxErr xs → ShowS # show ∷ HardForkApplyTxErr xs → String # showList ∷ [HardForkApplyTxErr xs] → ShowS # | |||||
CanHardFork xs ⇒ Eq (HardForkApplyTxErr xs) Source # | |||||
Defined in Ouroboros.Consensus.HardFork.Combinator.Mempool Methods (==) ∷ HardForkApplyTxErr xs → HardForkApplyTxErr xs → Bool # (/=) ∷ HardForkApplyTxErr xs → HardForkApplyTxErr xs → Bool # | |||||
SerialiseHFC xs ⇒ SerialiseNodeToClient (HardForkBlock xs) (HardForkApplyTxErr xs) Source # | |||||
Defined in Ouroboros.Consensus.HardFork.Combinator.Serialisation.SerialiseNodeToClient Methods encodeNodeToClient ∷ CodecConfig (HardForkBlock xs) → BlockNodeToClientVersion (HardForkBlock xs) → HardForkApplyTxErr xs → Encoding Source # decodeNodeToClient ∷ CodecConfig (HardForkBlock xs) → BlockNodeToClientVersion (HardForkBlock xs) → ∀ s. Decoder s (HardForkApplyTxErr xs) Source # | |||||
type Rep (HardForkApplyTxErr xs) Source # | |||||
Defined in Ouroboros.Consensus.HardFork.Combinator.Mempool type Rep (HardForkApplyTxErr xs) = D1 ('MetaData "HardForkApplyTxErr" "Ouroboros.Consensus.HardFork.Combinator.Mempool" "ouroboros-consensus-0.26.0.0-inplace" '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)))) |
A generalized transaction, GenTx
, identifier.
Instances
Typeable xs ⇒ ShowProxy (TxId (GenTx (HardForkBlock xs)) ∷ Type) Source # | |||||
(Typeable m, Typeable a) ⇒ ShowProxy (TxId (GenTx (DualBlock m a)) ∷ Type) Source # | |||||
Generic (TxId (GenTx (HardForkBlock xs))) Source # | |||||
Defined in Ouroboros.Consensus.HardFork.Combinator.Mempool Associated Types
Methods from ∷ TxId (GenTx (HardForkBlock xs)) → Rep (TxId (GenTx (HardForkBlock xs))) x # to ∷ Rep (TxId (GenTx (HardForkBlock xs))) x → TxId (GenTx (HardForkBlock xs)) # | |||||
CanHardFork xs ⇒ Show (TxId (GenTx (HardForkBlock xs))) Source # | |||||
Show (GenTxId m) ⇒ Show (TxId (GenTx (DualBlock m a))) Source # | |||||
CanHardFork xs ⇒ Eq (TxId (GenTx (HardForkBlock xs))) Source # | |||||
Defined in Ouroboros.Consensus.HardFork.Combinator.Mempool Methods (==) ∷ TxId (GenTx (HardForkBlock xs)) → TxId (GenTx (HardForkBlock xs)) → Bool # (/=) ∷ TxId (GenTx (HardForkBlock xs)) → TxId (GenTx (HardForkBlock xs)) → Bool # | |||||
Eq (GenTxId m) ⇒ Eq (TxId (GenTx (DualBlock m a))) Source # | |||||
CanHardFork xs ⇒ Ord (TxId (GenTx (HardForkBlock xs))) Source # | |||||
Defined in Ouroboros.Consensus.HardFork.Combinator.Mempool Methods compare ∷ TxId (GenTx (HardForkBlock xs)) → TxId (GenTx (HardForkBlock xs)) → Ordering # (<) ∷ TxId (GenTx (HardForkBlock xs)) → TxId (GenTx (HardForkBlock xs)) → Bool # (<=) ∷ TxId (GenTx (HardForkBlock xs)) → TxId (GenTx (HardForkBlock xs)) → Bool # (>) ∷ TxId (GenTx (HardForkBlock xs)) → TxId (GenTx (HardForkBlock xs)) → Bool # (>=) ∷ TxId (GenTx (HardForkBlock xs)) → TxId (GenTx (HardForkBlock xs)) → Bool # max ∷ TxId (GenTx (HardForkBlock xs)) → TxId (GenTx (HardForkBlock xs)) → TxId (GenTx (HardForkBlock xs)) # min ∷ TxId (GenTx (HardForkBlock xs)) → TxId (GenTx (HardForkBlock xs)) → TxId (GenTx (HardForkBlock xs)) # | |||||
Ord (GenTxId m) ⇒ Ord (TxId (GenTx (DualBlock m a))) Source # | |||||
Defined in Ouroboros.Consensus.Ledger.Dual Methods compare ∷ TxId (GenTx (DualBlock m a)) → TxId (GenTx (DualBlock m a)) → Ordering # (<) ∷ TxId (GenTx (DualBlock m a)) → TxId (GenTx (DualBlock m a)) → Bool # (<=) ∷ TxId (GenTx (DualBlock m a)) → TxId (GenTx (DualBlock m a)) → Bool # (>) ∷ TxId (GenTx (DualBlock m a)) → TxId (GenTx (DualBlock m a)) → Bool # (>=) ∷ TxId (GenTx (DualBlock m a)) → TxId (GenTx (DualBlock m a)) → Bool # max ∷ TxId (GenTx (DualBlock m a)) → TxId (GenTx (DualBlock m a)) → TxId (GenTx (DualBlock m a)) # min ∷ TxId (GenTx (DualBlock m a)) → TxId (GenTx (DualBlock m a)) → TxId (GenTx (DualBlock m a)) # | |||||
CanHardFork xs ⇒ NoThunks (TxId (GenTx (HardForkBlock xs))) Source # | |||||
NoThunks (TxId (GenTx (DualBlock m a))) Source # | |||||
All CondenseConstraints xs ⇒ Condense (TxId (GenTx (HardForkBlock xs))) Source # | |||||
SerialiseHFC xs ⇒ SerialiseNodeToClient (HardForkBlock xs) (GenTxId (HardForkBlock xs)) Source # | |||||
Defined in Ouroboros.Consensus.HardFork.Combinator.Serialisation.SerialiseNodeToClient Methods encodeNodeToClient ∷ CodecConfig (HardForkBlock xs) → BlockNodeToClientVersion (HardForkBlock xs) → GenTxId (HardForkBlock xs) → Encoding Source # decodeNodeToClient ∷ CodecConfig (HardForkBlock xs) → BlockNodeToClientVersion (HardForkBlock xs) → ∀ s. Decoder s (GenTxId (HardForkBlock xs)) Source # | |||||
SerialiseHFC xs ⇒ SerialiseNodeToNode (HardForkBlock xs) (GenTxId (HardForkBlock xs)) Source # | |||||
Defined in Ouroboros.Consensus.HardFork.Combinator.Serialisation.SerialiseNodeToNode Methods encodeNodeToNode ∷ CodecConfig (HardForkBlock xs) → BlockNodeToNodeVersion (HardForkBlock xs) → GenTxId (HardForkBlock xs) → Encoding Source # decodeNodeToNode ∷ CodecConfig (HardForkBlock xs) → BlockNodeToNodeVersion (HardForkBlock xs) → ∀ s. Decoder s (GenTxId (HardForkBlock xs)) Source # | |||||
type Rep (TxId (GenTx (HardForkBlock xs))) Source # | |||||
Defined in Ouroboros.Consensus.HardFork.Combinator.Mempool type Rep (TxId (GenTx (HardForkBlock xs))) = D1 ('MetaData "TxId" "Ouroboros.Consensus.HardFork.Combinator.Mempool" "ouroboros-consensus-0.26.0.0-inplace" 'True) (C1 ('MetaCons "HardForkGenTxId" 'PrefixI 'True) (S1 ('MetaSel ('Just "getHardForkGenTxId") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (OneEraGenTxId xs)))) | |||||
newtype TxId (GenTx (HardForkBlock xs)) Source # | |||||
newtype TxId (GenTx (DualBlock m a)) Source # | |||||
Defined in Ouroboros.Consensus.Ledger.Dual |
data family Validated x 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
Generic (Validated (GenTx (HardForkBlock xs))) Source # | |||||
Defined in Ouroboros.Consensus.HardFork.Combinator.Mempool Associated Types
Methods from ∷ Validated (GenTx (HardForkBlock xs)) → Rep (Validated (GenTx (HardForkBlock xs))) x # to ∷ Rep (Validated (GenTx (HardForkBlock xs))) x → Validated (GenTx (HardForkBlock xs)) # | |||||
CanHardFork xs ⇒ Show (Validated (GenTx (HardForkBlock xs))) Source # | |||||
Bridge m a ⇒ Show (Validated (GenTx (DualBlock m a))) Source # | |||||
CanHardFork xs ⇒ Eq (Validated (GenTx (HardForkBlock xs))) Source # | |||||
Defined in Ouroboros.Consensus.HardFork.Combinator.Mempool Methods (==) ∷ Validated (GenTx (HardForkBlock xs)) → Validated (GenTx (HardForkBlock xs)) → Bool # (/=) ∷ Validated (GenTx (HardForkBlock xs)) → Validated (GenTx (HardForkBlock xs)) → Bool # | |||||
CanHardFork xs ⇒ NoThunks (Validated (GenTx (HardForkBlock xs))) Source # | |||||
NoThunks (Validated (GenTx (DualBlock m a))) Source # | |||||
type Rep (Validated (GenTx (HardForkBlock xs))) Source # | |||||
Defined in Ouroboros.Consensus.HardFork.Combinator.Mempool type Rep (Validated (GenTx (HardForkBlock xs))) = D1 ('MetaData "Validated" "Ouroboros.Consensus.HardFork.Combinator.Mempool" "ouroboros-consensus-0.26.0.0-inplace" 'True) (C1 ('MetaCons "HardForkValidatedGenTx" 'PrefixI 'True) (S1 ('MetaSel ('Just "getHardForkValidatedGenTx") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (OneEraValidatedGenTx xs)))) | |||||
newtype Validated (GenTx (HardForkBlock xs)) Source # | |||||
data Validated (GenTx (DualBlock m a)) Source # | |||||
Defined in Ouroboros.Consensus.Ledger.Dual data Validated (GenTx (DualBlock m a)) = ValidatedDualGenTx {
|
hardForkApplyTxErrFromEither ∷ ∀ (xs ∷ [Type]). Either (MismatchEraInfo xs) (OneEraApplyTxErr xs) → HardForkApplyTxErr xs Source #
hardForkApplyTxErrToEither ∷ ∀ (xs ∷ [Type]). HardForkApplyTxErr xs → Either (MismatchEraInfo xs) (OneEraApplyTxErr xs) Source #
Orphan instances
Typeable xs ⇒ ShowProxy (GenTx (HardForkBlock xs) ∷ Type) Source # | |||||
Typeable xs ⇒ ShowProxy (TxId (GenTx (HardForkBlock xs)) ∷ Type) Source # | |||||
Generic (Validated (GenTx (HardForkBlock xs))) Source # | |||||
Associated Types
Methods from ∷ Validated (GenTx (HardForkBlock xs)) → Rep (Validated (GenTx (HardForkBlock xs))) x # to ∷ Rep (Validated (GenTx (HardForkBlock xs))) x → Validated (GenTx (HardForkBlock xs)) # | |||||
Generic (GenTx (HardForkBlock xs)) Source # | |||||
Associated Types
Methods from ∷ GenTx (HardForkBlock xs) → Rep (GenTx (HardForkBlock xs)) x # to ∷ Rep (GenTx (HardForkBlock xs)) x → GenTx (HardForkBlock xs) # | |||||
Generic (TxId (GenTx (HardForkBlock xs))) Source # | |||||
Associated Types
Methods from ∷ TxId (GenTx (HardForkBlock xs)) → Rep (TxId (GenTx (HardForkBlock xs))) x # to ∷ Rep (TxId (GenTx (HardForkBlock xs))) x → TxId (GenTx (HardForkBlock xs)) # | |||||
CanHardFork xs ⇒ Show (Validated (GenTx (HardForkBlock xs))) Source # | |||||
CanHardFork xs ⇒ Show (GenTx (HardForkBlock xs)) Source # | |||||
CanHardFork xs ⇒ Show (TxId (GenTx (HardForkBlock xs))) Source # | |||||
CanHardFork xs ⇒ Eq (Validated (GenTx (HardForkBlock xs))) Source # | |||||
Methods (==) ∷ Validated (GenTx (HardForkBlock xs)) → Validated (GenTx (HardForkBlock xs)) → Bool # (/=) ∷ Validated (GenTx (HardForkBlock xs)) → Validated (GenTx (HardForkBlock xs)) → Bool # | |||||
CanHardFork xs ⇒ Eq (GenTx (HardForkBlock xs)) Source # | |||||
Methods (==) ∷ GenTx (HardForkBlock xs) → GenTx (HardForkBlock xs) → Bool # (/=) ∷ GenTx (HardForkBlock xs) → GenTx (HardForkBlock xs) → Bool # | |||||
CanHardFork xs ⇒ Eq (TxId (GenTx (HardForkBlock xs))) Source # | |||||
Methods (==) ∷ TxId (GenTx (HardForkBlock xs)) → TxId (GenTx (HardForkBlock xs)) → Bool # (/=) ∷ TxId (GenTx (HardForkBlock xs)) → TxId (GenTx (HardForkBlock xs)) → Bool # | |||||
CanHardFork xs ⇒ Ord (TxId (GenTx (HardForkBlock xs))) Source # | |||||
Methods compare ∷ TxId (GenTx (HardForkBlock xs)) → TxId (GenTx (HardForkBlock xs)) → Ordering # (<) ∷ TxId (GenTx (HardForkBlock xs)) → TxId (GenTx (HardForkBlock xs)) → Bool # (<=) ∷ TxId (GenTx (HardForkBlock xs)) → TxId (GenTx (HardForkBlock xs)) → Bool # (>) ∷ TxId (GenTx (HardForkBlock xs)) → TxId (GenTx (HardForkBlock xs)) → Bool # (>=) ∷ TxId (GenTx (HardForkBlock xs)) → TxId (GenTx (HardForkBlock xs)) → Bool # max ∷ TxId (GenTx (HardForkBlock xs)) → TxId (GenTx (HardForkBlock xs)) → TxId (GenTx (HardForkBlock xs)) # min ∷ TxId (GenTx (HardForkBlock xs)) → TxId (GenTx (HardForkBlock xs)) → TxId (GenTx (HardForkBlock xs)) # | |||||
CanHardFork xs ⇒ NoThunks (Validated (GenTx (HardForkBlock xs))) Source # | |||||
CanHardFork xs ⇒ NoThunks (GenTx (HardForkBlock xs)) Source # | |||||
CanHardFork xs ⇒ NoThunks (TxId (GenTx (HardForkBlock xs))) Source # | |||||
CanHardFork xs ⇒ HasTxId (GenTx (HardForkBlock xs)) Source # | |||||
Methods txId ∷ GenTx (HardForkBlock xs) → TxId (GenTx (HardForkBlock xs)) Source # | |||||
All HasTxs xs ⇒ HasTxs (HardForkBlock xs) Source # | |||||
Methods extractTxs ∷ HardForkBlock xs → [GenTx (HardForkBlock xs)] Source # | |||||
(CanHardFork xs, HasCanonicalTxIn xs, HasHardForkTxOut xs) ⇒ LedgerSupportsMempool (HardForkBlock xs) Source # | |||||
Methods txInvariant ∷ GenTx (HardForkBlock xs) → Bool Source # applyTx ∷ LedgerConfig (HardForkBlock xs) → WhetherToIntervene → SlotNo → GenTx (HardForkBlock xs) → TickedLedgerState (HardForkBlock xs) ValuesMK → Except (ApplyTxErr (HardForkBlock xs)) (TickedLedgerState (HardForkBlock xs) DiffMK, Validated (GenTx (HardForkBlock xs))) Source # reapplyTx ∷ ComputeDiffs → LedgerConfig (HardForkBlock xs) → SlotNo → Validated (GenTx (HardForkBlock xs)) → TickedLedgerState (HardForkBlock xs) ValuesMK → Except (ApplyTxErr (HardForkBlock xs)) (TickedLedgerState (HardForkBlock xs) TrackingMK) Source # reapplyTxs ∷ ComputeDiffs → LedgerConfig (HardForkBlock xs) → SlotNo → [(Validated (GenTx (HardForkBlock xs)), extra)] → TickedLedgerState (HardForkBlock xs) ValuesMK → ReapplyTxsResult extra (HardForkBlock xs) Source # txForgetValidated ∷ Validated (GenTx (HardForkBlock xs)) → GenTx (HardForkBlock xs) Source # getTransactionKeySets ∷ GenTx (HardForkBlock xs) → LedgerTables (LedgerState (HardForkBlock xs)) KeysMK Source # prependMempoolDiffs ∷ TickedLedgerState (HardForkBlock xs) DiffMK → TickedLedgerState (HardForkBlock xs) DiffMK → TickedLedgerState (HardForkBlock xs) DiffMK Source # applyMempoolDiffs ∷ LedgerTables (LedgerState (HardForkBlock xs)) ValuesMK → LedgerTables (LedgerState (HardForkBlock xs)) KeysMK → TickedLedgerState (HardForkBlock xs) DiffMK → TickedLedgerState (HardForkBlock xs) ValuesMK Source # | |||||
CanHardFork xs ⇒ TxLimits (HardForkBlock xs) Source # | |||||
Associated Types
Methods txMeasure ∷ LedgerConfig (HardForkBlock xs) → TickedLedgerState (HardForkBlock xs) ValuesMK → GenTx (HardForkBlock xs) → Except (ApplyTxErr (HardForkBlock xs)) (TxMeasure (HardForkBlock xs)) Source # blockCapacityTxMeasure ∷ ∀ (mk ∷ MapKind). LedgerConfig (HardForkBlock xs) → TickedLedgerState (HardForkBlock xs) mk → TxMeasure (HardForkBlock xs) Source # |