Safe Haskell | None |
---|---|
Language | Haskell2010 |
Ouroboros.Consensus.Storage.VolatileDB.Impl.Types
Synopsis
- mkBlocksPerFile ∷ Word32 → BlocksPerFile
- unBlocksPerFile ∷ BlocksPerFile → Word32
- data BlocksPerFile
- data BlockValidationPolicy
- data ParseError blk
- data TraceEvent blk
- = DBAlreadyClosed
- | BlockAlreadyHere (HeaderHash blk)
- | Truncate (ParseError blk) FsPath BlockOffset
- | InvalidFileNames [FsPath]
- | DBClosed
- newtype BlockOffset = BlockOffset {}
- newtype BlockSize = BlockSize {}
- type FileId = Int
- data InternalBlockInfo blk = InternalBlockInfo {
- ibiFile ∷ !FsPath
- ibiBlockOffset ∷ !BlockOffset
- ibiBlockSize ∷ !BlockSize
- ibiBlockInfo ∷ !(BlockInfo blk)
- ibiNestedCtxt ∷ !(SomeSecond (NestedCtxt Header) blk)
- type ReverseIndex blk = Map (HeaderHash blk) (InternalBlockInfo blk)
- type SuccessorsIndex blk = Map (ChainHash blk) (Set (HeaderHash blk))
Blocks per file
mkBlocksPerFile ∷ Word32 → BlocksPerFile Source #
Create a BlocksPerFile
.
PRECONDITION: the given number must be greater than 0, if not, this
function will throw an error
.
opaque
data BlocksPerFile Source #
The maximum number of blocks to store per file.
Instances
Block validation policy
data BlockValidationPolicy Source #
When block validation is enabled, the parser checks for each block a number of properties and stops parsing if it finds any invalid blocks.
Constructors
NoValidation | |
ValidateAll |
Instances
Parse error
data ParseError blk Source #
Note that we recover from the error, and thus never throw it as an
Exception
.
Defined here instead of in the Parser
module because TraceEvent
depends
on it.
Constructors
BlockReadErr ReadIncrementalErr | A block could not be parsed. |
BlockCorruptedErr (HeaderHash blk) | A block was corrupted, e.g., checking its signature and/or hash failed. |
DuplicatedBlock (HeaderHash blk) FsPath FsPath | A block with the same hash occurred twice in the VolatileDB files. We include the file in which it occurred first and the file in which it occured the second time. The two files can be the same. |
Instances
StandardHash blk ⇒ Show (ParseError blk) Source # | |
Defined in Ouroboros.Consensus.Storage.VolatileDB.Impl.Types Methods showsPrec ∷ Int → ParseError blk → ShowS # show ∷ ParseError blk → String # showList ∷ [ParseError blk] → ShowS # | |
StandardHash blk ⇒ Eq (ParseError blk) Source # | |
Defined in Ouroboros.Consensus.Storage.VolatileDB.Impl.Types Methods (==) ∷ ParseError blk → ParseError blk → Bool # (/=) ∷ ParseError blk → ParseError blk → Bool # |
Tracing
data TraceEvent blk Source #
Constructors
DBAlreadyClosed | |
BlockAlreadyHere (HeaderHash blk) | |
Truncate (ParseError blk) FsPath BlockOffset | |
InvalidFileNames [FsPath] | |
DBClosed |
Instances
Generic (TraceEvent blk) Source # | |||||
Defined in Ouroboros.Consensus.Storage.VolatileDB.Impl.Types Associated Types
Methods from ∷ TraceEvent blk → Rep (TraceEvent blk) x # to ∷ Rep (TraceEvent blk) x → TraceEvent blk # | |||||
StandardHash blk ⇒ Show (TraceEvent blk) Source # | |||||
Defined in Ouroboros.Consensus.Storage.VolatileDB.Impl.Types Methods showsPrec ∷ Int → TraceEvent blk → ShowS # show ∷ TraceEvent blk → String # showList ∷ [TraceEvent blk] → ShowS # | |||||
StandardHash blk ⇒ Eq (TraceEvent blk) Source # | |||||
Defined in Ouroboros.Consensus.Storage.VolatileDB.Impl.Types Methods (==) ∷ TraceEvent blk → TraceEvent blk → Bool # (/=) ∷ TraceEvent blk → TraceEvent blk → Bool # | |||||
type Rep (TraceEvent blk) Source # | |||||
Defined in Ouroboros.Consensus.Storage.VolatileDB.Impl.Types type Rep (TraceEvent blk) = D1 ('MetaData "TraceEvent" "Ouroboros.Consensus.Storage.VolatileDB.Impl.Types" "ouroboros-consensus-0.26.0.0-inplace" 'False) ((C1 ('MetaCons "DBAlreadyClosed" 'PrefixI 'False) (U1 ∷ Type → Type) :+: C1 ('MetaCons "BlockAlreadyHere" 'PrefixI 'False) (S1 ('MetaSel ('Nothing ∷ Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (HeaderHash blk)))) :+: (C1 ('MetaCons "Truncate" 'PrefixI 'False) (S1 ('MetaSel ('Nothing ∷ Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (ParseError blk)) :*: (S1 ('MetaSel ('Nothing ∷ Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 FsPath) :*: S1 ('MetaSel ('Nothing ∷ Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 BlockOffset))) :+: (C1 ('MetaCons "InvalidFileNames" 'PrefixI 'False) (S1 ('MetaSel ('Nothing ∷ Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [FsPath])) :+: C1 ('MetaCons "DBClosed" 'PrefixI 'False) (U1 ∷ Type → Type)))) |
Internal indices
newtype BlockOffset Source #
The offset at which a block is stored in a file.
Constructors
BlockOffset | |
Fields |
Instances
Generic BlockOffset Source # | |||||
Defined in Ouroboros.Consensus.Storage.VolatileDB.Impl.Types Associated Types
| |||||
Show BlockOffset Source # | |||||
Defined in Ouroboros.Consensus.Storage.VolatileDB.Impl.Types Methods showsPrec ∷ Int → BlockOffset → ShowS # show ∷ BlockOffset → String # showList ∷ [BlockOffset] → ShowS # | |||||
Eq BlockOffset Source # | |||||
NoThunks BlockOffset Source # | |||||
type Rep BlockOffset Source # | |||||
Defined in Ouroboros.Consensus.Storage.VolatileDB.Impl.Types type Rep BlockOffset = D1 ('MetaData "BlockOffset" "Ouroboros.Consensus.Storage.VolatileDB.Impl.Types" "ouroboros-consensus-0.26.0.0-inplace" 'True) (C1 ('MetaCons "BlockOffset" 'PrefixI 'True) (S1 ('MetaSel ('Just "unBlockOffset") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word64))) |
Constructors
BlockSize | |
Fields |
Instances
Generic BlockSize Source # | |||||
Defined in Ouroboros.Consensus.Storage.VolatileDB.Impl.Types Associated Types
| |||||
Show BlockSize Source # | |||||
Eq BlockSize Source # | |||||
NoThunks BlockSize Source # | |||||
type Rep BlockSize Source # | |||||
data InternalBlockInfo blk Source #
The internal information the db keeps for each block.
Constructors
InternalBlockInfo | |
Fields
|
Instances
Generic (InternalBlockInfo blk) Source # | |||||
Defined in Ouroboros.Consensus.Storage.VolatileDB.Impl.Types Associated Types
Methods from ∷ InternalBlockInfo blk → Rep (InternalBlockInfo blk) x # to ∷ Rep (InternalBlockInfo blk) x → InternalBlockInfo blk # | |||||
(StandardHash blk, Typeable blk) ⇒ NoThunks (InternalBlockInfo blk) Source # | |||||
type Rep (InternalBlockInfo blk) Source # | |||||
Defined in Ouroboros.Consensus.Storage.VolatileDB.Impl.Types type Rep (InternalBlockInfo blk) = D1 ('MetaData "InternalBlockInfo" "Ouroboros.Consensus.Storage.VolatileDB.Impl.Types" "ouroboros-consensus-0.26.0.0-inplace" 'False) (C1 ('MetaCons "InternalBlockInfo" 'PrefixI 'True) ((S1 ('MetaSel ('Just "ibiFile") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 FsPath) :*: S1 ('MetaSel ('Just "ibiBlockOffset") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 BlockOffset)) :*: (S1 ('MetaSel ('Just "ibiBlockSize") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 BlockSize) :*: (S1 ('MetaSel ('Just "ibiBlockInfo") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (BlockInfo blk)) :*: S1 ('MetaSel ('Just "ibiNestedCtxt") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (SomeSecond (NestedCtxt Header) blk)))))) |
type ReverseIndex blk = Map (HeaderHash blk) (InternalBlockInfo blk) Source #
We map the header hash of each block to the InternalBlockInfo
.
type SuccessorsIndex blk = Map (ChainHash blk) (Set (HeaderHash blk)) Source #
For each block, we store the set of all blocks which have this block as a predecessor (set of successors).