pub enum BlockValidationResult {
BLOCK_RESULT_UNSET,
BLOCK_CONSENSUS,
BLOCK_RECENT_CONSENSUS_CHANGE,
BLOCK_CACHED_INVALID,
BLOCK_INVALID_HEADER,
BLOCK_MUTATED,
BLOCK_MISSING_PREV,
BLOCK_INVALID_PREV,
BLOCK_TIME_FUTURE,
BLOCK_CHECKPOINT,
}Expand description
| 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. |
Variants§
BLOCK_RESULT_UNSET
| initial value. Block has not yet been | rejected |
BLOCK_CONSENSUS
| invalid by consensus rules (excluding | any below reasons) |
BLOCK_RECENT_CONSENSUS_CHANGE
| Invalid by a change to consensus rules | more recent than SegWit. | | Currently unused as there are no such | consensus rule changes, and any download | sources realistically need to support | SegWit in order to provide useful data, | so differentiating between always-invalid | and invalid-by-pre-SegWit-soft-fork | is uninteresting. |
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_CHECKPOINT
| the block failed to meet one of our checkpoints |
Trait Implementations§
source§impl Clone for BlockValidationResult
impl Clone for BlockValidationResult
source§fn clone(&self) -> BlockValidationResult
fn clone(&self) -> BlockValidationResult
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moresource§impl Debug for BlockValidationResult
impl Debug for BlockValidationResult
source§impl Default for BlockValidationResult
impl Default for BlockValidationResult
source§impl PartialEq<BlockValidationResult> for BlockValidationResult
impl PartialEq<BlockValidationResult> for BlockValidationResult
source§fn eq(&self, other: &BlockValidationResult) -> bool
fn eq(&self, other: &BlockValidationResult) -> bool
self and other values to be equal, and is used
by ==.impl Eq for BlockValidationResult
impl StructuralEq for BlockValidationResult
impl StructuralPartialEq for BlockValidationResult
Auto Trait Implementations§
impl RefUnwindSafe for BlockValidationResult
impl Send for BlockValidationResult
impl Sync for BlockValidationResult
impl Unpin for BlockValidationResult
impl UnwindSafe for BlockValidationResult
Blanket Implementations§
§impl<T, U> CastInto<U> for Twhere
U: CastFrom<T>,
impl<T, U> CastInto<U> for Twhere U: CastFrom<T>,
source§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.