ouroboros-consensus-shelley-0.1.0.0: Shelley ledger integration in the Ouroboros consensus layer
Safe HaskellNone
LanguageHaskell2010

Ouroboros.Consensus.Shelley.Ledger.Mempool

Description

Shelley mempool integration

Synopsis

Documentation

data ApplyTxError era Source #

Constructors

ApplyTxError [PredicateFailure (LEDGERS era)] 

Instances

Instances details
Eq (PredicateFailure (LEDGERS era)) => Eq (ApplyTxError era) 
Instance details

Defined in Shelley.Spec.Ledger.API.Mempool

Methods

(==) :: ApplyTxError era -> ApplyTxError era -> Bool #

(/=) :: ApplyTxError era -> ApplyTxError era -> Bool #

Show (PredicateFailure (LEDGERS era)) => Show (ApplyTxError era) 
Instance details

Defined in Shelley.Spec.Ledger.API.Mempool

(ShelleyBased era, ToCBOR (PredicateFailure (LEDGERS era))) => ToCBOR (ApplyTxError era) 
Instance details

Defined in Shelley.Spec.Ledger.API.Mempool

Methods

toCBOR :: ApplyTxError era -> Encoding Source #

encodedSizeExpr :: (forall t. ToCBOR t => Proxy t -> Size) -> Proxy (ApplyTxError era) -> Size Source #

encodedListSizeExpr :: (forall t. ToCBOR t => Proxy t -> Size) -> Proxy [ApplyTxError era] -> Size Source #

(ShelleyBased era, FromCBOR (PredicateFailure (LEDGERS era))) => FromCBOR (ApplyTxError era) 
Instance details

Defined in Shelley.Spec.Ledger.API.Mempool

ShelleyBasedEra era => SerialiseNodeToClient (ShelleyBlock era) (ApplyTxError era) Source #
ApplyTxErr '(ShelleyBlock era)'
Instance details

Defined in Ouroboros.Consensus.Shelley.Node.Serialisation

Typeable era => ShowProxy (ApplyTxError era :: Type) Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Ledger.Mempool

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

Instances details
Typeable era => ShowProxy (GenTx (ShelleyBlock era) :: Type) Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Ledger.Mempool

Typeable era => ShowProxy (TxId (GenTx (ShelleyBlock era)) :: Type) Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Ledger.Mempool

ShelleyBasedEra era => Eq (GenTx (ShelleyBlock era)) Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Ledger.Mempool

Methods

(==) :: GenTx (ShelleyBlock era) -> GenTx (ShelleyBlock era) -> Bool #

(/=) :: GenTx (ShelleyBlock era) -> GenTx (ShelleyBlock era) -> Bool #

Eq (TxId (GenTx (ShelleyBlock era))) Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Ledger.Mempool

Methods

(==) :: TxId (GenTx (ShelleyBlock era)) -> TxId (GenTx (ShelleyBlock era)) -> Bool #

(/=) :: TxId (GenTx (ShelleyBlock era)) -> TxId (GenTx (ShelleyBlock era)) -> Bool #

Ord (TxId (GenTx (ShelleyBlock era))) Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Ledger.Mempool

ShelleyBasedEra era => Show (GenTx (ShelleyBlock era)) Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Ledger.Mempool

Show (GenTxId (ShelleyBlock era)) Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Ledger.Mempool

Generic (GenTx (ShelleyBlock era)) Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Ledger.Mempool

Associated Types

type Rep (GenTx (ShelleyBlock era)) :: Type -> Type #

Methods

from :: GenTx (ShelleyBlock era) -> Rep (GenTx (ShelleyBlock era)) x #

to :: Rep (GenTx (ShelleyBlock era)) x -> GenTx (ShelleyBlock era) #

ShelleyBasedEra era => ToCBOR (GenTx (ShelleyBlock era)) Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Ledger.Mempool

Methods

toCBOR :: GenTx (ShelleyBlock era) -> Encoding Source #

encodedSizeExpr :: (forall t. ToCBOR t => Proxy t -> Size) -> Proxy (GenTx (ShelleyBlock era)) -> Size Source #

encodedListSizeExpr :: (forall t. ToCBOR t => Proxy t -> Size) -> Proxy [GenTx (ShelleyBlock era)] -> Size Source #

Era era => ToCBOR (TxId (GenTx (ShelleyBlock era))) Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Ledger.Mempool

Methods

toCBOR :: TxId (GenTx (ShelleyBlock era)) -> Encoding Source #

