Bitcoin ABC  0.28.12
P2P Digital Currency
Classes | Public Member Functions | Protected Member Functions | Private Attributes | List of all members
TxIndex Class Referencefinal

TxIndex is used to look up transactions included in the blockchain by ID. More...

#include <txindex.h>

Inheritance diagram for TxIndex:
[legend]
Collaboration diagram for TxIndex:
[legend]

Classes

class  DB
 Access to the txindex database (indexes/txindex/) More...
 

Public Member Functions

 TxIndex (size_t n_cache_size, bool f_memory=false, bool f_wipe=false)
 Constructs the index, which becomes available to be queried. More...
 
virtual ~TxIndex () override
 
bool FindTx (const TxId &txid, BlockHash &block_hash, CTransactionRef &tx) const
 Look up a transaction by identifier. More...
 
- Public Member Functions inherited from BaseIndex
virtual ~BaseIndex ()
 Destructor interrupts sync thread if running and blocks until it exits. More...
 
bool Start (Chainstate &active_chainstate)
 Start initializes the sync state and registers the instance as a ValidationInterface so that it stays in sync with blockchain updates. More...
 
void Stop ()
 Stops the instance from staying in sync with blockchain updates. More...
 
IndexSummary GetSummary () const
 Get a summary of the index and its state. More...
 

Protected Member Functions

bool WriteBlock (const CBlock &block, const CBlockIndex *pindex) override
 Write update index entries for a newly connected block. More...
 
BaseIndex::DBGetDB () const override
 
const char * GetName () const override
 Get the name of the index for display in logs. More...
 
- Protected Member Functions inherited from BaseIndex
void BlockConnected (const std::shared_ptr< const CBlock > &block, const CBlockIndex *pindex) override
 Notifies listeners of a block being connected. More...
 
void ChainStateFlushed (const CBlockLocator &locator) override
 Notifies listeners of the new active block chain on-disk. More...
 
const CBlockIndexCurrentIndex ()
 
virtual bool Init ()
 Initialize internal state from the database and block index. More...
 
virtual bool CommitInternal (CDBBatch &batch)
 Virtual method called internally by Commit that can be overridden to atomically commit more index state. More...
 
virtual bool Rewind (const CBlockIndex *current_tip, const CBlockIndex *new_tip)
 Rewind index to an earlier chain tip during a chain reorg. More...
 
- Protected Member Functions inherited from CValidationInterface
 ~CValidationInterface ()=default
 Protected destructor so that instances can only be deleted by derived classes. More...
 
virtual void UpdatedBlockTip (const CBlockIndex *pindexNew, const CBlockIndex *pindexFork, bool fInitialDownload)
 Notifies listeners when the block chain tip advances. More...
 
virtual void TransactionAddedToMempool (const CTransactionRef &tx, std::shared_ptr< const std::vector< Coin >> spent_coins, uint64_t mempool_sequence)
 Notifies listeners of a transaction having been added to mempool. More...
 
virtual void TransactionRemovedFromMempool (const CTransactionRef &tx, MemPoolRemovalReason reason, uint64_t mempool_sequence)
 Notifies listeners of a transaction leaving mempool. More...
 
virtual void BlockDisconnected (const std::shared_ptr< const CBlock > &block, const CBlockIndex *pindex)
 Notifies listeners of a block being disconnected. More...
 
virtual void BlockChecked (const CBlock &, const BlockValidationState &)
 Notifies listeners of a block validation result. More...
 
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. More...
 
virtual void BlockFinalized (const CBlockIndex *pindex)
 

Private Attributes

const std::unique_ptr< DBm_db
 

Additional Inherited Members

- Protected Attributes inherited from BaseIndex
Chainstatem_chainstate {nullptr}
 

Detailed Description

TxIndex is used to look up transactions included in the blockchain by ID.

The index is written to a LevelDB database and records the filesystem location of each transaction by transaction ID.

Definition at line 22 of file txindex.h.

Constructor & Destructor Documentation

◆ TxIndex()

TxIndex::TxIndex ( size_t  n_cache_size,
bool  f_memory = false,
bool  f_wipe = false 
)
explicit

Constructs the index, which becomes available to be queried.

Definition at line 50 of file txindex.cpp.

◆ ~TxIndex()

TxIndex::~TxIndex ( )
overridevirtual

Definition at line 53 of file txindex.cpp.

Member Function Documentation

◆ FindTx()

bool TxIndex::FindTx ( const TxId txid,
BlockHash block_hash,
CTransactionRef tx 
) const

Look up a transaction by identifier.

Parameters
[in]txidThe ID of the transaction to be returned.
[out]block_hashThe hash of the block the transaction is found in.
[out]txThe transaction itself.
Returns
true if transaction is found, false otherwise

Definition at line 76 of file txindex.cpp.

Here is the call graph for this function:

◆ GetDB()

BaseIndex::DB & TxIndex::GetDB ( ) const
overrideprotectedvirtual

Implements BaseIndex.

Definition at line 72 of file txindex.cpp.

◆ GetName()

const char* TxIndex::GetName ( ) const
inlineoverrideprotectedvirtual

Get the name of the index for display in logs.

Implements BaseIndex.

Definition at line 34 of file txindex.h.

◆ WriteBlock()

bool TxIndex::WriteBlock ( const CBlock block,
const CBlockIndex pindex 
)
overrideprotectedvirtual

Write update index entries for a newly connected block.

Reimplemented from BaseIndex.

Definition at line 55 of file txindex.cpp.

Here is the call graph for this function:

Member Data Documentation

◆ m_db

const std::unique_ptr<DB> TxIndex::m_db
private

Definition at line 27 of file txindex.h.


The documentation for this class was generated from the following files: