Bitcoin Core
31.0.0
P2P Digital Currency
Loading...
Searching...
No Matches
src
txdb.h
Go to the documentation of this file.
1
// Copyright (c) 2009-2010 Satoshi Nakamoto
2
// Copyright (c) 2009-present The Bitcoin Core developers
3
// Distributed under the MIT software license, see the accompanying
4
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
5
6
#ifndef BITCOIN_TXDB_H
7
#define BITCOIN_TXDB_H
8
9
#include <
coins.h
>
10
#include <
dbwrapper.h
>
11
#include <
kernel/caches.h
>
12
#include <
kernel/cs_main.h
>
13
#include <
sync.h
>
14
#include <
util/fs.h
>
15
16
#include <cstddef>
17
#include <cstdint>
18
#include <memory>
19
#include <optional>
20
#include <vector>
21
22
class
COutPoint
;
23
class
uint256
;
24
26
struct
CoinsViewOptions
{
28
size_t
batch_write_bytes
{
DEFAULT_DB_CACHE_BATCH
};
30
int
simulate_crash_ratio
{0};
31
};
32
34
class
CCoinsViewDB
final :
public
CCoinsView
35
{
36
protected
:
37
DBParams
m_db_params
;
38
CoinsViewOptions
m_options
;
39
std::unique_ptr<CDBWrapper>
m_db
;
40
public
:
41
explicit
CCoinsViewDB
(
DBParams
db_params,
CoinsViewOptions
options);
42
43
std::optional<Coin>
GetCoin
(
const
COutPoint
& outpoint)
const override
;
44
bool
HaveCoin
(
const
COutPoint
&outpoint)
const override
;
45
uint256
GetBestBlock
()
const override
;
46
std::vector<uint256>
GetHeadBlocks
()
const override
;
47
void
BatchWrite
(
CoinsViewCacheCursor
& cursor,
const
uint256
& hashBlock)
override
;
48
std::unique_ptr<CCoinsViewCursor>
Cursor
()
const override
;
49
51
bool
NeedsUpgrade
();
52
size_t
EstimateSize
()
const override
;
53
55
void
ResizeCache
(
size_t
new_cache_size)
EXCLUSIVE_LOCKS_REQUIRED
(
cs_main
);
56
};
57
58
#endif
// BITCOIN_TXDB_H
CCoinsViewDB::HaveCoin
bool HaveCoin(const COutPoint &outpoint) const override
Definition
txdb.cpp:81
CCoinsViewDB::m_db
std::unique_ptr< CDBWrapper > m_db
Definition
txdb.h:39
CCoinsViewDB::CCoinsViewDB
CCoinsViewDB(DBParams db_params, CoinsViewOptions options)
Definition
txdb.cpp:53
CCoinsViewDB::GetBestBlock
uint256 GetBestBlock() const override
Retrieve the block hash whose state this CCoinsView currently represents.
Definition
txdb.cpp:85
CCoinsViewDB::GetCoin
std::optional< Coin > GetCoin(const COutPoint &outpoint) const override
Definition
txdb.cpp:72
CCoinsViewDB::BatchWrite
void BatchWrite(CoinsViewCacheCursor &cursor, const uint256 &hashBlock) override
Definition
txdb.cpp:100
CCoinsViewDB::Cursor
std::unique_ptr< CCoinsViewCursor > Cursor() const override
Get a cursor to iterate over the whole state.
Definition
txdb.cpp:194
CCoinsViewDB::ResizeCache
void ResizeCache(size_t new_cache_size) EXCLUSIVE_LOCKS_REQUIRED(cs_main)
Dynamically alter the underlying leveldb cache size.
Definition
txdb.cpp:58
CCoinsViewDB::m_options
CoinsViewOptions m_options
Definition
txdb.h:38
CCoinsViewDB::GetHeadBlocks
std::vector< uint256 > GetHeadBlocks() const override
Definition
txdb.cpp:92
CCoinsViewDB::NeedsUpgrade
bool NeedsUpgrade()
Whether an unsupported database format is used.
Definition
txdb.cpp:32
CCoinsViewDB::EstimateSize
size_t EstimateSize() const override
Estimate database size (0 if not implemented).
Definition
txdb.cpp:166
CCoinsViewDB::m_db_params
DBParams m_db_params
Definition
txdb.h:37
CCoinsView
Abstract view on the open txout dataset.
Definition
coins.h:308
COutPoint
An outpoint - a combination of a transaction hash and an index n into its vout.
Definition
transaction.h:29
uint256
256-bit opaque blob.
Definition
uint256.h:195
coins.h
cs_main
RecursiveMutex cs_main
Mutex to guard access to validation specific variables, such as reading or changing the chainstate.
Definition
cs_main.cpp:8
cs_main.h
dbwrapper.h
fs.h
caches.h
DEFAULT_DB_CACHE_BATCH
static constexpr size_t DEFAULT_DB_CACHE_BATCH
Default LevelDB write batch size.
Definition
caches.h:15
CoinsViewCacheCursor
Cursor for iterating over the linked list of flagged entries in CCoinsViewCache.
Definition
coins.h:261
CoinsViewOptions
User-controlled performance and debug options.
Definition
txdb.h:26
CoinsViewOptions::simulate_crash_ratio
int simulate_crash_ratio
If non-zero, randomly exit when the database is flushed with (1/ratio) probability.
Definition
txdb.h:30
CoinsViewOptions::batch_write_bytes
size_t batch_write_bytes
Maximum database write batch size in bytes.
Definition
txdb.h:28
DBParams
Application-specific storage settings.
Definition
dbwrapper.h:33
sync.h
EXCLUSIVE_LOCKS_REQUIRED
#define EXCLUSIVE_LOCKS_REQUIRED(...)
Definition
threadsafety.h:51
Generated on
for Bitcoin Core by
1.16.1