ouroboros-consensus-0.26.0.0: Consensus layer for the Ouroboros blockchain protocol
Safe HaskellNone
LanguageHaskell2010

Ouroboros.Consensus.Storage.ChainDB.Impl

Synopsis

Initialization

data ChainDbArgs (f ∷ TypeType) (m ∷ TypeType) blk Source #

Constructors

ChainDbArgs 

defaultArgs ∷ ∀ (m ∷ TypeType) blk. Monad m ⇒ Incomplete ChainDbArgs m blk Source #

Default arguments

See defaultArgs, defaultArgs, defaultArgs, and defaultSpecificArgs for a list of which fields are not given a default and must therefore be set explicitly.

Trace types

data SelectionChangedInfo blk Source #

Information on having changed our selection to a chain with a (necessarily) new tip.

NOTE: the fields of this record are intentionally lazy to prevent the forcing of this information in case it doesn't have to be traced. However, this means that the tracer processing this message must not hold on to it, otherwise it leaks memory.

Constructors

SelectionChangedInfo 

Fields

Instances

Instances details
Generic (SelectionChangedInfo blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Storage.ChainDB.Impl.Types

Associated Types

type Rep (SelectionChangedInfo blk) 
Instance details

Defined in Ouroboros.Consensus.Storage.ChainDB.Impl.Types

type Rep (SelectionChangedInfo blk) = D1 ('MetaData "SelectionChangedInfo" "Ouroboros.Consensus.Storage.ChainDB.Impl.Types" "ouroboros-consensus-0.26.0.0-inplace" 'False) (C1 ('MetaCons "SelectionChangedInfo" 'PrefixI 'True) ((S1 ('MetaSel ('Just "newTipPoint") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (RealPoint blk)) :*: (S1 ('MetaSel ('Just "newTipEpoch") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 EpochNo) :*: S1 ('MetaSel ('Just "newTipSlotInEpoch") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word64))) :*: (S1 ('MetaSel ('Just "newTipTrigger") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (RealPoint blk)) :*: (S1 ('MetaSel ('Just "newTipSelectView") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (SelectView (BlockProtocol blk))) :*: S1 ('MetaSel ('Just "oldTipSelectView") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe (SelectView (BlockProtocol blk))))))))
(Show (SelectView (BlockProtocol blk)), StandardHash blk) ⇒ Show (SelectionChangedInfo blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Storage.ChainDB.Impl.Types

(Eq (SelectView (BlockProtocol blk)), StandardHash blk) ⇒ Eq (SelectionChangedInfo blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Storage.ChainDB.Impl.Types

type Rep (SelectionChangedInfo blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Storage.ChainDB.Impl.Types

type Rep (SelectionChangedInfo blk) = D1 ('MetaData "SelectionChangedInfo" "Ouroboros.Consensus.Storage.ChainDB.Impl.Types" "ouroboros-consensus-0.26.0.0-inplace" 'False) (C1 ('MetaCons "SelectionChangedInfo" 'PrefixI 'True) ((S1 ('MetaSel ('Just "newTipPoint") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (RealPoint blk)) :*: (S1 ('MetaSel ('Just "newTipEpoch") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 EpochNo) :*: S1 ('MetaSel ('Just "newTipSlotInEpoch") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word64))) :*: (S1 ('MetaSel ('Just "newTipTrigger") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (RealPoint blk)) :*: (S1 ('MetaSel ('Just "newTipSelectView") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (SelectView (BlockProtocol blk))) :*: S1 ('MetaSel ('Just "oldTipSelectView") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe (SelectView (BlockProtocol blk))))))))

data TraceAddBlockEvent blk Source #

Trace type for the various events that occur when adding a block.

Constructors

IgnoreBlockOlderThanK (RealPoint blk)

A block with a BlockNo more than k back than the current tip was ignored.

IgnoreBlockAlreadyInVolatileDB (RealPoint blk)

A block that is already in the Volatile DB was ignored.

IgnoreInvalidBlock (RealPoint blk) (ExtValidationError blk)

A block that is know to be invalid was ignored.

AddedBlockToQueue (RealPoint blk) (Enclosing' Word)

The block was added to the queue and will be added to the ChainDB by the background thread. The size of the queue is included.

PoppedBlockFromQueue (Enclosing' (RealPoint blk))

The block popped from the queue and will imminently be added to the ChainDB.

AddedReprocessLoEBlocksToQueue

A message was added to the queue that requests that ChainSel reprocess blocks that were postponed by the LoE.

PoppedReprocessLoEBlocksFromQueue

ChainSel will reprocess blocks that were postponed by the LoE.

AddedBlockToVolatileDB (RealPoint blk) BlockNo IsEBB Enclosing

A block was added to the Volatile DB

TryAddToCurrentChain (RealPoint blk)

The block fits onto the current chain, we'll try to use it to extend our chain.

TrySwitchToAFork (RealPoint blk) (ChainDiff (HeaderFields blk))

The block fits onto some fork, we'll try to switch to that fork (if it is preferable to our chain).

StoreButDontChange (RealPoint blk)

The block doesn't fit onto any other block, so we store it and ignore it.

ChainSelectionLoEDebug (AnchoredFragment (Header blk)) (LoE (AnchoredFragment (Header blk)))

Debugging information about chain selection and LoE

AddedToCurrentChain [LedgerEvent blk] (SelectionChangedInfo blk) (AnchoredFragment (Header blk)) (AnchoredFragment (Header blk))

The new block fits onto the current chain (first fragment) and we have successfully used it to extend our (new) current chain (second fragment).

SwitchedToAFork [LedgerEvent blk] (SelectionChangedInfo blk) (AnchoredFragment (Header blk)) (AnchoredFragment (Header blk))

The new block fits onto some fork and we have switched to that fork (second fragment), as it is preferable to our (previous) current chain (first fragment).

AddBlockValidation (TraceValidationEvent blk)

An event traced during validating performed while adding a block.

PipeliningEvent (TracePipeliningEvent blk)

The tentative header (in the context of diffusion pipelining) has been updated.

ChangingSelection (Point blk)

Herald of AddedToCurrentChain or SwitchedToAFork. Lists the tip of the new chain.

Instances

Instances details
Generic (TraceAddBlockEvent blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Storage.ChainDB.Impl.Types

Associated Types

type Rep (TraceAddBlockEvent blk) 
Instance details

Defined in Ouroboros.Consensus.Storage.ChainDB.Impl.Types

type Rep (TraceAddBlockEvent blk) = D1 ('MetaData "TraceAddBlockEvent" "Ouroboros.Consensus.Storage.ChainDB.Impl.Types" "ouroboros-consensus-0.26.0.0-inplace" 'False) ((((C1 ('MetaCons "IgnoreBlockOlderThanK" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (RealPoint blk))) :+: C1 ('MetaCons "IgnoreBlockAlreadyInVolatileDB" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (RealPoint blk)))) :+: (C1 ('MetaCons "IgnoreInvalidBlock" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (RealPoint blk)) :*: S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (ExtValidationError blk))) :+: C1 ('MetaCons "AddedBlockToQueue" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (RealPoint blk)) :*: S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Enclosing' Word))))) :+: ((C1 ('MetaCons "PoppedBlockFromQueue" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Enclosing' (RealPoint blk)))) :+: C1 ('MetaCons "AddedReprocessLoEBlocksToQueue" 'PrefixI 'False) (U1TypeType)) :+: (C1 ('MetaCons "PoppedReprocessLoEBlocksFromQueue" 'PrefixI 'False) (U1TypeType) :+: C1 ('MetaCons "AddedBlockToVolatileDB" 'PrefixI 'False) ((S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (RealPoint blk)) :*: S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 BlockNo)) :*: (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 IsEBB) :*: S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Enclosing)))))) :+: (((C1 ('MetaCons "TryAddToCurrentChain" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (RealPoint blk))) :+: C1 ('MetaCons "TrySwitchToAFork" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (RealPoint blk)) :*: S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (ChainDiff (HeaderFields blk))))) :+: (C1 ('MetaCons "StoreButDontChange" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (RealPoint blk))) :+: C1 ('MetaCons "ChainSelectionLoEDebug" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (AnchoredFragment (Header blk))) :*: S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (LoE (AnchoredFragment (Header blk))))))) :+: ((C1 ('MetaCons "AddedToCurrentChain" 'PrefixI 'False) ((S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [LedgerEvent blk]) :*: S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (SelectionChangedInfo blk))) :*: (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (AnchoredFragment (Header blk))) :*: S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (AnchoredFragment (Header blk))))) :+: C1 ('MetaCons "SwitchedToAFork" 'PrefixI 'False) ((S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [LedgerEvent blk]) :*: S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (SelectionChangedInfo blk))) :*: (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (AnchoredFragment (Header blk))) :*: S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (AnchoredFragment (Header blk)))))) :+: (C1 ('MetaCons "AddBlockValidation" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (TraceValidationEvent blk))) :+: (C1 ('MetaCons "PipeliningEvent" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (TracePipeliningEvent blk))) :+: C1 ('MetaCons "ChangingSelection" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Point blk))))))))
(Show (Header blk), LedgerSupportsProtocol blk, InspectLedger blk) ⇒ Show (TraceAddBlockEvent blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Storage.ChainDB.Impl.Types

(Eq (Header blk), LedgerSupportsProtocol blk, InspectLedger blk) ⇒ Eq (TraceAddBlockEvent blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Storage.ChainDB.Impl.Types

type Rep (TraceAddBlockEvent blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Storage.ChainDB.Impl.Types

type Rep (TraceAddBlockEvent blk) = D1 ('MetaData "TraceAddBlockEvent" "Ouroboros.Consensus.Storage.ChainDB.Impl.Types" "ouroboros-consensus-0.26.0.0-inplace" 'False) ((((C1 ('MetaCons "IgnoreBlockOlderThanK" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (RealPoint blk))) :+: C1 ('MetaCons "IgnoreBlockAlreadyInVolatileDB" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (RealPoint blk)))) :+: (C1 ('MetaCons "IgnoreInvalidBlock" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (RealPoint blk)) :*: S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (ExtValidationError blk))) :+: C1 ('MetaCons "AddedBlockToQueue" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (RealPoint blk)) :*: S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Enclosing' Word))))) :+: ((C1 ('MetaCons "PoppedBlockFromQueue" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Enclosing' (RealPoint blk)))) :+: C1 ('MetaCons "AddedReprocessLoEBlocksToQueue" 'PrefixI 'False) (U1TypeType)) :+: (C1 ('MetaCons "PoppedReprocessLoEBlocksFromQueue" 'PrefixI 'False) (U1TypeType) :+: C1 ('MetaCons "AddedBlockToVolatileDB" 'PrefixI 'False) ((S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (RealPoint blk)) :*: S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 BlockNo)) :*: (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 IsEBB) :*: S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Enclosing)))))) :+: (((C1 ('MetaCons "TryAddToCurrentChain" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (RealPoint blk))) :+: C1 ('MetaCons "TrySwitchToAFork" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (RealPoint blk)) :*: S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (ChainDiff (HeaderFields blk))))) :+: (C1 ('MetaCons "StoreButDontChange" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (RealPoint blk))) :+: C1 ('MetaCons "ChainSelectionLoEDebug" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (AnchoredFragment (Header blk))) :*: S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (LoE (AnchoredFragment (Header blk))))))) :+: ((C1 ('MetaCons "AddedToCurrentChain" 'PrefixI 'False) ((S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [LedgerEvent blk]) :*: S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (SelectionChangedInfo blk))) :*: (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (AnchoredFragment (Header blk))) :*: S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (AnchoredFragment (Header blk))))) :+: C1 ('MetaCons "SwitchedToAFork" 'PrefixI 'False) ((S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [LedgerEvent blk]) :*: S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (SelectionChangedInfo blk))) :*: (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (AnchoredFragment (Header blk))) :*: S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (AnchoredFragment (Header blk)))))) :+: (C1 ('MetaCons "AddBlockValidation" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (TraceValidationEvent blk))) :+: (C1 ('MetaCons "PipeliningEvent" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (TracePipeliningEvent blk))) :+: C1 ('MetaCons "ChangingSelection" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Point blk))))))))

newtype TraceChainSelStarvationEvent blk Source #

Chain selection is starved when the background thread runs out of work. This is the usual case and innocent while caught-up; but while syncing, it means that we are downloading blocks at a smaller rate than we can validate them, even though we generally expect to be CPU-bound.

TODO: Investigate why it happens regularly during syncing for very short times.

The point in the trace is the block that finished the starvation.

Instances

Instances details
Generic (TraceChainSelStarvationEvent blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Storage.ChainDB.Impl.Types

Associated Types

type Rep (TraceChainSelStarvationEvent blk) 
Instance details

Defined in Ouroboros.Consensus.Storage.ChainDB.Impl.Types

type Rep (TraceChainSelStarvationEvent blk) = D1 ('MetaData "TraceChainSelStarvationEvent" "Ouroboros.Consensus.Storage.ChainDB.Impl.Types" "ouroboros-consensus-0.26.0.0-inplace" 'True) (C1 ('MetaCons "ChainSelStarvation" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Enclosing' (RealPoint blk)))))
StandardHash blk ⇒ Show (TraceChainSelStarvationEvent blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Storage.ChainDB.Impl.Types

StandardHash blk ⇒ Eq (TraceChainSelStarvationEvent blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Storage.ChainDB.Impl.Types

type Rep (TraceChainSelStarvationEvent blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Storage.ChainDB.Impl.Types

type Rep (TraceChainSelStarvationEvent blk) = D1 ('MetaData "TraceChainSelStarvationEvent" "Ouroboros.Consensus.Storage.ChainDB.Impl.Types" "ouroboros-consensus-0.26.0.0-inplace" 'True) (C1 ('MetaCons "ChainSelStarvation" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Enclosing' (RealPoint blk)))))

data TraceCopyToImmutableDBEvent blk Source #

Constructors

CopiedBlockToImmutableDB (Point blk)

A block was successfully copied to the ImmutableDB.

NoBlocksToCopyToImmutableDB

There are no block to copy to the ImmutableDB.

Instances

Instances details
Generic (TraceCopyToImmutableDBEvent blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Storage.ChainDB.Impl.Types

Associated Types

type Rep (TraceCopyToImmutableDBEvent blk) 
Instance details

Defined in Ouroboros.Consensus.Storage.ChainDB.Impl.Types

type Rep (TraceCopyToImmutableDBEvent blk) = D1 ('MetaData "TraceCopyToImmutableDBEvent" "Ouroboros.Consensus.Storage.ChainDB.Impl.Types" "ouroboros-consensus-0.26.0.0-inplace" 'False) (C1 ('MetaCons "CopiedBlockToImmutableDB" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Point blk))) :+: C1 ('MetaCons "NoBlocksToCopyToImmutableDB" 'PrefixI 'False) (U1TypeType))
StandardHash blk ⇒ Show (TraceCopyToImmutableDBEvent blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Storage.ChainDB.Impl.Types

StandardHash blk ⇒ Eq (TraceCopyToImmutableDBEvent blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Storage.ChainDB.Impl.Types

type Rep (TraceCopyToImmutableDBEvent blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Storage.ChainDB.Impl.Types

type Rep (TraceCopyToImmutableDBEvent blk) = D1 ('MetaData "TraceCopyToImmutableDBEvent" "Ouroboros.Consensus.Storage.ChainDB.Impl.Types" "ouroboros-consensus-0.26.0.0-inplace" 'False) (C1 ('MetaCons "CopiedBlockToImmutableDB" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Point blk))) :+: C1 ('MetaCons "NoBlocksToCopyToImmutableDB" 'PrefixI 'False) (U1TypeType))

data TraceEvent blk Source #

Trace type for the various events of the ChainDB.

Instances

Instances details
Generic (TraceEvent blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Storage.ChainDB.Impl.Types

Associated Types

type Rep (TraceEvent blk) 
Instance details

Defined in Ouroboros.Consensus.Storage.ChainDB.Impl.Types

type Rep (TraceEvent blk) = D1 ('MetaData "TraceEvent" "Ouroboros.Consensus.Storage.ChainDB.Impl.Types" "ouroboros-consensus-0.26.0.0-inplace" 'False) (((C1 ('MetaCons "TraceAddBlockEvent" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (TraceAddBlockEvent blk))) :+: (C1 ('MetaCons "TraceFollowerEvent" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (TraceFollowerEvent blk))) :+: C1 ('MetaCons "TraceCopyToImmutableDBEvent" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (TraceCopyToImmutableDBEvent blk))))) :+: (C1 ('MetaCons "TraceGCEvent" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (TraceGCEvent blk))) :+: (C1 ('MetaCons "TraceInitChainSelEvent" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (TraceInitChainSelEvent blk))) :+: C1 ('MetaCons "TraceOpenEvent" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (TraceOpenEvent blk)))))) :+: ((C1 ('MetaCons "TraceIteratorEvent" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (TraceIteratorEvent blk))) :+: (C1 ('MetaCons "TraceLedgerDBEvent" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (TraceEvent blk))) :+: C1 ('MetaCons "TraceImmutableDBEvent" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (TraceEvent blk))))) :+: (C1 ('MetaCons "TraceVolatileDBEvent" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (TraceEvent blk))) :+: (C1 ('MetaCons "TraceLastShutdownUnclean" 'PrefixI 'False) (U1TypeType) :+: C1 ('MetaCons "TraceChainSelStarvationEvent" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (TraceChainSelStarvationEvent blk)))))))

Methods

fromTraceEvent blk → Rep (TraceEvent blk) x #

toRep (TraceEvent blk) x → TraceEvent blk #

(Show (Header blk), LedgerSupportsProtocol blk, InspectLedger blk) ⇒ Show (TraceEvent blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Storage.ChainDB.Impl.Types

Methods

showsPrecIntTraceEvent blk → ShowS #

showTraceEvent blk → String #

showList ∷ [TraceEvent blk] → ShowS #

(Eq (Header blk), LedgerSupportsProtocol blk, InspectLedger blk) ⇒ Eq (TraceEvent blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Storage.ChainDB.Impl.Types

Methods

(==)TraceEvent blk → TraceEvent blk → Bool #

(/=)TraceEvent blk → TraceEvent blk → Bool #

type Rep (TraceEvent blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Storage.ChainDB.Impl.Types

type Rep (TraceEvent blk) = D1 ('MetaData "TraceEvent" "Ouroboros.Consensus.Storage.ChainDB.Impl.Types" "ouroboros-consensus-0.26.0.0-inplace" 'False) (((C1 ('MetaCons "TraceAddBlockEvent" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (TraceAddBlockEvent blk))) :+: (C1 ('MetaCons "TraceFollowerEvent" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (TraceFollowerEvent blk))) :+: C1 ('MetaCons "TraceCopyToImmutableDBEvent" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (TraceCopyToImmutableDBEvent blk))))) :+: (C1 ('MetaCons "TraceGCEvent" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (TraceGCEvent blk))) :+: (C1 ('MetaCons "TraceInitChainSelEvent" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (TraceInitChainSelEvent blk))) :+: C1 ('MetaCons "TraceOpenEvent" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (TraceOpenEvent blk)))))) :+: ((C1 ('MetaCons "TraceIteratorEvent" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (TraceIteratorEvent blk))) :+: (C1 ('MetaCons "TraceLedgerDBEvent" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (TraceEvent blk))) :+: C1 ('MetaCons "TraceImmutableDBEvent" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (TraceEvent blk))))) :+: (C1 ('MetaCons "TraceVolatileDBEvent" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (TraceEvent blk))) :+: (C1 ('MetaCons "TraceLastShutdownUnclean" 'PrefixI 'False) (U1TypeType) :+: C1 ('MetaCons "TraceChainSelStarvationEvent" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (TraceChainSelStarvationEvent blk)))))))

data TraceFollowerEvent blk Source #

Constructors

NewFollower

A new follower was created.

FollowerNoLongerInMem (FollowerRollState blk)

The follower was in the FollowerInMem state but its point is no longer on the in-memory chain fragment, so it has to switch to the FollowerInImmutableDB state.

FollowerSwitchToMem

The follower was in the FollowerInImmutableDB state and is switched to the FollowerInMem state.

Fields

FollowerNewImmIterator

The follower is in the FollowerInImmutableDB state but the iterator is exhausted while the ImmutableDB has grown, so we open a new iterator to stream these blocks too.

Fields

Instances

Instances details
Generic (TraceFollowerEvent blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Storage.ChainDB.Impl.Types

Associated Types

type Rep (TraceFollowerEvent blk) 
Instance details

Defined in Ouroboros.Consensus.Storage.ChainDB.Impl.Types

type Rep (TraceFollowerEvent blk) = D1 ('MetaData "TraceFollowerEvent" "Ouroboros.Consensus.Storage.ChainDB.Impl.Types" "ouroboros-consensus-0.26.0.0-inplace" 'False) ((C1 ('MetaCons "NewFollower" 'PrefixI 'False) (U1TypeType) :+: C1 ('MetaCons "FollowerNoLongerInMem" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (FollowerRollState blk)))) :+: (C1 ('MetaCons "FollowerSwitchToMem" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Point blk)) :*: S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (WithOrigin SlotNo))) :+: C1 ('MetaCons "FollowerNewImmIterator" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Point blk)) :*: S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (WithOrigin SlotNo)))))
StandardHash blk ⇒ Show (TraceFollowerEvent blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Storage.ChainDB.Impl.Types

StandardHash blk ⇒ Eq (TraceFollowerEvent blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Storage.ChainDB.Impl.Types

type Rep (TraceFollowerEvent blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Storage.ChainDB.Impl.Types

type Rep (TraceFollowerEvent blk) = D1 ('MetaData "TraceFollowerEvent" "Ouroboros.Consensus.Storage.ChainDB.Impl.Types" "ouroboros-consensus-0.26.0.0-inplace" 'False) ((C1 ('MetaCons "NewFollower" 'PrefixI 'False) (U1TypeType) :+: C1 ('MetaCons "FollowerNoLongerInMem" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (FollowerRollState blk)))) :+: (C1 ('MetaCons "FollowerSwitchToMem" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Point blk)) :*: S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (WithOrigin SlotNo))) :+: C1 ('MetaCons "FollowerNewImmIterator" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Point blk)) :*: S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (WithOrigin SlotNo)))))

