ouroboros-consensus-cardano-0.12.1.0: The instantation of the Ouroboros consensus layer used by Cardano
Safe HaskellSafe-Inferred
LanguageHaskell2010

Ouroboros.Consensus.Byron.Ledger.Block

Synopsis

Hash

newtype ByronHash Source #

Constructors

ByronHash 

Fields

Instances

Instances details
Generic ByronHash Source # 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Block

Associated Types

type Rep ByronHash :: Type -> Type Source #

Show ByronHash Source # 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Block

DecCBOR ByronHash Source # 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Block

Methods

decCBOR :: Decoder s ByronHash

dropCBOR :: Proxy ByronHash -> Decoder s ()

label :: Proxy ByronHash -> Text

EncCBOR ByronHash Source # 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Block

Methods

encCBOR :: ByronHash -> Encoding

encodedSizeExpr :: (forall t. EncCBOR t => Proxy t -> Size) -> Proxy ByronHash -> Size

encodedListSizeExpr :: (forall t. EncCBOR t => Proxy t -> Size) -> Proxy [ByronHash] -> Size

Eq ByronHash Source # 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Block

Ord ByronHash Source # 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Block

NoThunks ByronHash Source # 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Block

Methods

noThunks :: Context -> ByronHash -> IO (Maybe ThunkInfo)

wNoThunks :: Context -> ByronHash -> IO (Maybe ThunkInfo)

showTypeOf :: Proxy ByronHash -> String

Condense ByronHash Source # 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Block

Serialise ByronHash 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Serialisation

Methods

encode :: ByronHash -> Encoding

decode :: Decoder s ByronHash

encodeList :: [ByronHash] -> Encoding

decodeList :: Decoder s [ByronHash]

type Rep ByronHash Source # 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Block

