![]() |
Bitcoin Core 32.99.0
P2P Digital Currency
|
TxIndex is used to look up transactions included in the blockchain by hash. More...
#include <txindex.h>
Classes | |
| class | DB |
| Access to the txindex database (indexes/txindex/) More... | |
Public Member Functions | |
| TxIndex (std::unique_ptr< interfaces::Chain > chain, size_t n_cache_size, bool f_memory=false, bool f_wipe=false) | |
| Constructs the index, which becomes available to be queried. | |
| virtual | ~TxIndex () override |
| std::optional< TxIndexResult > | FindTx (const Txid &tx_hash) const |
| Look up a transaction by hash. | |
Public Member Functions inherited from BaseIndex | |
| BaseIndex (std::unique_ptr< interfaces::Chain > chain, std::string name, std::string thread_name) | |
| virtual | ~BaseIndex () |
| Destructor interrupts sync thread if running and blocks until it exits. | |
| const std::string & | GetName () const LIFETIMEBOUND |
| Get the name of the index for display in logs. | |
| virtual interfaces::Chain::NotifyOptions | CustomOptions () |
| Return custom notification options for index. | |
| bool BlockUntilSyncedToCurrentChain() const LOCKS_EXCLUDED(void | Interrupt () |
| Blocks the current thread until the index is caught up to the current state of the block chain. | |
| bool | Init () |
| Initializes the sync state and registers the instance to the validation interface so that it stays in sync with blockchain updates. | |
| bool | StartBackgroundSync () |
| Starts the initial sync process on a background thread. | |
| void | Sync () |
| Sync the index with the block index starting from the current best block. | |
| void | Stop () |
| Stops the instance from staying in sync with blockchain updates. | |
| IndexSummary | GetSummary () const |
| Get a summary of the index and its state. | |
Protected Member Functions | |
| bool | CustomAppend (const interfaces::BlockInfo &block) override |
| Write update index entries for a newly connected block. | |
| BaseIndex::DB & | GetDB () const override |
Protected Member Functions inherited from BaseIndex | |
| void | BlockConnected (const kernel::ChainstateRole &role, const std::shared_ptr< const CBlock > &block, const CBlockIndex *pindex) override |
| Notifies listeners of a block being connected. | |
| void | ChainStateFlushed (const kernel::ChainstateRole &role, const CBlockLocator &locator) override |
| Notifies listeners of the new active block chain on-disk. | |
| virtual bool | CustomInit (const std::optional< interfaces::BlockRef > &block) |
| Initialize internal state from the database and block index. | |
| virtual bool | CustomCommit (CDBBatch &batch) |
| Virtual method called internally by Commit that can be overridden to atomically commit more index state. | |
| virtual bool | CustomRemove (const interfaces::BlockInfo &block) |
| Rewind index by one block during a chain reorg. | |
| void | SetBestBlockIndex (const CBlockIndex *block) |
| Update the internal best block index as well as the prune lock. | |
Protected Member Functions inherited from CValidationInterface | |
| ~CValidationInterface ()=default | |
| Protected destructor so that instances can only be deleted by derived classes. | |
| virtual void | UpdatedBlockTip (const CBlockIndex *pindexNew, const CBlockIndex *pindexFork, bool fInitialDownload) |
| Notifies listeners when the block chain tip advances. | |
| virtual void | ActiveTipChange (const CBlockIndex &new_tip, bool is_ibd) |
| Notifies listeners any time the block chain tip changes, synchronously. | |
| virtual void | TransactionAddedToMempool (const NewMempoolTransactionInfo &tx, uint64_t mempool_sequence) |
| Notifies listeners of a transaction having been added to mempool. | |
| virtual void | TransactionRemovedFromMempool (const CTransactionRef &tx, MemPoolRemovalReason reason, uint64_t mempool_sequence) |
| Notifies listeners of a transaction leaving mempool. | |
| virtual void | MempoolTransactionsRemovedForBlock (const std::shared_ptr< const CBlock > &block, const std::vector< RemovedMempoolTransactionInfo > &txs_removed_for_block, unsigned int block_height) |
| virtual void | BlockDisconnected (const std::shared_ptr< const CBlock > &block, const CBlockIndex *pindex) |
| Notifies listeners of a block being disconnected Provides the block that was disconnected. | |
| virtual void | BlockChecked (const std::shared_ptr< const CBlock > &, const BlockValidationState &) |
| Notifies listeners of a block validation result. | |
| virtual void | NewPoWValidBlock (const CBlockIndex *pindex, const std::shared_ptr< const CBlock > &block) |
| Notifies listeners that a block which builds directly on our current tip has been received and connected to the headers tree, though not validated yet. | |
Private Member Functions | |
| bool | AllowPrune () const override |
| std::optional< TxIndexResult > | FindLegacyTx (const Txid &tx_hash) const |
| Look up a transaction among the legacy (full-txid) entries. | |
Private Attributes | |
| const std::unique_ptr< DB > | m_db |
Friends | |
| class | txindex_tests::TxIndexTest |
Additional Inherited Members | |
Protected Attributes inherited from BaseIndex | |
| std::unique_ptr< interfaces::Chain > | m_chain |
| Chainstate * | m_chainstate {nullptr} |
| const std::string | m_name |
| const std::string | m_thread_name |
TxIndex is used to look up transactions included in the blockchain by hash.
The index is written to a LevelDB database and records the block sequence number and serialized block offset of each transaction by transaction hash.
|
explicit |
Constructs the index, which becomes available to be queried.
Definition at line 138 of file txindex.cpp.
|
overridevirtualdefault |
|
inlineoverrideprivatevirtual |
|
overrideprotectedvirtual |
Write update index entries for a newly connected block.
Reimplemented from BaseIndex.
Definition at line 150 of file txindex.cpp.
|
private |
Look up a transaction among the legacy (full-txid) entries.
Definition at line 238 of file txindex.cpp.
| std::optional< TxIndexResult > TxIndex::FindTx | ( | const Txid & | tx_hash | ) | const |
Look up a transaction by hash.
| [in] | tx_hash | The hash of the transaction to be returned. |
Whether this candidate's block is currently in the active chain. Active chain candidates are attempted first, so duplicate entries in both active and stale blocks will always return the active block hash.
Definition at line 170 of file txindex.cpp.
|
overrideprotectedvirtual |
Implements BaseIndex.
Definition at line 160 of file txindex.cpp.