encodedSizeExpr :: (forall t. ToCBOR t => Proxy t -> Size) -> Proxy (TxId (GenTx (ShelleyBlock era))) -> Size Source #

encodedListSizeExpr :: (forall t. ToCBOR t => Proxy t -> Size) -> Proxy [TxId (GenTx (ShelleyBlock era))] -> Size Source #

ShelleyBasedEra era => FromCBOR (GenTx (ShelleyBlock era)) Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Ledger.Mempool

Era era => FromCBOR (TxId (GenTx (ShelleyBlock era))) Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Ledger.Mempool

ShelleyBasedEra era => NoThunks (GenTx (ShelleyBlock era)) Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Ledger.Mempool

NoThunks (TxId (GenTx (ShelleyBlock era))) Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Ledger.Mempool

ShelleyBasedEra era => HasTxId (GenTx (ShelleyBlock era)) Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Ledger.Mempool

Methods

txId :: GenTx (ShelleyBlock era) -> TxId (GenTx (ShelleyBlock era)) Source #

ShelleyBasedEra era => Condense (GenTx (ShelleyBlock era)) Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Ledger.Mempool

Condense (GenTxId (ShelleyBlock era)) Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Ledger.Mempool

ShelleyBasedEra era => SerialiseNodeToNode (ShelleyBlock era) (GenTxId (ShelleyBlock era)) Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Node.Serialisation

ShelleyBasedEra era => SerialiseNodeToNode (ShelleyBlock era) (GenTx (ShelleyBlock era)) Source #

The To/FromCBOR instances defined in cardano-ledger-specs use CBOR-in-CBOR to get the annotation.

Instance details

Defined in Ouroboros.Consensus.Shelley.Node.Serialisation

ShelleyBasedEra era => SerialiseNodeToClient (ShelleyBlock era) (GenTx (ShelleyBlock era)) Source #

Uses CBOR-in-CBOR in the To/FromCBOR instances to get the annotation.

Instance details

Defined in Ouroboros.Consensus.Shelley.Node.Serialisation

type Rep (GenTx (ShelleyBlock era)) Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Ledger.Mempool

type Rep (GenTx (ShelleyBlock era))
data GenTx (ShelleyBlock era) Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Ledger.Mempool

data GenTx (ShelleyBlock era) = ShelleyTx !(ShelleyTxId era) !(Tx era)
newtype TxId (GenTx (ShelleyBlock era)) Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Ledger.Mempool

newtype TxId (GenTx (ShelleyBlock era)) = ShelleyTxId (ShelleyTxId era)

data family TxId tx Source #

A generalized transaction, GenTx, identifier.

Instances

Instances details
Typeable era => ShowProxy (TxId (GenTx (ShelleyBlock era)) :: Type) Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Ledger.Mempool

Eq (TxId (GenTx (ShelleyBlock era))) Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Ledger.Mempool

Methods

(==) :: TxId (GenTx (ShelleyBlock era)) -> TxId (GenTx (ShelleyBlock era)) -> Bool #

(/=) :: TxId (GenTx (ShelleyBlock era)) -> TxId (GenTx (ShelleyBlock era)) -> Bool #

Ord (TxId (GenTx (ShelleyBlock era))) Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Ledger.Mempool

Show (GenTxId (ShelleyBlock era)) Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Ledger.Mempool

Era era => ToCBOR (TxId (GenTx (ShelleyBlock era))) Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Ledger.Mempool

Methods

toCBOR :: TxId (GenTx (ShelleyBlock era)) -> Encoding Source #

encodedSizeExpr :: (forall t. ToCBOR t => Proxy t -> Size) -> Proxy (TxId (GenTx (ShelleyBlock era))) -> Size Source #

encodedListSizeExpr :: (forall t. ToCBOR t => Proxy t -> Size) -> Proxy [TxId (GenTx (ShelleyBlock era))] -> Size Source #

Era era => FromCBOR (TxId (GenTx (ShelleyBlock era))) Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Ledger.Mempool

NoThunks (TxId (GenTx (ShelleyBlock era))) Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Ledger.Mempool

Condense (GenTxId (ShelleyBlock era)) Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Ledger.Mempool

ShelleyBasedEra era => SerialiseNodeToNode (ShelleyBlock era) (GenTxId (ShelleyBlock era)) Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Node.Serialisation

newtype TxId (GenTx (ShelleyBlock era)) Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Ledger.Mempool

newtype TxId (GenTx (ShelleyBlock era)) = ShelleyTxId (ShelleyTxId era)

fixedBlockBodyOverhead :: Num a => a Source #

