Bitcoin ABC  0.26.3
P2P Digital Currency
Classes | Namespaces | Typedefs | Functions | Variables
blockstorage.h File Reference
#include <cstdint>
#include <vector>
#include <chain.h>
#include <fs.h>
#include <protocol.h>
#include <sync.h>
#include <txdb.h>
Include dependency graph for blockstorage.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  node::BlockManager
 Maintains a tree of blocks (stored in m_block_index) which is consulted to determine where the most-work tip is. More...
 

Namespaces

 Consensus
 
 node
 

Typedefs

using node::BlockMap = std::unordered_map< BlockHash, CBlockIndex, BlockHasher >
 

Functions

FILE * node::OpenBlockFile (const FlatFilePos &pos, bool fReadOnly=false)
 Open a block file (blk?????.dat) More...
 
fs::path node::GetBlockPosFilename (const FlatFilePos &pos)
 Translation to a filesystem path. More...
 
void node::UnlinkPrunedFiles (const std::set< int > &setFilesToPrune)
 Actually unlink the specified files. More...
 
bool node::ReadBlockFromDisk (CBlock &block, const FlatFilePos &pos, const Consensus::Params &consensusParams)
 Functions for disk access for blocks. More...
 
bool node::ReadBlockFromDisk (CBlock &block, const CBlockIndex *pindex, const Consensus::Params &params)
 
bool node::UndoReadFromDisk (CBlockUndo &blockundo, const CBlockIndex *pindex)
 
bool node::ReadTxFromDisk (CMutableTransaction &tx, const FlatFilePos &pos)
 Functions for disk access for txs. More...
 
bool node::ReadTxUndoFromDisk (CTxUndo &tx_undo, const FlatFilePos &pos)
 
void node::ThreadImport (const Config &config, ChainstateManager &chainman, std::vector< fs::path > vImportFiles, const ArgsManager &args)
 

Variables

RecursiveMutex cs_main
 Global state. More...
 
static constexpr bool node::DEFAULT_STOPAFTERBLOCKIMPORT {false}
 
static constexpr unsigned int node::BLOCKFILE_CHUNK_SIZE = 0x1000000
 The pre-allocation chunk size for blk?????.dat files (since 0.8) More...
 
static const unsigned int node::UNDOFILE_CHUNK_SIZE = 0x100000
 The pre-allocation chunk size for rev?????.dat files (since 0.8) More...
 
static const unsigned int node::MAX_BLOCKFILE_SIZE = 0x8000000
 The maximum size of a blk?????.dat file (since 0.8) More...
 
std::atomic_bool node::fImporting
 
std::atomic_bool node::fReindex
 
const CBlockIndex *GetFirstStoredBlock(const CBlockIndex *start_block) EXCLUSIVE_LOCKS_REQUIRED(voi node::CleanupBlockRevFiles )()
 Find the first block that is not pruned. More...
 

Variable Documentation

◆ cs_main

RecursiveMutex cs_main
extern

Global state.

Mutex to guard access to validation specific variables, such as reading or changing the chainstate.

This may also need to be locked when updating the transaction pool, e.g. on AcceptToMemoryPool. See CTxMemPool::cs comment for details.

The transaction pool has a separate lock to allow reading from it and the chainstate at the same time.

Definition at line 113 of file validation.cpp.