A "reason" why a block was invalid, suitable for determining whether the provider of the block should be banned/ignored/disconnected/etc. These are much more granular than the rejection codes, which may be more useful for some other use‐cases.

Synopsis

Declared in <consensus/validation.h>

enum class BlockValidationResult : int;

Members

Name

Description

BLOCK_RESULT_UNSET

initial value. Block has not yet been rejected

BLOCK_CONSENSUS

invalid by consensus rules (excluding any below reasons)

BLOCK_CACHED_INVALID

this block was cached as being invalid and we didn't store the reason why

BLOCK_INVALID_HEADER

invalid proof of work or time too old

BLOCK_MUTATED

the block's data didn't match the data committed to by the PoW

BLOCK_MISSING_PREV

We don't have the previous block the checked one is built on

BLOCK_INVALID_PREV

A block this one builds on is invalid

BLOCK_TIME_FUTURE

block timestamp was > 2 hours in the future (or our clock is bad)

BLOCK_HEADER_LOW_WORK

the block header may be on a too‐little‐work chain

Created with MrDocs