17 std::optional<CDiskBlockIndex> disk_block_index = ConsumeDeserializable<CDiskBlockIndex>(fuzzed_data_provider);
18 if (!disk_block_index) {
23 disk_block_index->phashBlock = &zero;
26 (void)disk_block_index->ConstructBlockHash();
27 (void)disk_block_index->GetBlockPos();
28 (void)disk_block_index->GetBlockTime();
29 (void)disk_block_index->GetBlockTimeMax();
30 (void)disk_block_index->GetMedianTimePast();
31 (void)disk_block_index->GetUndoPos();
32 (void)disk_block_index->HaveNumChainTxs();
33 (void)disk_block_index->IsValid();
36 const CBlockHeader block_header = disk_block_index->GetBlockHeader();
41 const BlockStatus block_status = fuzzed_data_provider.PickValueInArray({
64 block_index.phashBlock = &zero;
65 (void)block_index.GetBlockHash();
66 (void)block_index.ToString();
descends from failed block
Reserved (was BLOCK_VALID_HEADER).
All parent headers found, difficulty matches, timestamp >= median previous, checkpoint.
stage after last reached validness failed
Only first tx is coinbase, 2 <= coinbase input script length <= 100, transactions valid...
#define LIMITED_WHILE(condition, limit)
Can be used to limit a theoretically unbounded loop.
undo data available in rev*.dat
Outputs do not overspend inputs, no double spends, coinbase output ok, no immature coinbase spends...
Scripts & signatures ok. Implies all parents are either at least VALID_SCRIPTS, or are ASSUMED_VALID...
void BuildSkip()
Build the skiplist pointer for this entry.
Used to marshal pointers into hashes for db storage.
#define WITH_LOCK(cs, code)
Run code while locking a mutex.
block data in blk*.dat was received with a witness-enforcing client
The block chain is a tree shaped structure starting with the genesis block at the root...
full block available in blk*.dat
RecursiveMutex cs_main
Mutex to guard access to validation specific variables, such as reading or changing the chainstate...