Bitcoin ABC 0.30.3
P2P Digital Currency
|
CoinStatsIndex maintains statistics on the UTXO set. More...
#include <coinstatsindex.h>
Public Member Functions | |
CoinStatsIndex (size_t n_cache_size, bool f_memory=false, bool f_wipe=false) | |
std::optional< kernel::CCoinsStats > | LookUpStats (const CBlockIndex *block_index) const |
Public Member Functions inherited from BaseIndex | |
virtual | ~BaseIndex () |
Destructor interrupts sync thread if running and blocks until it exits. More... | |
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. 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 | Init () override |
Initialize internal state from the database and block index. More... | |
bool | CommitInternal (CDBBatch &batch) override |
Virtual method called internally by Commit that can be overridden to atomically commit more index state. More... | |
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 |
Rewind index to an earlier chain tip during a chain reorg. More... | |
BaseIndex::DB & | GetDB () 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 CBlockIndex * | CurrentIndex () |
virtual bool | Init () |
Initialize internal state from the database and block index. More... | |
virtual bool | WriteBlock (const CBlock &block, const CBlockIndex *pindex) |
Write update index entries for a newly connected block. 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... | |
virtual DB & | GetDB () const =0 |
virtual const char * | GetName () const =0 |
Get the name of the index for display in logs. More... | |
void | SetBestBlockIndex (const CBlockIndex *block) |
Update the internal best block index as well as the prune lock. 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 | BlockConnected (const std::shared_ptr< const CBlock > &block, const CBlockIndex *pindex) |
Notifies listeners of a block being connected. More... | |
virtual void | BlockDisconnected (const std::shared_ptr< const CBlock > &block, const CBlockIndex *pindex) |
Notifies listeners of a block being disconnected. More... | |
virtual void | ChainStateFlushed (const CBlockLocator &locator) |
Notifies listeners of the new active block chain on-disk. 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) |
virtual void | BlockInvalidated (const CBlockIndex *pindex, const std::shared_ptr< const CBlock > &block) |
Private Member Functions | |
bool | ReverseBlock (const CBlock &block, const CBlockIndex *pindex) |
bool | AllowPrune () const override |
Private Attributes | |
std::string | m_name |
std::unique_ptr< BaseIndex::DB > | m_db |
MuHash3072 | m_muhash |
uint64_t | m_transaction_output_count {0} |
uint64_t | m_bogo_size {0} |
Amount | m_total_amount {Amount::zero()} |
Amount | m_total_subsidy {Amount::zero()} |
Amount | m_total_unspendable_amount {Amount::zero()} |
Amount | m_total_prevout_spent_amount {Amount::zero()} |
Amount | m_total_new_outputs_ex_coinbase_amount {Amount::zero()} |
Amount | m_total_coinbase_amount {Amount::zero()} |
Amount | m_total_unspendables_genesis_block {Amount::zero()} |
Amount | m_total_unspendables_bip30 {Amount::zero()} |
Amount | m_total_unspendables_scripts {Amount::zero()} |
Amount | m_total_unspendables_unclaimed_rewards {Amount::zero()} |
Additional Inherited Members | |
Protected Attributes inherited from BaseIndex | |
Chainstate * | m_chainstate {nullptr} |
CoinStatsIndex maintains statistics on the UTXO set.
Definition at line 21 of file coinstatsindex.h.
|
explicit |
|
inlineoverrideprivatevirtual |
Implements BaseIndex.
Definition at line 42 of file coinstatsindex.h.
|
overrideprotectedvirtual |
Virtual method called internally by Commit that can be overridden to atomically commit more index state.
Reimplemented from BaseIndex.
Definition at line 427 of file coinstatsindex.cpp.
|
inlineoverrideprotectedvirtual |
Implements BaseIndex.
Definition at line 54 of file coinstatsindex.h.
|
inlineoverrideprotectedvirtual |
Get the name of the index for display in logs.
Implements BaseIndex.
Definition at line 56 of file coinstatsindex.h.
|
overrideprotectedvirtual |
Initialize internal state from the database and block index.
Reimplemented from BaseIndex.
Definition at line 373 of file coinstatsindex.cpp.
std::optional< CCoinsStats > CoinStatsIndex::LookUpStats | ( | const CBlockIndex * | block_index | ) | const |
|
private |
Definition at line 435 of file coinstatsindex.cpp.
|
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.
Definition at line 282 of file coinstatsindex.cpp.
|
overrideprotectedvirtual |
Write update index entries for a newly connected block.
Reimplemented from BaseIndex.
Definition at line 113 of file coinstatsindex.cpp.
|
private |
Definition at line 28 of file coinstatsindex.h.
|
private |
Definition at line 24 of file coinstatsindex.h.
|
private |
Definition at line 26 of file coinstatsindex.h.
|
private |
Definition at line 23 of file coinstatsindex.h.
|
private |
Definition at line 29 of file coinstatsindex.h.
|
private |
Definition at line 34 of file coinstatsindex.h.
|
private |
Definition at line 33 of file coinstatsindex.h.
|
private |
Definition at line 32 of file coinstatsindex.h.
|
private |
Definition at line 30 of file coinstatsindex.h.
|
private |
Definition at line 31 of file coinstatsindex.h.
|
private |
Definition at line 36 of file coinstatsindex.h.
|
private |
Definition at line 35 of file coinstatsindex.h.
|
private |
Definition at line 37 of file coinstatsindex.h.
|
private |
Definition at line 38 of file coinstatsindex.h.
|
private |
Definition at line 27 of file coinstatsindex.h.