Bitcoin Core 22.99.0
P2P Digital Currency
blockfilter.cpp
Go to the documentation of this file.
1// Copyright (c) 2019 The Bitcoin Core developers
2// Distributed under the MIT software license, see the accompanying
3// file COPYING or http://www.opensource.org/licenses/mit-license.php.
4
6
7#include <chainparams.h>
8#include <node/blockstorage.h>
9#include <validation.h>
10
11
12bool ComputeFilter(BlockFilterType filter_type, const CBlockIndex* block_index, BlockFilter& filter)
13{
14 CBlock block;
15 if (!ReadBlockFromDisk(block, block_index->GetBlockPos(), Params().GetConsensus())) {
16 return false;
17 }
18
19 CBlockUndo block_undo;
20 if (block_index->nHeight > 0 && !UndoReadFromDisk(block_undo, block_index)) {
21 return false;
22 }
23
24 filter = BlockFilter(filter_type, block, block_undo);
25 return true;
26}
27
BlockFilterType
Definition: blockfilter.h:89
bool UndoReadFromDisk(CBlockUndo &blockundo, const CBlockIndex *pindex)
bool ReadBlockFromDisk(CBlock &block, const FlatFilePos &pos, const Consensus::Params &consensusParams)
Functions for disk access for blocks.
const CChainParams & Params()
Return the currently selected parameters.
Complete block filter struct as defined in BIP 157.
Definition: blockfilter.h:111
Definition: block.h:63
The block chain is a tree shaped structure starting with the genesis block at the root,...
Definition: chain.h:146
FlatFilePos GetBlockPos() const
Definition: chain.h:223
int nHeight
height of the entry in the chain. The genesis block has height 0
Definition: chain.h:158
Undo information for a CBlock.
Definition: undo.h:64
bool ComputeFilter(BlockFilterType filter_type, const CBlockIndex *block_index, BlockFilter &filter)
Definition: blockfilter.cpp:12