data TraceGCEvent blk Source #

Constructors

ScheduledGC SlotNo Time

A garbage collection for the given SlotNo was scheduled to happen at the given time.

PerformedGC SlotNo

A garbage collection for the given SlotNo was performed.

Instances

Instances details
Generic (TraceGCEvent blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Storage.ChainDB.Impl.Types

Associated Types

type Rep (TraceGCEvent blk) 
Instance details

Defined in Ouroboros.Consensus.Storage.ChainDB.Impl.Types

type Rep (TraceGCEvent blk) = D1 ('MetaData "TraceGCEvent" "Ouroboros.Consensus.Storage.ChainDB.Impl.Types" "ouroboros-consensus-0.26.0.0-inplace" 'False) (C1 ('MetaCons "ScheduledGC" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SlotNo) :*: S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Time)) :+: C1 ('MetaCons "PerformedGC" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SlotNo)))

Methods

fromTraceGCEvent blk → Rep (TraceGCEvent blk) x #

toRep (TraceGCEvent blk) x → TraceGCEvent blk #

Show (TraceGCEvent blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Storage.ChainDB.Impl.Types

Methods

showsPrecIntTraceGCEvent blk → ShowS #

showTraceGCEvent blk → String #

showList ∷ [TraceGCEvent blk] → ShowS #

Eq (TraceGCEvent blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Storage.ChainDB.Impl.Types

Methods

(==)TraceGCEvent blk → TraceGCEvent blk → Bool #

(/=)TraceGCEvent blk → TraceGCEvent blk → Bool #

type Rep (TraceGCEvent blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Storage.ChainDB.Impl.Types

type Rep (TraceGCEvent blk) = D1 ('MetaData "TraceGCEvent" "Ouroboros.Consensus.Storage.ChainDB.Impl.Types" "ouroboros-consensus-0.26.0.0-inplace" 'False) (C1 ('MetaCons "ScheduledGC" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SlotNo) :*: S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Time)) :+: C1 ('MetaCons "PerformedGC" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SlotNo)))

data TraceInitChainSelEvent blk Source #

Constructors

StartedInitChainSelection

An event traced when inital chain selection has started during the initialization of ChainDB

InitialChainSelected

An event traced when inital chain has been selected

InitChainSelValidation (TraceValidationEvent blk)

An event traced during validation performed while performing initial chain selection.

Instances

Instances details
Generic (TraceInitChainSelEvent blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Storage.ChainDB.Impl.Types

Associated Types

type Rep (TraceInitChainSelEvent blk) 
Instance details

Defined in Ouroboros.Consensus.Storage.ChainDB.Impl.Types

type Rep (TraceInitChainSelEvent blk) = D1 ('MetaData "TraceInitChainSelEvent" "Ouroboros.Consensus.Storage.ChainDB.Impl.Types" "ouroboros-consensus-0.26.0.0-inplace" 'False) (C1 ('MetaCons "StartedInitChainSelection" 'PrefixI 'False) (U1TypeType) :+: (C1 ('MetaCons "InitialChainSelected" 'PrefixI 'False) (U1TypeType) :+: C1 ('MetaCons "InitChainSelValidation" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (TraceValidationEvent blk)))))
(Show (Header blk), LedgerSupportsProtocol blk) ⇒ Show (TraceInitChainSelEvent blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Storage.ChainDB.Impl.Types

(Eq (Header blk), LedgerSupportsProtocol blk) ⇒ Eq (TraceInitChainSelEvent blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Storage.ChainDB.Impl.Types

type Rep (TraceInitChainSelEvent blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Storage.ChainDB.Impl.Types

type Rep (TraceInitChainSelEvent blk) = D1 ('MetaData "TraceInitChainSelEvent" "Ouroboros.Consensus.Storage.ChainDB.Impl.Types" "ouroboros-consensus-0.26.0.0-inplace" 'False) (C1 ('MetaCons "StartedInitChainSelection" 'PrefixI 'False) (U1TypeType) :+: (C1 ('MetaCons "InitialChainSelected" 'PrefixI 'False) (U1TypeType) :+: C1 ('MetaCons "InitChainSelValidation" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (TraceValidationEvent blk)))))

data TraceIteratorEvent blk Source #

Constructors

UnknownRangeRequested (UnknownRange blk)

An unknown range was requested, see UnknownRange.

StreamFromVolatileDB (StreamFrom blk) (StreamTo blk) [RealPoint blk]

Stream only from the VolatileDB.

StreamFromImmutableDB (StreamFrom blk) (StreamTo blk)

Stream only from the ImmutableDB.

StreamFromBoth (StreamFrom blk) (StreamTo blk) [RealPoint blk]

Stream from both the VolatileDB and the ImmutableDB.

BlockMissingFromVolatileDB (RealPoint blk)

A block is no longer in the VolatileDB because it has been garbage collected. It might now be in the ImmutableDB if it was part of the current chain.

BlockWasCopiedToImmutableDB (RealPoint blk)

A block that has been garbage collected from the VolatileDB is now found and streamed from the ImmutableDB.

BlockGCedFromVolatileDB (RealPoint blk)

A block is no longer in the VolatileDB and isn't in the ImmutableDB either; it wasn't part of the current chain.

SwitchBackToVolatileDB

We have streamed one or more blocks from the ImmutableDB that were part of the VolatileDB when initialising the iterator. Now, we have to look back in the VolatileDB again because the ImmutableDB doesn't have the next block we're looking for.

Instances

Instances details
Generic (TraceIteratorEvent blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Storage.ChainDB.Impl.Types

Associated Types

type Rep (TraceIteratorEvent blk) 
Instance details

Defined in Ouroboros.Consensus.Storage.ChainDB.Impl.Types

type Rep (TraceIteratorEvent blk) = D1 ('MetaData "TraceIteratorEvent" "Ouroboros.Consensus.Storage.ChainDB.Impl.Types" "ouroboros-consensus-0.26.0.0-inplace" 'False) (((C1 ('MetaCons "UnknownRangeRequested" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (UnknownRange blk))) :+: C1 ('MetaCons "StreamFromVolatileDB" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (StreamFrom blk)) :*: (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (StreamTo blk)) :*: S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [RealPoint blk])))) :+: (C1 ('MetaCons "StreamFromImmutableDB" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (StreamFrom blk)) :*: S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (StreamTo blk))) :+: C1 ('MetaCons "StreamFromBoth" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (StreamFrom blk)) :*: (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (StreamTo blk)) :*: S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [RealPoint blk]))))) :+: ((C1 ('MetaCons "BlockMissingFromVolatileDB" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (RealPoint blk))) :+: C1 ('MetaCons "BlockWasCopiedToImmutableDB" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (RealPoint blk)))) :+: (C1 ('MetaCons "BlockGCedFromVolatileDB" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (RealPoint blk))) :+: C1 ('MetaCons "SwitchBackToVolatileDB" 'PrefixI 'False) (U1TypeType))))
StandardHash blk ⇒ Show (TraceIteratorEvent blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Storage.ChainDB.Impl.Types

StandardHash blk ⇒ Eq (TraceIteratorEvent blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Storage.ChainDB.Impl.Types

type Rep (TraceIteratorEvent blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Storage.ChainDB.Impl.Types

type Rep (TraceIteratorEvent blk) = D1 ('MetaData "TraceIteratorEvent" "Ouroboros.Consensus.Storage.ChainDB.Impl.Types" "ouroboros-consensus-0.26.0.0-inplace" 'False) (((C1 ('MetaCons "UnknownRangeRequested" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (UnknownRange blk))) :+: C1 ('MetaCons "StreamFromVolatileDB" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (StreamFrom blk)) :*: (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (StreamTo blk)) :*: S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [RealPoint blk])))) :+: (C1 ('MetaCons "StreamFromImmutableDB" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (StreamFrom blk)) :*: S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (StreamTo blk))) :+: C1 ('MetaCons "StreamFromBoth" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (StreamFrom blk)) :*: (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (StreamTo blk)) :*: S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [RealPoint blk]))))) :+: ((C1 ('MetaCons "BlockMissingFromVolatileDB" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (RealPoint blk))) :+: C1 ('MetaCons "BlockWasCopiedToImmutableDB" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (RealPoint blk)))) :+: (C1 ('MetaCons "BlockGCedFromVolatileDB" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (RealPoint blk))) :+: C1 ('MetaCons "SwitchBackToVolatileDB" 'PrefixI 'False) (U1TypeType))))

