Bitcoin Core  24.99.0
P2P Digital Currency
Classes | Namespaces | Typedefs | Functions | Variables
blockstorage.h File Reference
#include <attributes.h>
#include <chain.h>
#include <fs.h>
#include <kernel/blockmanager_opts.h>
#include <kernel/cs_main.h>
#include <protocol.h>
#include <sync.h>
#include <txdb.h>
#include <atomic>
#include <cstdint>
#include <unordered_map>
#include <vector>
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.


struct  node::CBlockIndexWorkComparator
struct  node::CBlockIndexHeightOnlyComparator
struct  node::PruneLockInfo
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...


 Transaction validation functions.


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


void node::CleanupBlockRevFiles ()
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 &consensusParams)
bool node::ReadRawBlockFromDisk (std::vector< uint8_t > &block, const FlatFilePos &pos, const CMessageHeader::MessageStartChars &message_start)
bool node::UndoReadFromDisk (CBlockUndo &blockundo, const CBlockIndex *pindex)
void node::ThreadImport (ChainstateManager &chainman, std::vector< fs::path > vImportFiles, const ArgsManager &args, const fs::path &mempool_path)


static constexpr bool node::DEFAULT_STOPAFTERBLOCKIMPORT {false}
static const 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...
static constexpr size_t node::BLOCK_SERIALIZATION_HEADER_SIZE = CMessageHeader::MESSAGE_START_SIZE + sizeof(unsigned int)
 Size of header written by WriteBlockToDisk before a serialized CBlock. More...
std::atomic_bool node::fReindex