BlockValidationResult

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

NameDescription
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