ouroboros-consensus-0.21.0.0: Consensus layer for the Ouroboros blockchain protocol
Safe HaskellSafe-Inferred
LanguageHaskell2010

Ouroboros.Consensus.Storage.ImmutableDB.Impl.Validation

Synopsis

Documentation

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

validateAndReopen ∷ ∀ m blk h. (IOLike m, GetPrevHash blk, HasBinaryBlockInfo blk, DecodeDisk blk (ByteString → blk), ConvertRawHash blk, Eq h, HasCallStack) ⇒ ValidateEnv m blk h → ResourceRegistry m → ValidationPolicyWithTempRegistry (OpenState m blk h) m (OpenState m blk h) Source #

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

Exported for testing purposes

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.

reconstructPrimaryIndex ∷ ∀ blk. (ConvertRawHash blk, HasCallStack) ⇒ Proxy blk → ChunkInfoShouldBeFinalisedChunkNo → [BlockOrEBB] → PrimaryIndex Source #

Reconstruct a PrimaryIndex based on a list of Entrys.