Bitcoin
Classes | Public Member Functions | Protected Member Functions | Private Attributes | List of all members
TxIndex Class Referencefinal

#include <txindex.h>

Inheritance diagram for TxIndex:
BaseIndex CValidationInterface

Classes

class  DB
 

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 uint256 &tx_hash, uint256 &block_hash, CTransactionRef &tx) const
 
- Public Member Functions inherited from BaseIndex
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
 Override base class init to migrate from old database. More...
 
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, const std::vector< CTransactionRef > &txn_conflicted) override
 
void ChainStateFlushed (const CBlockLocator &locator) override
 
virtual bool CommitInternal (CDBBatch &batch)
 
virtual bool Rewind (const CBlockIndex *current_tip, const CBlockIndex *new_tip)
 
- Protected Member Functions inherited from CValidationInterface
 ~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 Attributes

const std::unique_ptr< DBm_db
 

Detailed Description

TxIndex is used to look up transactions included in the blockchain by hash. The index is written to a LevelDB database and records the filesystem location of each transaction by transaction hash.

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.

◆ ~TxIndex()

TxIndex::~TxIndex ( )
overridevirtual

Member Function Documentation

◆ FindTx()

bool TxIndex::FindTx ( const uint256 tx_hash,
uint256 block_hash,
CTransactionRef tx 
) const

Look up a transaction by hash.

Parameters
[in]tx_hashThe hash 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

◆ GetDB()

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

Implements BaseIndex.

◆ GetName()

const char* TxIndex::GetName ( ) const
inlineoverrideprotectedvirtual

Get the name of the index for display in logs.

Implements BaseIndex.

◆ Init()

bool TxIndex::Init ( )
overrideprotectedvirtual

Override base class init to migrate from old database.

Reimplemented from BaseIndex.

◆ WriteBlock()

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

Write update index entries for a newly connected block.

Reimplemented from BaseIndex.

Member Data Documentation

◆ m_db

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

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