MCPcopy Create free account
hub / github.com/bitcoin/bitcoin / WriteBlockIndexDB

Method WriteBlockIndexDB

src/node/blockstorage.cpp:529–546  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

527}
528
529void BlockManager::WriteBlockIndexDB()
530{
531 AssertLockHeld(::cs_main);
532 std::vector<std::pair<int, const CBlockFileInfo*>> vFiles;
533 vFiles.reserve(m_dirty_fileinfo.size());
534 for (std::set<int>::iterator it = m_dirty_fileinfo.begin(); it != m_dirty_fileinfo.end();) {
535 vFiles.emplace_back(*it, &m_blockfile_info[*it]);
536 m_dirty_fileinfo.erase(it++);
537 }
538 std::vector<const CBlockIndex*> vBlocks;
539 vBlocks.reserve(m_dirty_blockindex.size());
540 for (std::set<CBlockIndex*>::iterator it = m_dirty_blockindex.begin(); it != m_dirty_blockindex.end();) {
541 vBlocks.push_back(*it);
542 m_dirty_blockindex.erase(it++);
543 }
544 int max_blockfile{this->MaxBlockfileNum()};
545 m_block_tree_db->WriteBatchSync(vFiles, max_blockfile, vBlocks);
546}
547
548bool BlockManager::LoadBlockIndexDB(const std::optional<uint256>& snapshot_blockhash)
549{

Callers 1

FlushStateToDiskMethod · 0.80

Calls 8

WriteBatchSyncMethod · 0.80
reserveMethod · 0.45
sizeMethod · 0.45
beginMethod · 0.45
endMethod · 0.45
emplace_backMethod · 0.45
eraseMethod · 0.45
push_backMethod · 0.45

Tested by

no test coverage detected