txInBlockSize is used to estimate how many transactions we can grab from the Mempool to put into the block we are going to forge without exceeding the maximum block body size according to the ledger. If we exceed that limit, we will have forged a block that is invalid according to the ledger. We ourselves won't even adopt it, causing us to lose our slot, something we must try to avoid.

For this reason it is better to overestimate the size of a transaction than to underestimate. The only downside is that we maybe could have put one (or more?) transactions extra in that block.

As the sum of the serialised transaction sizes is not equal to the size of the serialised block body (TxSeq) consisting of those transactions (see cardano-node#1545 for an example), we account for some extra overhead per transaction as a safety margin.

Also see perTxOverhead.

Orphan instances

Typeable era => ShowProxy (GenTx (ShelleyBlock era) :: Type) Source # 
Instance details

Typeable era => ShowProxy (TxId (GenTx (ShelleyBlock era)) :: Type) Source # 
Instance details

ShelleyBasedEra era => Eq (GenTx (ShelleyBlock era)) Source # 
Instance details

Methods

(==) :: GenTx (ShelleyBlock era) -> GenTx (ShelleyBlock era) -> Bool #

(/=) :: GenTx (ShelleyBlock era) -> GenTx (ShelleyBlock era) -> Bool #

Eq (TxId (GenTx (ShelleyBlock era))) Source # 
Instance details

Methods

(==) :: TxId (GenTx (ShelleyBlock era)) -> TxId (GenTx (ShelleyBlock era)) -> Bool #

(/=) :: TxId (GenTx (ShelleyBlock era)) -> TxId (GenTx (ShelleyBlock era)) -> Bool #

Ord (TxId (GenTx (ShelleyBlock era))) Source # 
Instance details

ShelleyBasedEra era => Show (GenTx (ShelleyBlock era)) Source # 
Instance details

Show (GenTxId (ShelleyBlock era)) Source # 
Instance details

Generic (GenTx (ShelleyBlock era)) Source # 
Instance details

Associated Types

type Rep (GenTx (ShelleyBlock era)) :: Type -> Type #

Methods

from :: GenTx (ShelleyBlock era) -> Rep (GenTx (ShelleyBlock era)) x #

to :: Rep (GenTx (ShelleyBlock era)) x -> GenTx (ShelleyBlock era) #

ShelleyBasedEra era => ToCBOR (GenTx (ShelleyBlock era)) Source # 
Instance details

Methods

toCBOR :: GenTx (ShelleyBlock era) -> Encoding Source #

encodedSizeExpr :: (forall t. ToCBOR t => Proxy t -> Size) -> Proxy (GenTx (ShelleyBlock era)) -> Size Source #

encodedListSizeExpr :: (forall t. ToCBOR t => Proxy t -> Size) -> Proxy [GenTx (ShelleyBlock era)] -> Size Source #

Era era => ToCBOR (TxId (GenTx (ShelleyBlock era))) Source # 
Instance details

Methods

toCBOR :: TxId (GenTx (ShelleyBlock era)) -> Encoding Source #

encodedSizeExpr :: (forall t. ToCBOR t => Proxy t -> Size) -> Proxy (TxId (GenTx (ShelleyBlock era))) -> Size Source #

encodedListSizeExpr :: (forall t. ToCBOR t => Proxy t -> Size) -> Proxy [TxId (GenTx (ShelleyBlock era))] -> Size Source #

ShelleyBasedEra era => FromCBOR (GenTx (ShelleyBlock era)) Source # 
Instance details

Era era => FromCBOR (TxId (GenTx (ShelleyBlock era))) Source # 
Instance details

ShelleyBasedEra era => NoThunks (GenTx (ShelleyBlock era)) Source # 
Instance details

NoThunks (TxId (GenTx (ShelleyBlock era))) Source # 
Instance details

ShelleyBasedEra era => LedgerSupportsMempool (ShelleyBlock era) Source # 
Instance details

ShelleyBasedEra era => HasTxId (GenTx (ShelleyBlock era)) Source # 
Instance details

Methods

txId :: GenTx (ShelleyBlock era) -> TxId (GenTx (ShelleyBlock era)) Source #

ShelleyBasedEra era => HasTxs (ShelleyBlock era) Source # 
Instance details

ShelleyBasedEra era => Condense (GenTx (ShelleyBlock era)) Source # 
Instance details

Condense (GenTxId (ShelleyBlock era)) Source # 
Instance details

Typeable era => ShowProxy (ApplyTxError era :: Type) Source # 
Instance details