data TraceOpenEvent blk Source #

Constructors

StartedOpeningDB

The ChainDB started the process of opening.

OpenedDB

The ChainDB was opened.

Fields

  • (Point blk)

    Immutable tip

  • (Point blk)

    Tip of the current chain

ClosedDB

The ChainDB was closed.

Fields

  • (Point blk)

    Immutable tip

  • (Point blk)

    Tip of the current chain

StartedOpeningImmutableDB

The ImmutableDB started the process of opening.

OpenedImmutableDB

The ImmutableDB was opened.

Fields

  • (Point blk)

    Immutable tip

  • ChunkNo

    Chunk number of the immutable tip

StartedOpeningVolatileDB

The VolatileDB started opening.

OpenedVolatileDB MaxSlotNo

The VolatileDB was opened, with the highest seen slot number for any block currently in the DB.

StartedOpeningLgrDB

The LedgerDB started opening.

OpenedLgrDB

The LedgerDB was opened.

Instances

Instances details
Generic (TraceOpenEvent blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Storage.ChainDB.Impl.Types

Associated Types

type Rep (TraceOpenEvent blk) 
Instance details

Defined in Ouroboros.Consensus.Storage.ChainDB.Impl.Types

type Rep (TraceOpenEvent blk) = D1 ('MetaData "TraceOpenEvent" "Ouroboros.Consensus.Storage.ChainDB.Impl.Types" "ouroboros-consensus-0.26.0.0-inplace" 'False) (((C1 ('MetaCons "StartedOpeningDB" 'PrefixI 'False) (U1TypeType) :+: C1 ('MetaCons "OpenedDB" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Point blk)) :*: S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Point blk)))) :+: (C1 ('MetaCons "ClosedDB" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Point blk)) :*: S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Point blk))) :+: C1 ('MetaCons "StartedOpeningImmutableDB" 'PrefixI 'False) (U1TypeType))) :+: ((C1 ('MetaCons "OpenedImmutableDB" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Point blk)) :*: S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ChunkNo)) :+: C1 ('MetaCons "StartedOpeningVolatileDB" 'PrefixI 'False) (U1TypeType)) :+: (C1 ('MetaCons "OpenedVolatileDB" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 MaxSlotNo)) :+: (C1 ('MetaCons "StartedOpeningLgrDB" 'PrefixI 'False) (U1TypeType) :+: C1 ('MetaCons "OpenedLgrDB" 'PrefixI 'False) (U1TypeType)))))

Methods

fromTraceOpenEvent blk → Rep (TraceOpenEvent blk) x #

toRep (TraceOpenEvent blk) x → TraceOpenEvent blk #

StandardHash blk ⇒ Show (TraceOpenEvent blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Storage.ChainDB.Impl.Types

Methods

showsPrecIntTraceOpenEvent blk → ShowS #

showTraceOpenEvent blk → String #

showList ∷ [TraceOpenEvent blk] → ShowS #

StandardHash blk ⇒ Eq (TraceOpenEvent blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Storage.ChainDB.Impl.Types

Methods

(==)TraceOpenEvent blk → TraceOpenEvent blk → Bool #

(/=)TraceOpenEvent blk → TraceOpenEvent blk → Bool #

type Rep (TraceOpenEvent blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Storage.ChainDB.Impl.Types

type Rep (TraceOpenEvent blk) = D1 ('MetaData "TraceOpenEvent" "Ouroboros.Consensus.Storage.ChainDB.Impl.Types" "ouroboros-consensus-0.26.0.0-inplace" 'False) (((C1 ('MetaCons "StartedOpeningDB" 'PrefixI 'False) (U1TypeType) :+: C1 ('MetaCons "OpenedDB" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Point blk)) :*: S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Point blk)))) :+: (C1 ('MetaCons "ClosedDB" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Point blk)) :*: S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Point blk))) :+: C1 ('MetaCons "StartedOpeningImmutableDB" 'PrefixI 'False) (U1TypeType))) :+: ((C1 ('MetaCons "OpenedImmutableDB" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Point blk)) :*: S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ChunkNo)) :+: C1 ('MetaCons "StartedOpeningVolatileDB" 'PrefixI 'False) (U1TypeType)) :+: (C1 ('MetaCons "OpenedVolatileDB" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 MaxSlotNo)) :+: (C1 ('MetaCons "StartedOpeningLgrDB" 'PrefixI 'False) (U1TypeType) :+: C1 ('MetaCons "OpenedLgrDB" 'PrefixI 'False) (U1TypeType)))))

data TracePipeliningEvent blk Source #

Constructors

SetTentativeHeader (Header blk) Enclosing

A new tentative header got set.

TrapTentativeHeader (Header blk)

The body of tentative block turned out to be invalid.

OutdatedTentativeHeader (Header blk)

We selected a new (better) chain, which cleared the previous tentative header.

data TraceValidationEvent blk Source #

Constructors

InvalidBlock (ExtValidationError blk) (RealPoint blk)

A point was found to be invalid.

ValidCandidate (AnchoredFragment (Header blk))

A candidate chain was valid.

UpdateLedgerDbTraceEvent (TraceValidateEvent blk) 

Instances

Instances details
Generic (TraceValidationEvent blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Storage.ChainDB.Impl.Types

Associated Types

type Rep (TraceValidationEvent blk) 
Instance details

Defined in Ouroboros.Consensus.Storage.ChainDB.Impl.Types

type Rep (TraceValidationEvent blk) = D1 ('MetaData "TraceValidationEvent" "Ouroboros.Consensus.Storage.ChainDB.Impl.Types" "ouroboros-consensus-0.26.0.0-inplace" 'False) (C1 ('MetaCons "InvalidBlock" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (ExtValidationError blk)) :*: S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (RealPoint blk))) :+: (C1 ('MetaCons "ValidCandidate" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (AnchoredFragment (Header blk)))) :+: C1 ('MetaCons "UpdateLedgerDbTraceEvent" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (TraceValidateEvent blk)))))
(Show (Header blk), LedgerSupportsProtocol blk) ⇒ Show (TraceValidationEvent blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Storage.ChainDB.Impl.Types

(Eq (Header blk), LedgerSupportsProtocol blk) ⇒ Eq (TraceValidationEvent blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Storage.ChainDB.Impl.Types

type Rep (TraceValidationEvent blk) Source # 
Instance details

Defined in Ouroboros.Consensus.Storage.ChainDB.Impl.Types

type Rep (TraceValidationEvent blk) = D1 ('MetaData "TraceValidationEvent" "Ouroboros.Consensus.Storage.ChainDB.Impl.Types" "ouroboros-consensus-0.26.0.0-inplace" 'False) (C1 ('MetaCons "InvalidBlock" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (ExtValidationError blk)) :*: S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (RealPoint blk))) :+: (C1 ('MetaCons "ValidCandidate" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (AnchoredFragment (Header blk)))) :+: C1 ('MetaCons "UpdateLedgerDbTraceEvent" 'PrefixI 'False) (S1 ('MetaSel ('NothingMaybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (TraceValidateEvent blk)))))

Re-exported for convenience

newtype RelativeMountPoint Source #

A relative path for a MountPoint

The root is determined by context.

type ImmutableDbSerialiseConstraints blk = (EncodeDisk blk blk, DecodeDisk blk (ByteString → blk), DecodeDiskDep (NestedCtxt Header) blk, ReconstructNestedCtxt Header blk, HasBinaryBlockInfo blk) Source #

EncodeDisk and DecodeDisk constraints needed for the ImmutableDB.

type LedgerDbSerialiseConstraints blk = (Serialise (HeaderHash blk), EncodeDisk blk (LedgerState blk EmptyMK), DecodeDisk blk (LedgerState blk EmptyMK), EncodeDisk blk (AnnTip blk), DecodeDisk blk (AnnTip blk), EncodeDisk blk (ChainDepState (BlockProtocol blk)), DecodeDisk blk (ChainDepState (BlockProtocol blk)), MemPack (TxIn (LedgerState blk)), SerializeTablesWithHint (LedgerState blk), IndexedMemPack (LedgerState blk EmptyMK) (TxOut (LedgerState blk))) Source #

Serialization constraints required by the LedgerDB to be properly instantiated with a blk.

type VolatileDbSerialiseConstraints blk = (EncodeDisk blk blk, DecodeDisk blk (ByteString → blk), DecodeDiskDep (NestedCtxt Header) blk, HasNestedContent Header blk, HasBinaryBlockInfo blk) Source #

EncodeDisk and DecodeDisk constraints needed for the VolatileDB.

Internals for testing purposes

data Internal (m ∷ TypeType) blk Source #

Constructors

Internal 

Fields

  • intCopyToImmutableDB ∷ m (WithOrigin SlotNo)

    Copy the blocks older than k from to the VolatileDB to the ImmutableDB and update the in-memory chain fragment correspondingly.

    The SlotNo of the tip of the ImmutableDB after copying the blocks is returned. This can be used for a garbage collection on the VolatileDB.

  • intGarbageCollectSlotNo → m ()

    Perform garbage collection for blocks <= the given SlotNo.

  • intTryTakeSnapshot ∷ m ()

    Write a new LedgerDB snapshot to disk and remove the oldest one(s).

  • intAddBlockRunner ∷ m Void

    Start the loop that adds blocks to the ChainDB retrieved from the queue populated by addBlock. Execute this loop in a separate thread.

  • intKillBgThreadsStrictTVar m (m ())

    A handle to kill the background threads.