Bitcoin Core 31.0.0
P2P Digital Currency
Loading...
Searching...
No Matches
txindex.h
Go to the documentation of this file.
1// Copyright (c) 2017-present The Bitcoin Core developers
2// Distributed under the MIT software license, see the accompanying
3// file COPYING or http://www.opensource.org/licenses/mit-license.php.
4
5#ifndef BITCOIN_INDEX_TXINDEX_H
6#define BITCOIN_INDEX_TXINDEX_H
7
8#include <index/base.h>
10
11#include <cstddef>
12#include <memory>
13
14class uint256;
15namespace interfaces {
16class Chain;
17}
18
19static constexpr bool DEFAULT_TXINDEX{false};
20
26class TxIndex final : public BaseIndex
27{
28protected:
29 class DB;
30
31private:
32 const std::unique_ptr<DB> m_db;
33
34 bool AllowPrune() const override { return false; }
35
36protected:
37 bool CustomAppend(const interfaces::BlockInfo& block) override;
38
39 BaseIndex::DB& GetDB() const override;
40
41public:
43 explicit TxIndex(std::unique_ptr<interfaces::Chain> chain, size_t n_cache_size, bool f_memory = false, bool f_wipe = false);
44
45 // Destructor is declared because this class contains a unique_ptr to an incomplete type.
46 virtual ~TxIndex() override;
47
54 bool FindTx(const Txid& tx_hash, uint256& block_hash, CTransactionRef& tx) const;
55};
56
58extern std::unique_ptr<TxIndex> g_txindex;
59
60#endif // BITCOIN_INDEX_TXINDEX_H
The database stores a block locator of the chain the database is synced to so that the index can effi...
Definition base.h:65
BaseIndex(std::unique_ptr< interfaces::Chain > chain, std::string name)
Definition base.cpp:95
Access to the txindex database (indexes/txindex/).
Definition txindex.cpp:39
BaseIndex::DB & GetDB() const override
Definition txindex.cpp:92
bool CustomAppend(const interfaces::BlockInfo &block) override
Write update index entries for a newly connected block.
Definition txindex.cpp:75
bool FindTx(const Txid &tx_hash, uint256 &block_hash, CTransactionRef &tx) const
Look up a transaction by hash.
Definition txindex.cpp:94
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.
Definition txindex.cpp:69
virtual ~TxIndex() override
bool AllowPrune() const override
Definition txindex.h:34
const std::unique_ptr< DB > m_db
Definition txindex.h:32
256-bit opaque blob.
Definition uint256.h:195
std::shared_ptr< const CTransaction > CTransactionRef
Block data sent with blockConnected, blockDisconnected notifications.
Definition chain.h:19
transaction_identifier< false > Txid
Txid commits to all transaction fields except the witness.
std::unique_ptr< TxIndex > g_txindex
The global transaction index, used in GetTransaction. May be null.
Definition txindex.cpp:34
static constexpr bool DEFAULT_TXINDEX
Definition txindex.h:19