Bitcoin
|
#include <blockfilterindex.h>
Public Member Functions | |
BlockFilterIndex (BlockFilterType filter_type, size_t n_cache_size, bool f_memory=false, bool f_wipe=false) | |
BlockFilterType | GetFilterType () const |
bool | LookupFilter (const CBlockIndex *block_index, BlockFilter &filter_out) const |
bool | LookupFilterHeader (const CBlockIndex *block_index, uint256 &header_out) const |
bool | LookupFilterRange (int start_height, const CBlockIndex *stop_index, std::vector< BlockFilter > &filters_out) const |
bool | LookupFilterHashRange (int start_height, const CBlockIndex *stop_index, std::vector< uint256 > &hashes_out) const |
![]() | |
virtual | ~BaseIndex () |
Destructor interrupts sync thread if running and blocks until it exits. More... | |
bool | BlockUntilSyncedToCurrentChain () |
void | Interrupt () |
void | Start () |
void | Stop () |
Stops the instance from staying in sync with blockchain updates. More... | |
Protected Member Functions | |
bool | Init () override |
Initialize internal state from the database and block index. More... | |
bool | CommitInternal (CDBBatch &batch) override |
bool | WriteBlock (const CBlock &block, const CBlockIndex *pindex) override |
Write update index entries for a newly connected block. More... | |
bool | Rewind (const CBlockIndex *current_tip, const CBlockIndex *new_tip) override |
BaseIndex::DB & | GetDB () const override |
const char * | GetName () const override |
Get the name of the index for display in logs. More... | |
![]() | |
void | BlockConnected (const std::shared_ptr< const CBlock > &block, const CBlockIndex *pindex, const std::vector< CTransactionRef > &txn_conflicted) override |
void | ChainStateFlushed (const CBlockLocator &locator) override |
![]() | |
~CValidationInterface ()=default | |
virtual void | UpdatedBlockTip (const CBlockIndex *pindexNew, const CBlockIndex *pindexFork, bool fInitialDownload) |
virtual void | TransactionAddedToMempool (const CTransactionRef &ptxn) |
virtual void | TransactionRemovedFromMempool (const CTransactionRef &ptx) |
virtual void | BlockDisconnected (const std::shared_ptr< const CBlock > &block) |
virtual void | BlockChecked (const CBlock &, const CValidationState &) |
virtual void | NewPoWValidBlock (const CBlockIndex *pindex, const std::shared_ptr< const CBlock > &block) |
friend | void ::RegisterValidationInterface (CValidationInterface *) |
friend | void ::UnregisterValidationInterface (CValidationInterface *) |
friend | void ::UnregisterAllValidationInterfaces () |
Private Member Functions | |
bool | ReadFilterFromDisk (const FlatFilePos &pos, BlockFilter &filter) const |
size_t | WriteFilterToDisk (FlatFilePos &pos, const BlockFilter &filter) |
Private Attributes | |
BlockFilterType | m_filter_type |
std::string | m_name |
std::unique_ptr< BaseIndex::DB > | m_db |
FlatFilePos | m_next_filter_pos |
std::unique_ptr< FlatFileSeq > | m_filter_fileseq |
BlockFilterIndex is used to store and retrieve block filters, hashes, and headers for a range of blocks by height. An index is constructed for each supported filter type with its own database (ie. filter data for different types are stored in separate databases).
This index is used to serve BIP 157 net requests.
|
explicit |
Constructs the index, which becomes available to be queried.
|
overrideprotectedvirtual |
Virtual method called internally by Commit that can be overridden to atomically commit more index state.
Reimplemented from BaseIndex.
|
inlineoverrideprotectedvirtual |
Implements BaseIndex.
|
inline |
|
inlineoverrideprotectedvirtual |
Get the name of the index for display in logs.
Implements BaseIndex.
|
overrideprotectedvirtual |
Initialize internal state from the database and block index.
Reimplemented from BaseIndex.
bool BlockFilterIndex::LookupFilter | ( | const CBlockIndex * | block_index, |
BlockFilter & | filter_out | ||
) | const |
Get a single filter by block.
bool BlockFilterIndex::LookupFilterHashRange | ( | int | start_height, |
const CBlockIndex * | stop_index, | ||
std::vector< uint256 > & | hashes_out | ||
) | const |
Get a range of filter hashes between two heights on a chain.
bool BlockFilterIndex::LookupFilterHeader | ( | const CBlockIndex * | block_index, |
uint256 & | header_out | ||
) | const |
Get a single filter header by block.
bool BlockFilterIndex::LookupFilterRange | ( | int | start_height, |
const CBlockIndex * | stop_index, | ||
std::vector< BlockFilter > & | filters_out | ||
) | const |
Get a range of filters between two heights on a chain.
|
private |
|
overrideprotectedvirtual |
Rewind index to an earlier chain tip during a chain reorg. The tip must be an ancestor of the current best block.
Reimplemented from BaseIndex.
|
overrideprotectedvirtual |
Write update index entries for a newly connected block.
Reimplemented from BaseIndex.
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |