28 static const int64_t
nMaxDbCache =
sizeof(
void*) > 4 ? 16384 : 1024;
49 std::unique_ptr<CDBWrapper>
m_db;
56 explicit CCoinsViewDB(fs::path ldb_path,
size_t nCacheSize,
bool fMemory,
bool fWipe);
79 bool GetKey(
COutPoint &key)
const override;
80 bool GetValue(
Coin &coin)
const override;
81 unsigned int GetValueSize()
const override;
83 bool Valid()
const override;
99 explicit CBlockTreeDB(
size_t nCacheSize,
bool fMemory =
false,
bool fWipe =
false);
101 bool WriteBatchSync(
const std::vector<std::pair<int, const CBlockFileInfo*> >& fileInfo,
int nLastFile,
const std::vector<const CBlockIndex*>& blockinfo);
103 bool ReadLastBlockFile(
int &nFile);
104 bool WriteReindexing(
bool fReindexing);
105 void ReadReindexing(
bool &fReindexing);
106 bool WriteFlag(
const std::string &
name,
bool fValue);
107 bool ReadFlag(
const std::string &name,
bool &fValue);
111 #endif // BITCOIN_TXDB_H std::vector< uint256 > GetHeadBlocks() const override
Retrieve the range of blocks that may have been only partially written.
bool Upgrade()
Attempt to update from an older database format. Returns whether an error occurred.
Specialization of CCoinsViewCursor to iterate over a CCoinsViewDB.
static const int64_t nMaxTxIndexCache
Max memory allocated to block tree DB specific cache, if -txindex (MiB)
CCoinsViewDB(fs::path ldb_path, size_t nCacheSize, bool fMemory, bool fWipe)
std::unique_ptr< CDBIterator > pcursor
uint256 GetBestBlock() const override
Retrieve the block hash whose state this CCoinsView currently represents.
void ResizeCache(size_t new_cache_size) EXCLUSIVE_LOCKS_REQUIRED(cs_main)
Dynamically alter the underlying leveldb cache size.
static const int64_t nMinDbCache
min. -dbcache (MiB)
static const int64_t max_filter_index_cache
Max memory allocated to all block filter index caches combined in MiB.
size_t EstimateSize() const override
Estimate database size (0 if not implemented)
Access to the block database (blocks/index/)
Abstract view on the open txout dataset.
std::unordered_map< COutPoint, CCoinsCacheEntry, SaltedOutpointHasher > CCoinsMap
static const int64_t nDefaultDbCache
-dbcache default (MiB)
CCoinsViewDBCursor(CDBIterator *pcursorIn, const uint256 &hashBlockIn)
static const int64_t nDefaultDbBatchSize
-dbbatchsize default (bytes)
Parameters that influence chain consensus.
bool HaveCoin(const COutPoint &outpoint) const override
Just check whether a given outpoint is unspent.
An outpoint - a combination of a transaction hash and an index n into its vout.
std::pair< char, COutPoint > keyTmp
static const int64_t nMaxBlockDBCache
Max memory allocated to block tree DB specific cache, if no -txindex (MiB)
#define EXCLUSIVE_LOCKS_REQUIRED(...)
The block chain is a tree shaped structure starting with the genesis block at the root...
CCoinsView backed by the coin database (chainstate/)
static const int64_t nMaxCoinsDBCache
Max memory allocated to coin DB specific cache (MiB)
RecursiveMutex cs_main
Mutex to guard access to validation specific variables, such as reading or changing the chainstate...
static const int64_t nMaxDbCache
max. -dbcache (MiB)
bool BatchWrite(CCoinsMap &mapCoins, const uint256 &hashBlock) override
Do a bulk modification (multiple Coin changes + BestBlock change).
bool GetCoin(const COutPoint &outpoint, Coin &coin) const override
Retrieve the Coin (unspent transaction output) for a given outpoint.
CCoinsViewCursor * Cursor() const override
Get a cursor to iterate over the whole state.
std::unique_ptr< CDBWrapper > m_db
Cursor for iterating over CoinsView state.