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

Ouroboros.Consensus.Storage.ImmutableDB.Impl.Validation

Synopsis

Documentation

validateAndReopen Source #

Arguments

:: forall m blk h. (IOLike m, GetPrevHash blk, HasBinaryBlockInfo blk, DecodeDisk blk (ByteString -> blk), ConvertRawHash blk, Eq h, HasCallStack) 
=> ValidateEnv m blk h 
-> ResourceRegistry m

Not used for validation, only used to open a new index

-> ValidationPolicy 
-> WithTempRegistry (OpenState m blk h) m (OpenState m blk h) 

Perform validation as per the ValidationPolicy using validate and create an OpenState corresponding to its outcome using mkOpenState.

data ValidateEnv m blk h Source #

Bundle of arguments used most validation functions.

Note that we don't use Ouroboros.Consensus.Storage.ImmutableDB.Impl.Index because we are reading and manipulating index files in different ways, e.g., truncating them.

Constructors

ValidateEnv 

Fields

Exported for testing purposes

reconstructPrimaryIndex :: forall blk. (ConvertRawHash blk, HasCallStack) => Proxy blk -> ChunkInfo -> ShouldBeFinalised -> ChunkNo -> [BlockOrEBB] -> PrimaryIndex Source #

Reconstruct a PrimaryIndex based on a list of Entrys.

data ShouldBeFinalised Source #

Iff the chunk is the most recent chunk, it should not be finalised.

With finalising, we mean: if there are one or more empty slots at the end of the chunk, the primary index should be padded with offsets to indicate that these slots are empty. See backfill.