Bitcoin Core
32.1.0
P2P Digital Currency
Toggle main menu visibility
Loading...
Searching...
No Matches
src
index
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
>
9
#include <
primitives/transaction.h
>
10
#include <
uint256.h
>
11
12
#include <cstddef>
13
#include <memory>
14
#include <optional>
15
16
namespace
interfaces
{
17
class
Chain
;
18
}
19
namespace
txindex_tests
{
20
class
TxIndexTest
;
21
}
22
23
inline
constexpr
bool
DEFAULT_TXINDEX
{
false
};
24
26
struct
TxIndexResult
{
27
uint256
block_hash
;
28
CTransactionRef
tx
;
29
};
30
36
class
TxIndex
final :
public
BaseIndex
37
{
38
protected
:
39
class
DB
;
40
41
private
:
42
friend
class
txindex_tests::TxIndexTest
;
43
const
std::unique_ptr<DB>
m_db
;
44
45
bool
AllowPrune
()
const override
{
return
false
; }
46
48
std::optional<TxIndexResult>
FindLegacyTx
(
const
Txid
& tx_hash)
const
;
49
50
protected
:
51
bool
CustomAppend
(
const
interfaces::BlockInfo
& block)
override
;
52
53
BaseIndex::DB
&
GetDB
()
const override
;
54
55
public
:
57
explicit
TxIndex
(std::unique_ptr<interfaces::Chain> chain,
size_t
n_cache_size,
bool
f_memory =
false
,
bool
f_wipe =
false
);
58
59
// Destructor is declared because this class contains a unique_ptr to an incomplete type.
60
virtual
~TxIndex
()
override
;
61
66
std::optional<TxIndexResult>
FindTx
(
const
Txid
& tx_hash)
const
;
67
};
68
70
extern
std::unique_ptr<TxIndex>
g_txindex
;
71
72
#endif
// BITCOIN_INDEX_TXINDEX_H
base.h
BaseIndex::DB
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::BaseIndex
BaseIndex(std::unique_ptr< interfaces::Chain > chain, std::string name, std::string thread_name)
Definition
base.cpp:96
TxIndex::DB
Access to the txindex database (indexes/txindex/).
Definition
txindex.cpp:58
TxIndex::GetDB
BaseIndex::DB & GetDB() const override
Definition
txindex.cpp:157
TxIndex::FindTx
std::optional< TxIndexResult > FindTx(const Txid &tx_hash) const
Look up a transaction by hash.
Definition
txindex.cpp:159
TxIndex::CustomAppend
bool CustomAppend(const interfaces::BlockInfo &block) override
Write update index entries for a newly connected block.
Definition
txindex.cpp:147
TxIndex::TxIndex
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:135
TxIndex::~TxIndex
virtual ~TxIndex() override
TxIndex::AllowPrune
bool AllowPrune() const override
Definition
txindex.h:45
TxIndex::m_db
const std::unique_ptr< DB > m_db
Definition
txindex.h:43
TxIndex::FindLegacyTx
std::optional< TxIndexResult > FindLegacyTx(const Txid &tx_hash) const
Look up a transaction among the legacy (full-txid) entries.
Definition
txindex.cpp:220
TxIndex::TxIndexTest
friend class txindex_tests::TxIndexTest
Definition
txindex.h:42
TxIndexTest
Definition
txindex_tests.cpp:43
interfaces::Chain
Definition
chain.h:117
uint256
256-bit opaque blob.
Definition
uint256.h:196
interfaces
Definition
interfaces.cpp:42
txindex_tests
Definition
txindex.h:19
transaction.h
CTransactionRef
std::shared_ptr< const CTransaction > CTransactionRef
Definition
transaction.h:417
TxIndexResult
A found transaction and the hash of the block that contains it.
Definition
txindex.h:26
TxIndexResult::tx
CTransactionRef tx
Definition
txindex.h:28
TxIndexResult::block_hash
uint256 block_hash
Definition
txindex.h:27
interfaces::BlockInfo
Block data sent with blockConnected, blockDisconnected notifications.
Definition
chain.h:20
Txid
transaction_identifier< false > Txid
Txid commits to all transaction fields except the witness.
Definition
transaction_identifier.h:60
g_txindex
std::unique_ptr< TxIndex > g_txindex
The global transaction index, used in GetTransaction. May be null.
Definition
txindex.cpp:41
DEFAULT_TXINDEX
constexpr bool DEFAULT_TXINDEX
Definition
txindex.h:23
uint256.h
Generated on
for Bitcoin Core by
1.18.0