type Rep ByronHash = D1 ('MetaData "ByronHash" "Ouroboros.Consensus.Byron.Ledger.Block" "ouroboros-consensus-cardano-0.12.1.0-B7PPTiiOqdjFK3zhRUwDA9" 'True) (C1 ('MetaCons "ByronHash" 'PrefixI 'True) (S1 ('MetaSel ('Just "unByronHash") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 HeaderHash)))

mkByronHash :: ABlockOrBoundaryHdr ByteString -> ByronHash Source #

Block

data ByronBlock Source #

Byron block

We cache two bits of information:

  • We cache the slot number as this is not readily available for EBBs. Having it cached allows us to e.g. give a HasHeader instance.
  • We cache the hash as this is expensive to compute and we need it often.

Constructors

ByronBlock 

Fields

Instances

Instances details
Show ByronBlock Source # 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Block

Eq ByronBlock Source # 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Block

ConvertRawHash ByronBlock Source # 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Block

Methods

toRawHash :: proxy ByronBlock -> HeaderHash ByronBlock -> ByteString

fromRawHash :: proxy ByronBlock -> ByteString -> HeaderHash ByronBlock

toShortRawHash :: proxy ByronBlock -> HeaderHash ByronBlock -> ShortByteString

fromShortRawHash :: proxy ByronBlock -> ShortByteString -> HeaderHash ByronBlock

hashSize :: proxy ByronBlock -> Word32

GetHeader ByronBlock Source # 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Block

GetPrevHash ByronBlock Source # 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Block

BlockSupportsMetrics ByronBlock 
Instance details

Defined in Ouroboros.Consensus.Byron.Node

Methods

isSelfIssued :: BlockConfig ByronBlock -> Header ByronBlock -> WhetherSelfIssued

BlockSupportsProtocol ByronBlock 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.PBFT

Methods

validateView :: BlockConfig ByronBlock -> Header ByronBlock -> ValidateView (BlockProtocol ByronBlock)

selectView :: BlockConfig ByronBlock -> Header ByronBlock -> SelectView (BlockProtocol ByronBlock)

ConfigSupportsNode ByronBlock 
Instance details

Defined in Ouroboros.Consensus.Byron.Node

Methods

getSystemStart :: BlockConfig ByronBlock -> SystemStart

getNetworkMagic :: BlockConfig ByronBlock -> NetworkMagic

HasHardForkHistory ByronBlock 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Ledger

Associated Types

type HardForkIndices ByronBlock :: [Type]

Methods

hardForkSummary :: LedgerConfig ByronBlock -> LedgerState ByronBlock -> Summary (HardForkIndices ByronBlock)

NoHardForks ByronBlock 
Instance details

Defined in Ouroboros.Consensus.Cardano.ByronHFC

Methods

getEraParams :: TopLevelConfig ByronBlock -> EraParams

toPartialLedgerConfig :: proxy ByronBlock -> LedgerConfig ByronBlock -> PartialLedgerConfig ByronBlock

SingleEraBlock ByronBlock 
Instance details

Defined in Ouroboros.Consensus.Cardano.CanHardFork

Methods

singleEraTransition :: PartialLedgerConfig ByronBlock -> EraParams -> Bound -> LedgerState ByronBlock -> Maybe EpochNo

singleEraInfo :: proxy ByronBlock -> SingleEraInfo ByronBlock

CondenseConstraints ByronBlock 
Instance details

Defined in Ouroboros.Consensus.Cardano.Condense

HasPartialLedgerConfig ByronBlock 
Instance details

Defined in Ouroboros.Consensus.Cardano.CanHardFork

Associated Types

type PartialLedgerConfig ByronBlock

Methods

completeLedgerConfig :: proxy ByronBlock -> EpochInfo (Except PastHorizonException) -> PartialLedgerConfig ByronBlock -> LedgerConfig ByronBlock

SerialiseConstraintsHFC ByronBlock 
Instance details

Defined in Ouroboros.Consensus.Cardano.Node

BasicEnvelopeValidation ByronBlock 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.HeaderValidation

Methods

expectedFirstBlockNo :: proxy ByronBlock -> BlockNo

expectedNextBlockNo :: proxy ByronBlock -> TipInfo ByronBlock -> TipInfo ByronBlock -> BlockNo -> BlockNo

minimumPossibleSlotNo :: Proxy ByronBlock -> SlotNo

minimumNextSlotNo :: proxy ByronBlock -> TipInfo ByronBlock -> TipInfo ByronBlock -> SlotNo -> SlotNo

HasAnnTip ByronBlock 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.HeaderValidation

Associated Types

type TipInfo ByronBlock

Methods

getTipInfo :: Header ByronBlock -> TipInfo ByronBlock

tipInfoHash :: proxy ByronBlock -> TipInfo ByronBlock -> HeaderHash ByronBlock

ValidateEnvelope ByronBlock 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.HeaderValidation

Associated Types

type OtherHeaderEnvelopeError ByronBlock

Methods

additionalEnvelopeChecks :: TopLevelConfig ByronBlock -> LedgerView (BlockProtocol ByronBlock) -> Header ByronBlock -> Except (OtherHeaderEnvelopeError ByronBlock) ()

UpdateLedger ByronBlock 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Ledger

CommonProtocolParams ByronBlock 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Ledger

InspectLedger ByronBlock 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Inspect

Associated Types

type LedgerWarning ByronBlock

type LedgerUpdate ByronBlock

Methods

inspectLedger :: TopLevelConfig ByronBlock -> LedgerState ByronBlock -> LedgerState ByronBlock -> [LedgerEvent ByronBlock]

QueryLedger ByronBlock 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Ledger

Methods

answerBlockQuery :: ExtLedgerCfg ByronBlock -> BlockQuery ByronBlock result -> ExtLedgerState ByronBlock -> result

HasTxs ByronBlock 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Mempool

LedgerSupportsMempool ByronBlock 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Mempool

Methods

txInvariant :: GenTx ByronBlock -> Bool

applyTx :: LedgerConfig ByronBlock -> WhetherToIntervene -> SlotNo -> GenTx ByronBlock -> TickedLedgerState ByronBlock -> Except (ApplyTxErr ByronBlock) (TickedLedgerState ByronBlock, Validated (GenTx ByronBlock))

reapplyTx :: LedgerConfig ByronBlock -> SlotNo -> Validated (GenTx ByronBlock) -> TickedLedgerState ByronBlock -> Except (ApplyTxErr ByronBlock) (TickedLedgerState ByronBlock)

txsMaxBytes :: TickedLedgerState ByronBlock -> Word32

txInBlockSize :: GenTx ByronBlock -> Word32

txForgetValidated :: Validated (GenTx ByronBlock) -> GenTx ByronBlock

LedgerSupportsPeerSelection ByronBlock 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Ledger

Methods

getPeers :: LedgerState ByronBlock -> [(PoolStake, NonEmpty StakePoolRelay)]

LedgerSupportsProtocol ByronBlock 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Ledger

Methods

protocolLedgerView :: LedgerConfig ByronBlock -> Ticked (LedgerState ByronBlock) -> LedgerView (BlockProtocol ByronBlock)

ledgerViewForecastAt :: LedgerConfig ByronBlock -> LedgerState ByronBlock -> Forecast (LedgerView (BlockProtocol ByronBlock))

TxLimits ByronBlock 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Mempool

Associated Types

type TxMeasure ByronBlock

NodeInitStorage ByronBlock 
Instance details

Defined in Ouroboros.Consensus.Byron.Node

HasNetworkProtocolVersion ByronBlock 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.NetworkProtocolVersion

Associated Types

type BlockNodeToNodeVersion ByronBlock

type BlockNodeToClientVersion ByronBlock

SupportedNetworkProtocolVersion ByronBlock 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.NetworkProtocolVersion

Methods

supportedNodeToNodeVersions :: Proxy ByronBlock -> Map NodeToNodeVersion (BlockNodeToNodeVersion ByronBlock)

supportedNodeToClientVersions :: Proxy ByronBlock -> Map NodeToClientVersion (BlockNodeToClientVersion ByronBlock)

latestReleasedNodeVersion :: Proxy ByronBlock -> (Maybe NodeToNodeVersion, Maybe NodeToClientVersion)

SupportedNetworkProtocolVersion ByronBlockHFC

Forward to the ByronBlock instance. Only supports HardForkNodeToNodeDisabled, which is compatible with nodes running with ByronBlock.

Instance details

Defined in Ouroboros.Consensus.Cardano.ByronHFC

Methods

supportedNodeToNodeVersions :: Proxy ByronBlockHFC -> Map NodeToNodeVersion (BlockNodeToNodeVersion ByronBlockHFC)

supportedNodeToClientVersions :: Proxy ByronBlockHFC -> Map NodeToClientVersion (BlockNodeToClientVersion ByronBlockHFC)

latestReleasedNodeVersion :: Proxy ByronBlockHFC -> (Maybe NodeToNodeVersion, Maybe NodeToClientVersion)

RunNode ByronBlock 
Instance details

Defined in Ouroboros.Consensus.Byron.Node

SerialiseNodeToClientConstraints ByronBlock 
Instance details

Defined in Ouroboros.Consensus.Byron.Node.Serialisation

SerialiseNodeToNodeConstraints ByronBlock 
Instance details

Defined in Ouroboros.Consensus.Byron.Node.Serialisation

Methods

estimateBlockSize :: Header ByronBlock -> SizeInBytes

SerialiseDiskConstraints ByronBlock 
Instance details

Defined in Ouroboros.Consensus.Byron.Node.Serialisation

HasBinaryBlockInfo ByronBlock 
Instance details

Defined in Ouroboros.Consensus.Byron.Node.Serialisation

Methods

getBinaryBlockInfo :: ByronBlock -> BinaryBlockInfo

Condense ByronBlock Source # 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Block

HasHeader ByronBlock Source # 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Block

Methods

getHeaderFields :: ByronBlock -> HeaderFields ByronBlock

HasNestedContent Header ByronBlock 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Serialisation

Methods

unnest :: Header ByronBlock -> DepPair (NestedCtxt Header ByronBlock)

nest :: DepPair (NestedCtxt Header ByronBlock) -> Header ByronBlock

SerialiseNodeToClient ByronBlock ApplyMempoolPayloadErr
ApplyTxErr ByronBlock
Instance details

Defined in Ouroboros.Consensus.Byron.Node.Serialisation

Methods

encodeNodeToClient :: CodecConfig ByronBlock -> BlockNodeToClientVersion ByronBlock -> ApplyMempoolPayloadErr -> Encoding

decodeNodeToClient :: CodecConfig ByronBlock -> BlockNodeToClientVersion ByronBlock -> forall s. Decoder s ApplyMempoolPayloadErr

SerialiseNodeToClient ByronBlock SlotNo 
Instance details

Defined in Ouroboros.Consensus.Byron.Node.Serialisation

Methods

encodeNodeToClient :: CodecConfig ByronBlock -> BlockNodeToClientVersion ByronBlock -> SlotNo -> Encoding

decodeNodeToClient :: CodecConfig ByronBlock -> BlockNodeToClientVersion ByronBlock -> forall s. Decoder s SlotNo

SerialiseNodeToClient ByronBlock ByronBlock

CBOR-in-CBOR for the annotation. This also makes it compatible with the wrapped (Serialised) variant.

Instance details

Defined in Ouroboros.Consensus.Byron.Node.Serialisation

Methods

encodeNodeToClient :: CodecConfig ByronBlock -> BlockNodeToClientVersion ByronBlock -> ByronBlock -> Encoding

decodeNodeToClient :: CodecConfig ByronBlock -> BlockNodeToClientVersion ByronBlock -> forall s. Decoder s ByronBlock

SerialiseNodeToNode ByronBlock ByronBlock

CBOR-in-CBOR for the annotation. This also makes it compatible with the wrapped (Serialised) variant.

Instance details

Defined in Ouroboros.Consensus.Byron.Node.Serialisation

Methods

encodeNodeToNode :: CodecConfig ByronBlock -> BlockNodeToNodeVersion ByronBlock -> ByronBlock -> Encoding

decodeNodeToNode :: CodecConfig ByronBlock -> BlockNodeToNodeVersion ByronBlock -> forall s. Decoder s ByronBlock

EncodeDisk ByronBlock ByronBlock 
Instance details

Defined in Ouroboros.Consensus.Byron.Node.Serialisation

Methods

encodeDisk :: CodecConfig ByronBlock -> ByronBlock -> Encoding

ReconstructNestedCtxt Header ByronBlock 
Instance details

Defined in Ouroboros.Consensus.Byron.Node.Serialisation

Methods

reconstructPrefixLen :: proxy (Header ByronBlock) -> PrefixLen

reconstructNestedCtxt :: proxy (Header ByronBlock) -> ShortByteString -> SizeInBytes -> SomeSecond (NestedCtxt Header) ByronBlock

StandardHash ByronBlock Source # 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Block

ShowProxy ByronBlock Source # 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Block

SerialiseNodeToClient ByronBlock (GenTx ByronBlock)

No CBOR-in-CBOR, because we check for canonical encodings, which means we can use the recomputed encoding for the annotation.

Instance details

Defined in Ouroboros.Consensus.Byron.Node.Serialisation

Methods

encodeNodeToClient :: CodecConfig ByronBlock -> BlockNodeToClientVersion ByronBlock -> GenTx ByronBlock -> Encoding

decodeNodeToClient :: CodecConfig ByronBlock -> BlockNodeToClientVersion ByronBlock -> forall s. Decoder s (GenTx ByronBlock)

SerialiseNodeToClient ByronBlock (GenTxId ByronBlock) 
Instance details

Defined in Ouroboros.Consensus.Byron.Node.Serialisation

Methods

encodeNodeToClient :: CodecConfig ByronBlock -> BlockNodeToClientVersion ByronBlock -> GenTxId ByronBlock -> Encoding

decodeNodeToClient :: CodecConfig ByronBlock -> BlockNodeToClientVersion ByronBlock -> forall s. Decoder s (GenTxId ByronBlock)

SerialiseNodeToNode ByronBlock (Header ByronBlock) 
Instance details

Defined in Ouroboros.Consensus.Byron.Node.Serialisation

Methods

encodeNodeToNode :: CodecConfig ByronBlock -> BlockNodeToNodeVersion ByronBlock -> Header ByronBlock -> Encoding

decodeNodeToNode :: CodecConfig ByronBlock -> BlockNodeToNodeVersion ByronBlock -> forall s. Decoder s (Header ByronBlock)

SerialiseNodeToNode ByronBlock (GenTx ByronBlock)

No CBOR-in-CBOR, because we check for canonical encodings, which means we can use the recomputed encoding for the annotation.

Instance details

Defined in Ouroboros.Consensus.Byron.Node.Serialisation

Methods

encodeNodeToNode :: CodecConfig ByronBlock -> BlockNodeToNodeVersion ByronBlock -> GenTx ByronBlock -> Encoding

decodeNodeToNode :: CodecConfig ByronBlock -> BlockNodeToNodeVersion ByronBlock -> forall s. Decoder s (GenTx ByronBlock)

SerialiseNodeToNode ByronBlock (GenTxId ByronBlock) 
Instance details

Defined in Ouroboros.Consensus.Byron.Node.Serialisation

Methods

encodeNodeToNode :: CodecConfig ByronBlock -> BlockNodeToNodeVersion ByronBlock -> GenTxId ByronBlock -> Encoding

decodeNodeToNode :: CodecConfig ByronBlock -> BlockNodeToNodeVersion ByronBlock -> forall s. Decoder s (GenTxId ByronBlock)

SerialiseNodeToNode ByronBlock (SerialisedHeader ByronBlock) 
Instance details

Defined in Ouroboros.Consensus.Byron.Node.Serialisation

Methods

encodeNodeToNode :: CodecConfig ByronBlock -> BlockNodeToNodeVersion ByronBlock -> SerialisedHeader ByronBlock -> Encoding

decodeNodeToNode :: CodecConfig ByronBlock -> BlockNodeToNodeVersion ByronBlock -> forall s. Decoder s (SerialisedHeader ByronBlock)

SerialiseResult ByronBlock (BlockQuery ByronBlock) 
Instance details

Defined in Ouroboros.Consensus.Byron.Node.Serialisation

Methods

encodeResult :: CodecConfig ByronBlock -> BlockNodeToClientVersion ByronBlock -> BlockQuery ByronBlock result -> result -> Encoding

decodeResult :: CodecConfig ByronBlock -> BlockNodeToClientVersion ByronBlock -> BlockQuery ByronBlock result -> forall s. Decoder s result

DecodeDisk ByronBlock (AnnTip ByronBlock) 
Instance details

Defined in Ouroboros.Consensus.Byron.Node.Serialisation

Methods

decodeDisk :: CodecConfig ByronBlock -> forall s. Decoder s (AnnTip ByronBlock)

DecodeDisk ByronBlock (LedgerState ByronBlock) 
Instance details

Defined in Ouroboros.Consensus.Byron.Node.Serialisation

Methods

decodeDisk :: CodecConfig ByronBlock -> forall s. Decoder s (LedgerState ByronBlock)

DecodeDisk ByronBlock (PBftState PBftByronCrypto)
ChainDepState (BlockProtocol ByronBlock)
Instance details

Defined in Ouroboros.Consensus.Byron.Node.Serialisation

Methods

decodeDisk :: CodecConfig ByronBlock -> forall s. Decoder s (PBftState PBftByronCrypto)

EncodeDisk ByronBlock (AnnTip ByronBlock) 
Instance details

Defined in Ouroboros.Consensus.Byron.Node.Serialisation

Methods

encodeDisk :: CodecConfig ByronBlock -> AnnTip ByronBlock -> Encoding

EncodeDisk ByronBlock (LedgerState ByronBlock) 
Instance details

Defined in Ouroboros.Consensus.Byron.Node.Serialisation

EncodeDisk ByronBlock (PBftState PBftByronCrypto)
ChainDepState (BlockProtocol ByronBlock)
Instance details

Defined in Ouroboros.Consensus.Byron.Node.Serialisation

Methods

encodeDisk :: CodecConfig ByronBlock -> PBftState PBftByronCrypto -> Encoding

ShowProxy (Header ByronBlock) Source # 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Block

ShowProxy (GenTx ByronBlock) 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Mempool

ShowProxy (TxId (GenTx ByronBlock)) 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Mempool

SerialiseNodeToClient ByronBlock (SomeSecond BlockQuery ByronBlock) 
Instance details

Defined in Ouroboros.Consensus.Byron.Node.Serialisation

Methods

encodeNodeToClient :: CodecConfig ByronBlock -> BlockNodeToClientVersion ByronBlock -> SomeSecond BlockQuery ByronBlock -> Encoding

decodeNodeToClient :: CodecConfig ByronBlock -> BlockNodeToClientVersion ByronBlock -> forall s. Decoder s (SomeSecond BlockQuery ByronBlock)

SerialiseNodeToClient ByronBlock (Serialised ByronBlock)

Serialised uses CBOR-in-CBOR by default.

Instance details

Defined in Ouroboros.Consensus.Byron.Node.Serialisation

Methods

encodeNodeToClient :: CodecConfig ByronBlock -> BlockNodeToClientVersion ByronBlock -> Serialised ByronBlock -> Encoding

decodeNodeToClient :: CodecConfig ByronBlock -> BlockNodeToClientVersion ByronBlock -> forall s. Decoder s (Serialised ByronBlock)

SerialiseNodeToNode ByronBlock (Serialised ByronBlock)

Serialised uses CBOR-in-CBOR by default.

Instance details

Defined in Ouroboros.Consensus.Byron.Node.Serialisation

Methods

encodeNodeToNode :: CodecConfig ByronBlock -> BlockNodeToNodeVersion ByronBlock -> Serialised ByronBlock -> Encoding

decodeNodeToNode :: CodecConfig ByronBlock -> BlockNodeToNodeVersion ByronBlock -> forall s. Decoder s (Serialised ByronBlock)

DecodeDisk ByronBlock (ByteString -> ByronBlock) 
Instance details

Defined in Ouroboros.Consensus.Byron.Node.Serialisation

Methods

decodeDisk :: CodecConfig ByronBlock -> forall s. Decoder s (ByteString -> ByronBlock)

Generic (BlockConfig ByronBlock) Source # 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Config

Associated Types

type Rep (BlockConfig ByronBlock) :: Type -> Type Source #

Generic (CodecConfig ByronBlock) Source # 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Config

Associated Types

type Rep (CodecConfig ByronBlock) :: Type -> Type Source #

Generic (Header ByronBlock) Source # 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Block

Associated Types

type Rep (Header ByronBlock) :: Type -> Type Source #

Generic (StorageConfig ByronBlock) Source # 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Config

Associated Types

type Rep (StorageConfig ByronBlock) :: Type -> Type Source #

Generic (Validated (GenTx ByronBlock)) Source # 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Mempool

Associated Types

type Rep (Validated (GenTx ByronBlock)) :: Type -> Type Source #

Generic (LedgerState ByronBlock) Source # 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Ledger

Associated Types

type Rep (LedgerState ByronBlock) :: Type -> Type Source #

Generic (GenTx ByronBlock) Source # 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Mempool

Associated Types

type Rep (GenTx ByronBlock) :: Type -> Type Source #

Generic (Ticked (LedgerState ByronBlock)) Source # 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Ledger

Associated Types

type Rep (Ticked (LedgerState ByronBlock)) :: Type -> Type Source #

Show (Header ByronBlock) Source # 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Block

Show (Validated (GenTx ByronBlock)) Source # 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Mempool

Show (LedgerState ByronBlock) Source # 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Ledger

Show (GenTx ByronBlock) Source # 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Mempool

Show (GenTxId ByronBlock) Source # 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Mempool

Methods

showsPrec :: Int -> GenTxId ByronBlock -> ShowS Source #

show :: GenTxId ByronBlock -> String Source #

showList :: [GenTxId ByronBlock] -> ShowS Source #

Eq (Header ByronBlock) Source # 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Block

Eq (Validated (GenTx ByronBlock)) Source # 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Mempool

Eq (LedgerState ByronBlock) Source # 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Ledger

Eq (GenTx ByronBlock) Source # 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Mempool

Eq (TxId (GenTx ByronBlock)) Source # 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Mempool

Ord (TxId (GenTx ByronBlock)) Source # 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Mempool

NoThunks (BlockConfig ByronBlock) 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Config

Methods

noThunks :: Context -> BlockConfig ByronBlock -> IO (Maybe ThunkInfo)

wNoThunks :: Context -> BlockConfig ByronBlock -> IO (Maybe ThunkInfo)

showTypeOf :: Proxy (BlockConfig ByronBlock) -> String

NoThunks (CodecConfig ByronBlock) 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Config

Methods

noThunks :: Context -> CodecConfig ByronBlock -> IO (Maybe ThunkInfo)

wNoThunks :: Context -> CodecConfig ByronBlock -> IO (Maybe ThunkInfo)

showTypeOf :: Proxy (CodecConfig ByronBlock) -> String

NoThunks (Header ByronBlock) Source # 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Block

Methods

noThunks :: Context -> Header ByronBlock -> IO (Maybe ThunkInfo)

wNoThunks :: Context -> Header ByronBlock -> IO (Maybe ThunkInfo)

showTypeOf :: Proxy (Header ByronBlock) -> String

NoThunks (StorageConfig ByronBlock) 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Config

Methods

noThunks :: Context -> StorageConfig ByronBlock -> IO (Maybe ThunkInfo)

wNoThunks :: Context -> StorageConfig ByronBlock -> IO (Maybe ThunkInfo)

showTypeOf :: Proxy (StorageConfig ByronBlock) -> String

NoThunks (Validated (GenTx ByronBlock)) 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Mempool

Methods

noThunks :: Context -> Validated (GenTx ByronBlock) -> IO (Maybe ThunkInfo)

wNoThunks :: Context -> Validated (GenTx ByronBlock) -> IO (Maybe ThunkInfo)

showTypeOf :: Proxy (Validated (GenTx ByronBlock)) -> String

NoThunks (LedgerState ByronBlock) 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Ledger

Methods

noThunks :: Context -> LedgerState ByronBlock -> IO (Maybe ThunkInfo)

wNoThunks :: Context -> LedgerState ByronBlock -> IO (Maybe ThunkInfo)

showTypeOf :: Proxy (LedgerState ByronBlock) -> String

NoThunks (GenTx ByronBlock) 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Mempool

Methods

noThunks :: Context -> GenTx ByronBlock -> IO (Maybe ThunkInfo)

wNoThunks :: Context -> GenTx ByronBlock -> IO (Maybe ThunkInfo)

showTypeOf :: Proxy (GenTx ByronBlock) -> String

NoThunks (TxId (GenTx ByronBlock)) 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Mempool

Methods

noThunks :: Context -> TxId (GenTx ByronBlock) -> IO (Maybe ThunkInfo)

wNoThunks :: Context -> TxId (GenTx ByronBlock) -> IO (Maybe ThunkInfo)

showTypeOf :: Proxy (TxId (GenTx ByronBlock)) -> String

NoThunks (Ticked (LedgerState ByronBlock)) 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Ledger

Methods

noThunks :: Context -> Ticked (LedgerState ByronBlock) -> IO (Maybe ThunkInfo)

wNoThunks :: Context -> Ticked (LedgerState ByronBlock) -> IO (Maybe ThunkInfo)

showTypeOf :: Proxy (Ticked (LedgerState ByronBlock)) -> String

CardanoHardForkConstraints c => CanHardFork (CardanoEras c) 
Instance details

Defined in Ouroboros.Consensus.Cardano.CanHardFork

Methods

hardForkEraTranslation :: EraTranslation (CardanoEras c)

hardForkChainSel :: Tails AcrossEraSelection (CardanoEras c)

hardForkInjectTxs :: InPairs (RequiringBoth WrapLedgerConfig (Product2 InjectTx InjectValidatedTx)) (CardanoEras c)

CardanoHardForkConstraints c => CondenseConstraints (CardanoBlock c) 
Instance details

Defined in Ouroboros.Consensus.Cardano.Condense

CardanoHardForkConstraints c => SerialiseHFC (CardanoEras c)

Important: we need to maintain binary compatibility with Byron blocks, as they are already stored on disk.

We also want to be able to efficiently detect (without having to peek far ahead) whether we're dealing with a Byron or Shelley block, so that we can invoke the right decoder. We plan to have a few more hard forks after Shelley (Goguen, Basho, Voltaire), so we want a future-proof envelope for distinguishing the different block types, i.e., a byte indicating the era.

Byron does not provide such an envelope. However, a Byron block is a CBOR 2-tuple with the first element being a tag (Word: 0 = EBB; 1 = regular block) and the second being the payload. We can easily extend this encoding format with support for Shelley, Goguen, etc.

We encode a CardanoBlock as the same CBOR 2-tuple as a Byron block, but we use the tags after 1 for the hard forks after Byron:

  1. Byron EBB
  2. Byron regular block
  3. Shelley block
  4. Allegra block
  5. Mary block
  6. Goguen block
  7. etc.

For more details, see: https://github.com/input-output-hk/ouroboros-network/pull/1175#issuecomment-558147194

Instance details

Defined in Ouroboros.Consensus.Cardano.Node

Methods

encodeDiskHfcBlock :: CodecConfig (HardForkBlock (CardanoEras c)) -> HardForkBlock (CardanoEras c) -> Encoding

decodeDiskHfcBlock :: CodecConfig (HardForkBlock (CardanoEras c)) -> forall s. Decoder s (ByteString -> HardForkBlock (CardanoEras c))

reconstructHfcPrefixLen :: proxy (Header (HardForkBlock (CardanoEras c))) -> PrefixLen

reconstructHfcNestedCtxt :: proxy (Header (HardForkBlock (CardanoEras c))) -> ShortByteString -> SizeInBytes -> SomeSecond (NestedCtxt Header) (HardForkBlock (CardanoEras c))

getHfcBinaryBlockInfo :: HardForkBlock (CardanoEras c) -> BinaryBlockInfo

estimateHfcBlockSize :: Header (HardForkBlock (CardanoEras c)) -> SizeInBytes

GetTip (LedgerState ByronBlock) 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Ledger

GetTip (Ticked (LedgerState ByronBlock)) 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Ledger

IsLedger (LedgerState ByronBlock) 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Ledger

Associated Types

type LedgerErr (LedgerState ByronBlock)

type AuxLedgerEvent (LedgerState ByronBlock)

HasTxId (GenTx ByronBlock) 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Mempool

CardanoHardForkConstraints c => SupportedNetworkProtocolVersion (CardanoBlock c) 
Instance details

Defined in Ouroboros.Consensus.Cardano.Node

Methods

supportedNodeToNodeVersions :: Proxy (CardanoBlock c) -> Map NodeToNodeVersion (BlockNodeToNodeVersion (CardanoBlock c))

supportedNodeToClientVersions :: Proxy (CardanoBlock c) -> Map NodeToClientVersion (BlockNodeToClientVersion (CardanoBlock c))

latestReleasedNodeVersion :: Proxy (CardanoBlock c) -> (Maybe NodeToNodeVersion, Maybe NodeToClientVersion)

Condense (Header ByronBlock) Source # 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Block

Condense (GenTx ByronBlock) 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Mempool

Condense (GenTxId ByronBlock) 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Mempool

Methods

condense :: GenTxId ByronBlock -> String

SameDepIndex (BlockQuery ByronBlock) 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Ledger

HasHeader (Header ByronBlock) Source # 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Block

Methods

getHeaderFields :: Header ByronBlock -> HeaderFields (Header ByronBlock)

ShowQuery (BlockQuery ByronBlock) 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Ledger

Methods

showResult :: BlockQuery ByronBlock result -> result -> String

ApplyBlock (LedgerState ByronBlock) ByronBlock 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Ledger

DecodeDiskDep (NestedCtxt Header) ByronBlock 
Instance details

Defined in Ouroboros.Consensus.Byron.Node.Serialisation

Methods

decodeDiskDep :: CodecConfig ByronBlock -> NestedCtxt Header ByronBlock a -> forall s. Decoder s (ByteString -> a)

DecodeDiskDepIx (NestedCtxt Header) ByronBlock 
Instance details

Defined in Ouroboros.Consensus.Byron.Node.Serialisation

Methods

decodeDiskDepIx :: CodecConfig ByronBlock -> Decoder s (SomeSecond (NestedCtxt Header) ByronBlock)

EncodeDiskDep (NestedCtxt Header) ByronBlock 
Instance details

Defined in Ouroboros.Consensus.Byron.Node.Serialisation

Methods

encodeDiskDep :: CodecConfig ByronBlock -> NestedCtxt Header ByronBlock a -> a -> Encoding

EncodeDiskDepIx (NestedCtxt Header) ByronBlock 
Instance details

Defined in Ouroboros.Consensus.Byron.Node.Serialisation

Methods

encodeDiskDepIx :: CodecConfig ByronBlock -> SomeSecond (NestedCtxt Header) ByronBlock -> Encoding

Show (BlockQuery ByronBlock result) Source # 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Ledger

Eq (BlockQuery ByronBlock result) Source # 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Ledger

SameDepIndex (NestedCtxt_ ByronBlock f) 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Serialisation

ShowProxy (BlockQuery ByronBlock) 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Ledger

Show (NestedCtxt_ ByronBlock f a) Source # 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Serialisation

SerialiseHFC '[ByronBlock]

Forward to the ByronBlock instance, this means we don't add an era wrapper around blocks on disk. This makes sure we're compatible with the existing Byron blocks.

Instance details

Defined in Ouroboros.Consensus.Cardano.ByronHFC

Methods

encodeDiskHfcBlock :: CodecConfig (HardForkBlock '[ByronBlock]) -> HardForkBlock '[ByronBlock] -> Encoding

decodeDiskHfcBlock :: CodecConfig (HardForkBlock '[ByronBlock]) -> forall s. Decoder s (ByteString -> HardForkBlock '[ByronBlock])

reconstructHfcPrefixLen :: proxy (Header (HardForkBlock '[ByronBlock])) -> PrefixLen

reconstructHfcNestedCtxt :: proxy (Header (HardForkBlock '[ByronBlock])) -> ShortByteString -> SizeInBytes -> SomeSecond (NestedCtxt Header) (HardForkBlock '[ByronBlock])

getHfcBinaryBlockInfo :: HardForkBlock '[ByronBlock] -> BinaryBlockInfo

estimateHfcBlockSize :: Header (HardForkBlock '[ByronBlock]) -> SizeInBytes

data BlockConfig ByronBlock Source #

Extended configuration we need for Byron

Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Config

data BlockConfig ByronBlock = ByronConfig {}
type BlockProtocol ByronBlock 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.PBFT

type BlockProtocol ByronBlock = PBft PBftByronCrypto
newtype CodecConfig ByronBlock Source # 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Config

data Header ByronBlock Source #

Byron header

See ByronBlock for comments on why we cache certain values.

Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Block

data Header ByronBlock = ByronHeader {}
newtype StorageConfig ByronBlock Source # 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Config

type CannotForge ByronBlock 
Instance details

Defined in Ouroboros.Consensus.Byron.Node

type CannotForge ByronBlock = PBftCannotForge PBftByronCrypto
type ForgeStateInfo ByronBlock 
Instance details

Defined in Ouroboros.Consensus.Byron.Node

type ForgeStateInfo ByronBlock = ()
type ForgeStateUpdateError ByronBlock 
Instance details

Defined in Ouroboros.Consensus.Byron.Node

type ForgeStateUpdateError ByronBlock = Void
data NestedCtxt_ ByronBlock f a Source #

Since the Byron header does not contain the size, we include it in the nested type instead.

Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Serialisation

type HardForkIndices ByronBlock 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Ledger

type HardForkIndices ByronBlock = '[ByronBlock]
type PartialLedgerConfig ByronBlock 
Instance details

Defined in Ouroboros.Consensus.Cardano.CanHardFork

type PartialLedgerConfig ByronBlock = ByronPartialLedgerConfig
type OtherHeaderEnvelopeError ByronBlock 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.HeaderValidation

type OtherHeaderEnvelopeError ByronBlock = ByronOtherHeaderEnvelopeError
type TipInfo ByronBlock 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.HeaderValidation

data LedgerState ByronBlock Source # 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Ledger

type LedgerUpdate ByronBlock 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Inspect

type LedgerUpdate ByronBlock = ByronLedgerUpdate
type LedgerWarning ByronBlock 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Inspect

type LedgerWarning ByronBlock = Void
data BlockQuery ByronBlock a Source # 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Ledger

type ApplyTxErr ByronBlock 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Mempool

type ApplyTxErr ByronBlock = ApplyMempoolPayloadErr
data GenTx ByronBlock Source #

Generalized transactions in Byron

This is effectively the same as AMempoolPayload but we cache the transaction ID (a hash).

Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Mempool

data GenTx ByronBlock
type TxMeasure ByronBlock 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Mempool

type TxMeasure ByronBlock = ByteSize
type BlockNodeToClientVersion ByronBlock 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.NetworkProtocolVersion

type BlockNodeToClientVersion ByronBlock = ByronNodeToClientVersion
type BlockNodeToNodeVersion ByronBlock 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.NetworkProtocolVersion

type BlockNodeToNodeVersion ByronBlock = ByronNodeToNodeVersion
data ProtocolParams ByronBlock Source #

Parameters needed to run Byron

Instance details

Defined in Ouroboros.Consensus.Byron.Node

type HeaderHash ByronBlock Source # 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Block

type HeaderHash ByronBlock = ByronHash
type Rep (BlockConfig ByronBlock) Source # 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Config

type Rep (BlockConfig ByronBlock) = D1 ('MetaData "BlockConfig" "Ouroboros.Consensus.Byron.Ledger.Config" "ouroboros-consensus-cardano-0.12.1.0-B7PPTiiOqdjFK3zhRUwDA9" 'False) (C1 ('MetaCons "ByronConfig" 'PrefixI 'True) (S1 ('MetaSel ('Just "byronGenesisConfig") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Config) :*: (S1 ('MetaSel ('Just "byronProtocolVersion") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 ProtocolVersion) :*: S1 ('MetaSel ('Just "byronSoftwareVersion") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 SoftwareVersion))))
type Rep (CodecConfig ByronBlock) Source # 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Config

type Rep (CodecConfig ByronBlock) = D1 ('MetaData "CodecConfig" "Ouroboros.Consensus.Byron.Ledger.Config" "ouroboros-consensus-cardano-0.12.1.0-B7PPTiiOqdjFK3zhRUwDA9" 'True) (C1 ('MetaCons "ByronCodecConfig" 'PrefixI 'True) (S1 ('MetaSel ('Just "getByronEpochSlots") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 EpochSlots)))
type Rep (Header ByronBlock) Source # 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Block

type Rep (Header ByronBlock) = D1 ('MetaData "Header" "Ouroboros.Consensus.Byron.Ledger.Block" "ouroboros-consensus-cardano-0.12.1.0-B7PPTiiOqdjFK3zhRUwDA9" 'False) (C1 ('MetaCons "ByronHeader" 'PrefixI 'True) ((S1 ('MetaSel ('Just "byronHeaderRaw") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (ABlockOrBoundaryHdr ByteString)) :*: S1 ('MetaSel ('Just "byronHeaderSlotNo") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 SlotNo)) :*: (S1 ('MetaSel ('Just "byronHeaderHash") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 ByronHash) :*: S1 ('MetaSel ('Just "byronHeaderBlockSizeHint") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 SizeInBytes))))
type Rep (StorageConfig ByronBlock) Source # 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Config

type Rep (StorageConfig ByronBlock) = D1 ('MetaData "StorageConfig" "Ouroboros.Consensus.Byron.Ledger.Config" "ouroboros-consensus-cardano-0.12.1.0-B7PPTiiOqdjFK3zhRUwDA9" 'True) (C1 ('MetaCons "ByronStorageConfig" 'PrefixI 'True) (S1 ('MetaSel ('Just "getByronBlockConfig") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (BlockConfig ByronBlock))))
type Rep (Validated (GenTx ByronBlock)) Source # 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Mempool

type Rep (Validated (GenTx ByronBlock)) = D1 ('MetaData "Validated" "Ouroboros.Consensus.Byron.Ledger.Mempool" "ouroboros-consensus-cardano-0.12.1.0-B7PPTiiOqdjFK3zhRUwDA9" 'True) (C1 ('MetaCons "ValidatedByronTx" 'PrefixI 'True) (S1 ('MetaSel ('Just "forgetValidatedByronTx") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (GenTx ByronBlock))))
type Rep (LedgerState ByronBlock) Source # 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Ledger

type Rep (LedgerState ByronBlock) = D1 ('MetaData "LedgerState" "Ouroboros.Consensus.Byron.Ledger.Ledger" "ouroboros-consensus-cardano-0.12.1.0-B7PPTiiOqdjFK3zhRUwDA9" 'False) (C1 ('MetaCons "ByronLedgerState" 'PrefixI 'True) (S1 ('MetaSel ('Just "byronLedgerTipBlockNo") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (WithOrigin BlockNo)) :*: (S1 ('MetaSel ('Just "byronLedgerState") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 ChainValidationState) :*: S1 ('MetaSel ('Just "byronLedgerTransition") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 ByronTransition))))
type Rep (GenTx ByronBlock) Source # 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Mempool

type Rep (GenTx ByronBlock) = D1 ('MetaData "GenTx" "Ouroboros.Consensus.Byron.Ledger.Mempool" "ouroboros-consensus-cardano-0.12.1.0-B7PPTiiOqdjFK3zhRUwDA9" 'False) ((C1 ('MetaCons "ByronTx" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 TxId) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (ATxAux ByteString))) :+: C1 ('MetaCons "ByronDlg" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 CertificateId) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (ACertificate ByteString)))) :+: (C1 ('MetaCons "ByronUpdateProposal" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 UpId) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (AProposal ByteString))) :+: C1 ('MetaCons "ByronUpdateVote" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 VoteId) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (AVote ByteString)))))
type Rep (Ticked (LedgerState ByronBlock)) Source # 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Ledger

type Rep (Ticked (LedgerState ByronBlock)) = D1 ('MetaData "Ticked" "Ouroboros.Consensus.Byron.Ledger.Ledger" "ouroboros-consensus-cardano-0.12.1.0-B7PPTiiOqdjFK3zhRUwDA9" 'False) (C1 ('MetaCons "TickedByronLedgerState" 'PrefixI 'True) (S1 ('MetaSel ('Just "tickedByronLedgerState") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 ChainValidationState) :*: S1 ('MetaSel ('Just "untickedByronLedgerTransition") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 ByronTransition)))
newtype Validated (GenTx ByronBlock) Source # 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Mempool

type AuxLedgerEvent (LedgerState ByronBlock) 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Ledger

type AuxLedgerEvent (LedgerState ByronBlock) = VoidLedgerEvent (LedgerState ByronBlock)
type LedgerCfg (LedgerState ByronBlock) 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Ledger

type LedgerCfg (LedgerState ByronBlock) = Config
type LedgerErr (LedgerState ByronBlock) 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Ledger

type LedgerErr (LedgerState ByronBlock) = ChainValidationError
data TxId (GenTx ByronBlock) Source # 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Mempool

data TxId (GenTx ByronBlock)
data ProtocolParams (CardanoBlock c) Source #

Parameters needed to run Cardano.

Instance details

Defined in Ouroboros.Consensus.Cardano.Node

data Ticked (LedgerState ByronBlock) Source #

The ticked Byron ledger state

Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Ledger

annotateByronBlock :: EpochSlots -> Block -> ByronBlock Source #

Construct Byron block from unannotated Block

This should be used only when forging blocks (not when receiving blocks over the wire).

mkByronBlock :: EpochSlots -> ABlockOrBoundary ByteString -> ByronBlock Source #

Header

data family Header blk #

Instances

Instances details
Inject Header 
Instance details

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

Methods

inject :: forall x (xs :: [Type]). CanHardFork xs => Exactly xs Bound -> Index xs x -> Header x -> Header (HardForkBlock xs)

HasNestedContent Header ByronBlock 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Serialisation

Methods

unnest :: Header ByronBlock -> DepPair (NestedCtxt Header ByronBlock)

nest :: DepPair (NestedCtxt Header ByronBlock) -> Header ByronBlock

ReconstructNestedCtxt Header ByronBlock 
Instance details

Defined in Ouroboros.Consensus.Byron.Node.Serialisation

Methods

reconstructPrefixLen :: proxy (Header ByronBlock) -> PrefixLen

reconstructNestedCtxt :: proxy (Header ByronBlock) -> ShortByteString -> SizeInBytes -> SomeSecond (NestedCtxt Header) ByronBlock

SerialiseNodeToNode ByronBlock (Header ByronBlock) 
Instance details

Defined in Ouroboros.Consensus.Byron.Node.Serialisation

Methods

encodeNodeToNode :: CodecConfig ByronBlock -> BlockNodeToNodeVersion ByronBlock -> Header ByronBlock -> Encoding

decodeNodeToNode :: CodecConfig ByronBlock -> BlockNodeToNodeVersion ByronBlock -> forall s. Decoder s (Header ByronBlock)

HasHeader blk => StandardHash (Header blk :: Type) 
Instance details

Defined in Ouroboros.Consensus.Block.Abstract

ShowProxy (Header ByronBlock) 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Block

(Typeable era, Typeable proto) => ShowProxy (Header (ShelleyBlock proto era) :: Type) 
Instance details

Defined in Ouroboros.Consensus.Shelley.Ledger.Block

Methods

showProxy :: Proxy (Header (ShelleyBlock proto era)) -> String

ShelleyBasedEra era => ReconstructNestedCtxt Header (ShelleyBlock proto era) 
Instance details

Defined in Ouroboros.Consensus.Shelley.Node.Serialisation

Methods

reconstructPrefixLen :: proxy (Header (ShelleyBlock proto era)) -> PrefixLen

reconstructNestedCtxt :: proxy (Header (ShelleyBlock proto era)) -> ShortByteString -> SizeInBytes -> SomeSecond (NestedCtxt Header) (ShelleyBlock proto era)

Generic (Header ByronBlock) Source # 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Block

Associated Types

type Rep (Header ByronBlock) :: Type -> Type Source #

Generic (Header (ShelleyBlock proto era)) Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Ledger.Block

Associated Types

type Rep (Header (ShelleyBlock proto era)) :: Type -> Type Source #

Methods

from :: Header (ShelleyBlock proto era) -> Rep (Header (ShelleyBlock proto era)) x Source #

to :: Rep (Header (ShelleyBlock proto era)) x -> Header (ShelleyBlock proto era) Source #

Show (Header ByronBlock) Source # 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Block

ShelleyCompatible proto era => Show (Header (ShelleyBlock proto era)) Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Ledger.Block

Methods

showsPrec :: Int -> Header (ShelleyBlock proto era) -> ShowS Source #

show :: Header (ShelleyBlock proto era) -> String Source #

showList :: [Header (ShelleyBlock proto era)] -> ShowS Source #

ShelleyCompatible proto era => DecCBOR (Annotator (Header (ShelleyBlock proto era))) 
Instance details

Defined in Ouroboros.Consensus.Shelley.Ledger.Block

Methods

decCBOR :: Decoder s (Annotator (Header (ShelleyBlock proto era)))

dropCBOR :: Proxy (Annotator (Header (ShelleyBlock proto era))) -> Decoder s ()

label :: Proxy (Annotator (Header (ShelleyBlock proto era))) -> Text

ShelleyCompatible proto era => EncCBOR (Header (ShelleyBlock proto era)) 
Instance details

Defined in Ouroboros.Consensus.Shelley.Ledger.Block

Methods

encCBOR :: Header (ShelleyBlock proto era) -> Encoding

encodedSizeExpr :: (forall t. EncCBOR t => Proxy t -> Size) -> Proxy (Header (ShelleyBlock proto era)) -> Size

encodedListSizeExpr :: (forall t. EncCBOR t => Proxy t -> Size) -> Proxy [Header (ShelleyBlock proto era)] -> Size

Eq (Header ByronBlock) Source # 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Block

ShelleyCompatible proto era => Eq (Header (ShelleyBlock proto era)) Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Ledger.Block

Methods

(==) :: Header (ShelleyBlock proto era) -> Header (ShelleyBlock proto era) -> Bool Source #

(/=) :: Header (ShelleyBlock proto era) -> Header (ShelleyBlock proto era) -> Bool Source #

NoThunks (Header ByronBlock) 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Block

Methods

noThunks :: Context -> Header ByronBlock -> IO (Maybe ThunkInfo)

wNoThunks :: Context -> Header ByronBlock -> IO (Maybe ThunkInfo)

showTypeOf :: Proxy (Header ByronBlock) -> String

ShelleyCompatible proto era => NoThunks (Header (ShelleyBlock proto era)) 
Instance details

Defined in Ouroboros.Consensus.Shelley.Ledger.Block

Methods

noThunks :: Context -> Header (ShelleyBlock proto era) -> IO (Maybe ThunkInfo)

wNoThunks :: Context -> Header (ShelleyBlock proto era) -> IO (Maybe ThunkInfo)

showTypeOf :: Proxy (Header (ShelleyBlock proto era)) -> String

SignedHeader (ShelleyProtocolHeader proto) => SignedHeader (Header (ShelleyBlock proto era)) 
Instance details

Defined in Ouroboros.Consensus.Shelley.Ledger.Protocol

Methods

headerSigned :: Header (ShelleyBlock proto era) -> Signed (Header (ShelleyBlock proto era))

Condense (Header ByronBlock) 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Block

ShelleyCompatible proto era => Condense (Header (ShelleyBlock proto era)) 
Instance details

Defined in Ouroboros.Consensus.Shelley.Ledger.Block

Methods

condense :: Header (ShelleyBlock proto era) -> String

HasHeader (Header ByronBlock) 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Block

Methods

getHeaderFields :: Header ByronBlock -> HeaderFields (Header ByronBlock)

ShelleyCompatible proto era => HasHeader (Header (ShelleyBlock proto era)) 
Instance details

Defined in Ouroboros.Consensus.Shelley.Ledger.Block

Methods

getHeaderFields :: Header (ShelleyBlock proto era) -> HeaderFields (Header (ShelleyBlock proto era))

DecodeDiskDep (NestedCtxt Header) ByronBlock 
Instance details

Defined in Ouroboros.Consensus.Byron.Node.Serialisation

Methods

decodeDiskDep :: CodecConfig ByronBlock -> NestedCtxt Header ByronBlock a -> forall s. Decoder s (ByteString -> a)

DecodeDiskDepIx (NestedCtxt Header) ByronBlock 
Instance details

Defined in Ouroboros.Consensus.Byron.Node.Serialisation

Methods

decodeDiskDepIx :: CodecConfig ByronBlock -> Decoder s (SomeSecond (NestedCtxt Header) ByronBlock)

EncodeDiskDep (NestedCtxt Header) ByronBlock 
Instance details

Defined in Ouroboros.Consensus.Byron.Node.Serialisation

Methods

encodeDiskDep :: CodecConfig ByronBlock -> NestedCtxt Header ByronBlock a -> a -> Encoding

EncodeDiskDepIx (NestedCtxt Header) ByronBlock 
Instance details

Defined in Ouroboros.Consensus.Byron.Node.Serialisation

Methods

encodeDiskDepIx :: CodecConfig ByronBlock -> SomeSecond (NestedCtxt Header) ByronBlock -> Encoding

ShelleyCompatible proto era => DecodeDiskDep (NestedCtxt Header) (ShelleyBlock proto era) 
Instance details

Defined in Ouroboros.Consensus.Shelley.Node.Serialisation

Methods

decodeDiskDep :: CodecConfig (ShelleyBlock proto era) -> NestedCtxt Header (ShelleyBlock proto era) a -> forall s. Decoder s (ByteString -> a)

ShelleyBasedEra era => DecodeDiskDepIx (NestedCtxt Header) (ShelleyBlock proto era) 
Instance details

Defined in Ouroboros.Consensus.Shelley.Node.Serialisation

Methods

decodeDiskDepIx :: CodecConfig (ShelleyBlock proto era) -> Decoder s (SomeSecond (NestedCtxt Header) (ShelleyBlock proto era))

ShelleyCompatible proto era => EncodeDiskDep (NestedCtxt Header) (ShelleyBlock proto era) 
Instance details

Defined in Ouroboros.Consensus.Shelley.Node.Serialisation

Methods

encodeDiskDep :: CodecConfig (ShelleyBlock proto era) -> NestedCtxt Header (ShelleyBlock proto era) a -> a -> Encoding

ShelleyBasedEra era => EncodeDiskDepIx (NestedCtxt Header) (ShelleyBlock proto era) 
Instance details

Defined in Ouroboros.Consensus.Shelley.Node.Serialisation

Methods

encodeDiskDepIx :: CodecConfig (ShelleyBlock proto era) -> SomeSecond (NestedCtxt Header) (ShelleyBlock proto era) -> Encoding

ShelleyCompatible proto era => SerialiseNodeToNode (ShelleyBlock proto era) (Header (ShelleyBlock proto era))

CBOR-in-CBOR to be compatible with the wrapped (Serialised) variant.

Instance details

Defined in Ouroboros.Consensus.Shelley.Node.Serialisation

Methods

encodeNodeToNode :: CodecConfig (ShelleyBlock proto era) -> BlockNodeToNodeVersion (ShelleyBlock proto era) -> Header (ShelleyBlock proto era) -> Encoding

decodeNodeToNode :: CodecConfig (ShelleyBlock proto era) -> BlockNodeToNodeVersion (ShelleyBlock proto era) -> forall s. Decoder s (Header (ShelleyBlock proto era))

ShelleyCompatible proto era => EncodeDisk (ShelleyBlock proto era) (Header (ShelleyBlock proto era)) 
Instance details

Defined in Ouroboros.Consensus.Shelley.Node.Serialisation

Methods

encodeDisk :: CodecConfig (ShelleyBlock proto era) -> Header (ShelleyBlock proto era) -> Encoding

ShelleyCompatible proto era => DecodeDisk (ShelleyBlock proto era) (ByteString -> Header (ShelleyBlock proto era)) 
Instance details

Defined in Ouroboros.Consensus.Shelley.Node.Serialisation

Methods

decodeDisk :: CodecConfig (ShelleyBlock proto era) -> forall s. Decoder s (ByteString -> Header (ShelleyBlock proto era))

data Header ByronBlock Source #

Byron header

See ByronBlock for comments on why we cache certain values.

Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Block

data Header ByronBlock = ByronHeader {}
type HeaderHash (Header blk :: Type) 
Instance details

Defined in Ouroboros.Consensus.Block.Abstract

type HeaderHash (Header blk :: Type) = HeaderHash blk
type Rep (Header ByronBlock) Source # 
Instance details

Defined in Ouroboros.Consensus.Byron.Ledger.Block

type Rep (Header ByronBlock) = D1 ('MetaData "Header" "Ouroboros.Consensus.Byron.Ledger.Block" "ouroboros-consensus-cardano-0.12.1.0-B7PPTiiOqdjFK3zhRUwDA9" 'False) (C1 ('MetaCons "ByronHeader" 'PrefixI 'True) ((S1 ('MetaSel ('Just "byronHeaderRaw") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (ABlockOrBoundaryHdr ByteString)) :*: S1 ('MetaSel ('Just "byronHeaderSlotNo") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 SlotNo)) :*: (S1 ('MetaSel ('Just "byronHeaderHash") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 ByronHash) :*: S1 ('MetaSel ('Just "byronHeaderBlockSizeHint") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 SizeInBytes))))
type Rep (Header (ShelleyBlock proto era)) Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Ledger.Block

type Rep (Header (ShelleyBlock proto era)) = D1 ('MetaData "Header" "Ouroboros.Consensus.Shelley.Ledger.Block" "ouroboros-consensus-cardano-0.12.1.0-B7PPTiiOqdjFK3zhRUwDA9" 'False) (C1 ('MetaCons "ShelleyHeader" 'PrefixI 'True) (S1 ('MetaSel ('Just "shelleyHeaderRaw") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (ShelleyProtocolHeader proto)) :*: S1 ('MetaSel ('Just "shelleyHeaderHash") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (ShelleyHash (ProtoCrypto proto)))))
type BlockProtocol (Header blk) 
Instance details

Defined in Ouroboros.Consensus.Block.Abstract

type BlockProtocol (Header blk) = BlockProtocol blk
newtype Header (HardForkBlock xs) 
Instance details

Defined in Ouroboros.Consensus.HardFork.Combinator.Block

newtype Header (HardForkBlock xs) = HardForkHeader {}
type Signed (Header (ShelleyBlock proto era)) 
Instance details

Defined in Ouroboros.Consensus.Shelley.Ledger.Protocol

type Signed (Header (ShelleyBlock proto era)) = Signed (ShelleyProtocolHeader proto)
data Header (ShelleyBlock proto era) Source # 
Instance details

Defined in Ouroboros.Consensus.Shelley.Ledger.Block

mkBoundaryByronHeader :: SlotNo -> ABoundaryHeader ByteString -> SizeInBytes -> Header ByronBlock Source #

mkByronHeader Source #

Arguments

:: EpochSlots 
-> ABlockOrBoundaryHdr ByteString 
-> SizeInBytes

Block size hint

-> Header ByronBlock 

mkRegularByronHeader :: AHeader ByteString -> SizeInBytes -> Header ByronBlock Source #

Dealing with EBBs

knownEBBs :: Map (HeaderHash ByronBlock) (ChainHash ByronBlock) Source #

Low-level API

data UnsizedHeader Source #

Header without a size hint

Defined in order to support backwards compatible binary encodings.

Constructors

UnsizedHeader 

Fields

mkUnsizedHeader :: EpochSlots -> ABlockOrBoundaryHdr ByteString -> UnsizedHeader Source #