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 bool GetCoin(const COutPoint &outpoint, Coin &coin) const override
Retrieve the Coin (unspent transaction output) for a given outpoint.
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
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.
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)
size_t EstimateSize() const override
Estimate database size (0 if not implemented)
Parameters that influence chain consensus.
An outpoint - a combination of a transaction hash and an index n into its vout.
std::pair< char, COutPoint > keyTmp
bool HaveCoin(const COutPoint &outpoint) const override
Just check whether a given outpoint is unspent.
static const int64_t nMaxBlockDBCache
Max memory allocated to block tree DB specific cache, if no -txindex (MiB)
uint256 GetBestBlock() const override
Retrieve the block hash whose state this CCoinsView currently represents.
#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).
CCoinsViewCursor * Cursor() const override
Get a cursor to iterate over the whole state.
std::vector< uint256 > GetHeadBlocks() const override
Retrieve the range of blocks that may have been only partially written.
std::unique_ptr< CDBWrapper > m_db
Cursor for iterating over CoinsView state.