diff --git a/src/chain.h b/src/chain.h --- a/src/chain.h +++ b/src/chain.h @@ -144,8 +144,8 @@ nNonce = block.nNonce; } - CDiskBlockPos GetBlockPos() const { - CDiskBlockPos ret; + FlatFilePos GetBlockPos() const { + FlatFilePos ret; if (nStatus.hasData()) { ret.nFile = nFile; ret.nPos = nDataPos; @@ -153,8 +153,8 @@ return ret; } - CDiskBlockPos GetUndoPos() const { - CDiskBlockPos ret; + FlatFilePos GetUndoPos() const { + FlatFilePos ret; if (nStatus.hasUndo()) { ret.nFile = nFile; ret.nPos = nUndoPos; diff --git a/src/flatfile.h b/src/flatfile.h --- a/src/flatfile.h +++ b/src/flatfile.h @@ -11,7 +11,7 @@ #include -struct CDiskBlockPos { +struct FlatFilePos { int nFile; unsigned int nPos; @@ -23,18 +23,18 @@ READWRITE(VARINT(nPos)); } - CDiskBlockPos() { SetNull(); } + FlatFilePos() { SetNull(); } - CDiskBlockPos(int nFileIn, unsigned int nPosIn) { + FlatFilePos(int nFileIn, unsigned int nPosIn) { nFile = nFileIn; nPos = nPosIn; } - friend bool operator==(const CDiskBlockPos &a, const CDiskBlockPos &b) { + friend bool operator==(const FlatFilePos &a, const FlatFilePos &b) { return (a.nFile == b.nFile && a.nPos == b.nPos); } - friend bool operator!=(const CDiskBlockPos &a, const CDiskBlockPos &b) { + friend bool operator!=(const FlatFilePos &a, const FlatFilePos &b) { return !(a == b); } @@ -69,10 +69,10 @@ FlatFileSeq(fs::path dir, const char *prefix, size_t chunk_size); /** Get the name of the file at the given position. */ - fs::path FileName(const CDiskBlockPos &pos) const; + fs::path FileName(const FlatFilePos &pos) const; /** Open a handle to the file at the given position. */ - FILE *Open(const CDiskBlockPos &pos, bool fReadOnly = false); + FILE *Open(const FlatFilePos &pos, bool fReadOnly = false); /** * Allocate additional space in a file after the given starting position. @@ -85,7 +85,7 @@ * insufficient disk space. * @return The number of bytes successfully allocated. */ - size_t Allocate(const CDiskBlockPos &pos, size_t add_size, + size_t Allocate(const FlatFilePos &pos, size_t add_size, bool &out_of_space); /** @@ -96,7 +96,7 @@ * @param[in] finalize True if no more data will be written to this file. * @return true on success, false on failure. */ - bool Flush(const CDiskBlockPos &pos, bool finalize = false); + bool Flush(const FlatFilePos &pos, bool finalize = false); }; #endif // BITCOIN_FLATFILE_H diff --git a/src/flatfile.cpp b/src/flatfile.cpp --- a/src/flatfile.cpp +++ b/src/flatfile.cpp @@ -17,15 +17,15 @@ } } -std::string CDiskBlockPos::ToString() const { - return strprintf("CDiskBlockPos(nFile=%i, nPos=%i)", nFile, nPos); +std::string FlatFilePos::ToString() const { + return strprintf("FlatFilePos(nFile=%i, nPos=%i)", nFile, nPos); } -fs::path FlatFileSeq::FileName(const CDiskBlockPos &pos) const { +fs::path FlatFileSeq::FileName(const FlatFilePos &pos) const { return m_dir / strprintf("%s%05u.dat", m_prefix, pos.nFile); } -FILE *FlatFileSeq::Open(const CDiskBlockPos &pos, bool fReadOnly) { +FILE *FlatFileSeq::Open(const FlatFilePos &pos, bool fReadOnly) { if (pos.IsNull()) { return nullptr; } @@ -50,7 +50,7 @@ return file; } -size_t FlatFileSeq::Allocate(const CDiskBlockPos &pos, size_t add_size, +size_t FlatFileSeq::Allocate(const FlatFilePos &pos, size_t add_size, bool &out_of_space) { out_of_space = false; @@ -78,9 +78,9 @@ return 0; } -bool FlatFileSeq::Flush(const CDiskBlockPos &pos, bool finalize) { +bool FlatFileSeq::Flush(const FlatFilePos &pos, bool finalize) { // Avoid fseek to nPos - FILE *file = Open(CDiskBlockPos(pos.nFile, 0)); + FILE *file = Open(FlatFilePos(pos.nFile, 0)); if (!file) { return error("%s: failed to open file %d", __func__, pos.nFile); } diff --git a/src/index/txindex.cpp b/src/index/txindex.cpp --- a/src/index/txindex.cpp +++ b/src/index/txindex.cpp @@ -18,24 +18,24 @@ std::unique_ptr g_txindex; -struct CDiskTxPos : public CDiskBlockPos { +struct CDiskTxPos : public FlatFilePos { unsigned int nTxOffset; // after header ADD_SERIALIZE_METHODS; template inline void SerializationOp(Stream &s, Operation ser_action) { - READWRITEAS(CDiskBlockPos, *this); + READWRITEAS(FlatFilePos, *this); READWRITE(VARINT(nTxOffset)); } - CDiskTxPos(const CDiskBlockPos &blockIn, unsigned int nTxOffsetIn) - : CDiskBlockPos(blockIn.nFile, blockIn.nPos), nTxOffset(nTxOffsetIn) {} + CDiskTxPos(const FlatFilePos &blockIn, unsigned int nTxOffsetIn) + : FlatFilePos(blockIn.nFile, blockIn.nPos), nTxOffset(nTxOffsetIn) {} CDiskTxPos() { SetNull(); } void SetNull() { - CDiskBlockPos::SetNull(); + FlatFilePos::SetNull(); nTxOffset = 0; } }; diff --git a/src/init.cpp b/src/init.cpp --- a/src/init.cpp +++ b/src/init.cpp @@ -1128,7 +1128,7 @@ if (fReindex) { int nFile = 0; while (true) { - CDiskBlockPos pos(nFile, 0); + FlatFilePos pos(nFile, 0); if (!fs::exists(GetBlockPosFilename(pos))) { // No block files left to reindex break; diff --git a/src/test/blockindex_tests.cpp b/src/test/blockindex_tests.cpp --- a/src/test/blockindex_tests.cpp +++ b/src/test/blockindex_tests.cpp @@ -68,20 +68,20 @@ } // Data and undo positions should be unmodified - CDiskBlockPos dataPosition = index.GetBlockPos(); + FlatFilePos dataPosition = index.GetBlockPos(); if (flags & 0x01) { BOOST_CHECK(dataPosition.nFile == expectedFile); BOOST_CHECK(dataPosition.nPos == expectedDataPosition); } else { - BOOST_CHECK(dataPosition == CDiskBlockPos()); + BOOST_CHECK(dataPosition == FlatFilePos()); } - CDiskBlockPos undoPosition = index.GetUndoPos(); + FlatFilePos undoPosition = index.GetUndoPos(); if (flags & 0x02) { BOOST_CHECK(undoPosition.nFile == expectedFile); BOOST_CHECK(undoPosition.nPos == expectedUndoPosition); } else { - BOOST_CHECK(undoPosition == CDiskBlockPos()); + BOOST_CHECK(undoPosition == FlatFilePos()); } } } diff --git a/src/test/flatfile_tests.cpp b/src/test/flatfile_tests.cpp --- a/src/test/flatfile_tests.cpp +++ b/src/test/flatfile_tests.cpp @@ -16,7 +16,7 @@ BOOST_AUTO_TEST_CASE(flatfile_filename) { auto data_dir = SetDataDir("flatfile_test"); - CDiskBlockPos pos(456, 789); + FlatFilePos pos(456, 789); FlatFileSeq seq1(data_dir, "a", 16 * 1024); BOOST_CHECK_EQUAL(seq1.FileName(pos), data_dir / "a00456.dat"); @@ -42,14 +42,14 @@ // Write first line to file. { - CAutoFile file(seq.Open(CDiskBlockPos(0, pos1)), SER_DISK, + CAutoFile file(seq.Open(FlatFilePos(0, pos1)), SER_DISK, CLIENT_VERSION); file << LIMITED_STRING(line1, 256); } // Attempt to append to file opened in read-only mode. { - CAutoFile file(seq.Open(CDiskBlockPos(0, pos2), true), SER_DISK, + CAutoFile file(seq.Open(FlatFilePos(0, pos2), true), SER_DISK, CLIENT_VERSION); BOOST_CHECK_THROW(file << LIMITED_STRING(line2, 256), std::ios_base::failure); @@ -57,7 +57,7 @@ // Append second line to file. { - CAutoFile file(seq.Open(CDiskBlockPos(0, pos2)), SER_DISK, + CAutoFile file(seq.Open(FlatFilePos(0, pos2)), SER_DISK, CLIENT_VERSION); file << LIMITED_STRING(line2, 256); } @@ -65,7 +65,7 @@ // Read text from file in read-only mode. { std::string text; - CAutoFile file(seq.Open(CDiskBlockPos(0, pos1), true), SER_DISK, + CAutoFile file(seq.Open(FlatFilePos(0, pos1), true), SER_DISK, CLIENT_VERSION); file >> LIMITED_STRING(text, 256); @@ -78,7 +78,7 @@ // Read text from file with position offset. { std::string text; - CAutoFile file(seq.Open(CDiskBlockPos(0, pos2)), SER_DISK, + CAutoFile file(seq.Open(FlatFilePos(0, pos2)), SER_DISK, CLIENT_VERSION); file >> LIMITED_STRING(text, 256); @@ -88,7 +88,7 @@ // Ensure another file in the sequence has no data. { std::string text; - CAutoFile file(seq.Open(CDiskBlockPos(1, pos2)), SER_DISK, + CAutoFile file(seq.Open(FlatFilePos(1, pos2)), SER_DISK, CLIENT_VERSION); BOOST_CHECK_THROW(file >> LIMITED_STRING(text, 256), std::ios_base::failure); @@ -101,16 +101,16 @@ bool out_of_space; - BOOST_CHECK_EQUAL(seq.Allocate(CDiskBlockPos(0, 0), 1, out_of_space), 100); - BOOST_CHECK_EQUAL(fs::file_size(seq.FileName(CDiskBlockPos(0, 0))), 100); + BOOST_CHECK_EQUAL(seq.Allocate(FlatFilePos(0, 0), 1, out_of_space), 100); + BOOST_CHECK_EQUAL(fs::file_size(seq.FileName(FlatFilePos(0, 0))), 100); BOOST_CHECK(!out_of_space); - BOOST_CHECK_EQUAL(seq.Allocate(CDiskBlockPos(0, 99), 1, out_of_space), 0); - BOOST_CHECK_EQUAL(fs::file_size(seq.FileName(CDiskBlockPos(0, 99))), 100); + BOOST_CHECK_EQUAL(seq.Allocate(FlatFilePos(0, 99), 1, out_of_space), 0); + BOOST_CHECK_EQUAL(fs::file_size(seq.FileName(FlatFilePos(0, 99))), 100); BOOST_CHECK(!out_of_space); - BOOST_CHECK_EQUAL(seq.Allocate(CDiskBlockPos(0, 99), 2, out_of_space), 101); - BOOST_CHECK_EQUAL(fs::file_size(seq.FileName(CDiskBlockPos(0, 99))), 200); + BOOST_CHECK_EQUAL(seq.Allocate(FlatFilePos(0, 99), 2, out_of_space), 101); + BOOST_CHECK_EQUAL(fs::file_size(seq.FileName(FlatFilePos(0, 99))), 200); BOOST_CHECK(!out_of_space); } @@ -119,15 +119,15 @@ FlatFileSeq seq(data_dir, "a", 100); bool out_of_space; - seq.Allocate(CDiskBlockPos(0, 0), 1, out_of_space); + seq.Allocate(FlatFilePos(0, 0), 1, out_of_space); // Flush without finalize should not truncate file. - seq.Flush(CDiskBlockPos(0, 1)); - BOOST_CHECK_EQUAL(fs::file_size(seq.FileName(CDiskBlockPos(0, 1))), 100); + seq.Flush(FlatFilePos(0, 1)); + BOOST_CHECK_EQUAL(fs::file_size(seq.FileName(FlatFilePos(0, 1))), 100); // Flush with finalize should truncate file. - seq.Flush(CDiskBlockPos(0, 1), true); - BOOST_CHECK_EQUAL(fs::file_size(seq.FileName(CDiskBlockPos(0, 1))), 1); + seq.Flush(FlatFilePos(0, 1), true); + BOOST_CHECK_EQUAL(fs::file_size(seq.FileName(FlatFilePos(0, 1))), 1); } BOOST_AUTO_TEST_SUITE_END() diff --git a/src/validation.h b/src/validation.h --- a/src/validation.h +++ b/src/validation.h @@ -48,7 +48,7 @@ class CTxUndo; class CValidationState; -struct CDiskBlockPos; +struct FlatFilePos; struct ChainTxData; struct PrecomputedTransactionData; struct LockPoints; @@ -350,18 +350,18 @@ /** * Open a block file (blk?????.dat). */ -FILE *OpenBlockFile(const CDiskBlockPos &pos, bool fReadOnly = false); +FILE *OpenBlockFile(const FlatFilePos &pos, bool fReadOnly = false); /** * Translation to a filesystem path. */ -fs::path GetBlockPosFilename(const CDiskBlockPos &pos); +fs::path GetBlockPosFilename(const FlatFilePos &pos); /** * Import blocks from an external file. */ bool LoadExternalBlockFile(const Config &config, FILE *fileIn, - CDiskBlockPos *dbp = nullptr); + FlatFilePos *dbp = nullptr); /** * Ensures we have a genesis block in the block tree, possibly writing one to @@ -557,7 +557,7 @@ }; /** Functions for disk access for blocks */ -bool ReadBlockFromDisk(CBlock &block, const CDiskBlockPos &pos, +bool ReadBlockFromDisk(CBlock &block, const FlatFilePos &pos, const Config &config); bool ReadBlockFromDisk(CBlock &block, const CBlockIndex *pindex, const Config &config); diff --git a/src/validation.cpp b/src/validation.cpp --- a/src/validation.cpp +++ b/src/validation.cpp @@ -143,7 +143,7 @@ bool AcceptBlock(const Config &config, const std::shared_ptr &pblock, CValidationState &state, bool fRequested, - const CDiskBlockPos *dbp, bool *fNewBlock); + const FlatFilePos *dbp, bool *fNewBlock); // Block (dis)connection on a given view: DisconnectResult DisconnectBlock(const CBlock &block, @@ -199,7 +199,7 @@ CBlockIndex *FindMostWorkChain(); bool ReceivedBlockTransactions(const CBlock &block, CValidationState &state, CBlockIndex *pindexNew, - const CDiskBlockPos &pos); + const FlatFilePos &pos); bool RollforwardBlock(const CBlockIndex *pindex, CCoinsViewCache &inputs, const Config &config); @@ -311,7 +311,7 @@ int nManualPruneHeight); static void FindFilesToPrune(std::set &setFilesToPrune, uint64_t nPruneAfterHeight); -static FILE *OpenUndoFile(const CDiskBlockPos &pos, bool fReadOnly = false); +static FILE *OpenUndoFile(const FlatFilePos &pos, bool fReadOnly = false); static FlatFileSeq BlockFileSeq(); static FlatFileSeq UndoFileSeq(); static uint32_t GetNextBlockScriptFlags(const Config &config, @@ -905,7 +905,7 @@ // CBlock and CBlockIndex // -static bool WriteBlockToDisk(const CBlock &block, CDiskBlockPos &pos, +static bool WriteBlockToDisk(const CBlock &block, FlatFilePos &pos, const CMessageHeader::MessageMagic &messageStart) { // Open history file to append CAutoFile fileout(OpenBlockFile(pos), SER_DISK, CLIENT_VERSION); @@ -929,7 +929,7 @@ return true; } -bool ReadBlockFromDisk(CBlock &block, const CDiskBlockPos &pos, +bool ReadBlockFromDisk(CBlock &block, const FlatFilePos &pos, const Config &config) { block.SetNull(); @@ -959,7 +959,7 @@ bool ReadBlockFromDisk(CBlock &block, const CBlockIndex *pindex, const Config &config) { - CDiskBlockPos blockPos; + FlatFilePos blockPos; { LOCK(cs_main); blockPos = pindex->GetBlockPos(); @@ -1314,7 +1314,7 @@ namespace { -bool UndoWriteToDisk(const CBlockUndo &blockundo, CDiskBlockPos &pos, +bool UndoWriteToDisk(const CBlockUndo &blockundo, FlatFilePos &pos, const uint256 &hashBlock, const CMessageHeader::MessageMagic &messageStart) { // Open history file to append @@ -1345,7 +1345,7 @@ } static bool UndoReadFromDisk(CBlockUndo &blockundo, const CBlockIndex *pindex) { - CDiskBlockPos pos = pindex->GetUndoPos(); + FlatFilePos pos = pindex->GetUndoPos(); if (pos.IsNull()) { return error("%s: no undo data available", __func__); } @@ -1515,10 +1515,10 @@ static void FlushBlockFile(bool fFinalize = false) { LOCK(cs_LastBlockFile); - CDiskBlockPos block_pos_old(nLastBlockFile, - vinfoBlockFile[nLastBlockFile].nSize); - CDiskBlockPos undo_pos_old(nLastBlockFile, - vinfoBlockFile[nLastBlockFile].nUndoSize); + FlatFilePos block_pos_old(nLastBlockFile, + vinfoBlockFile[nLastBlockFile].nSize); + FlatFilePos undo_pos_old(nLastBlockFile, + vinfoBlockFile[nLastBlockFile].nUndoSize); bool status = true; status &= BlockFileSeq().Flush(block_pos_old, fFinalize); @@ -1529,7 +1529,7 @@ } } -static bool FindUndoPos(CValidationState &state, int nFile, CDiskBlockPos &pos, +static bool FindUndoPos(CValidationState &state, int nFile, FlatFilePos &pos, unsigned int nAddSize); static bool WriteUndoDataForBlock(const CBlockUndo &blockundo, @@ -1537,7 +1537,7 @@ const CChainParams &chainparams) { // Write undo information to disk if (pindex->GetUndoPos().IsNull()) { - CDiskBlockPos _pos; + FlatFilePos _pos; if (!FindUndoPos( state, pindex->nFile, _pos, ::GetSerializeSize(blockundo, SER_DISK, CLIENT_VERSION) + 40)) { @@ -3274,7 +3274,7 @@ bool CChainState::ReceivedBlockTransactions(const CBlock &block, CValidationState &state, CBlockIndex *pindexNew, - const CDiskBlockPos &pos) { + const FlatFilePos &pos) { pindexNew->nTx = block.vtx.size(); pindexNew->nChainTx = 0; pindexNew->nFile = pos.nFile; @@ -3331,7 +3331,7 @@ return true; } -static bool FindBlockPos(CDiskBlockPos &pos, unsigned int nAddSize, +static bool FindBlockPos(FlatFilePos &pos, unsigned int nAddSize, unsigned int nHeight, uint64_t nTime, bool fKnown = false) { LOCK(cs_LastBlockFile); @@ -3386,7 +3386,7 @@ return true; } -static bool FindUndoPos(CValidationState &state, int nFile, CDiskBlockPos &pos, +static bool FindUndoPos(CValidationState &state, int nFile, FlatFilePos &pos, unsigned int nAddSize) { pos.nFile = nFile; @@ -3864,24 +3864,24 @@ * Store block on disk. If dbp is non-nullptr, the file is known to already * reside on disk. */ -static CDiskBlockPos SaveBlockToDisk(const CBlock &block, int nHeight, - const CChainParams &chainparams, - const CDiskBlockPos *dbp) { +static FlatFilePos SaveBlockToDisk(const CBlock &block, int nHeight, + const CChainParams &chainparams, + const FlatFilePos *dbp) { unsigned int nBlockSize = ::GetSerializeSize(block, SER_DISK, CLIENT_VERSION); - CDiskBlockPos blockPos; + FlatFilePos blockPos; if (dbp != nullptr) { blockPos = *dbp; } if (!FindBlockPos(blockPos, nBlockSize + 8, nHeight, block.GetBlockTime(), dbp != nullptr)) { error("%s: FindBlockPos failed", __func__); - return CDiskBlockPos(); + return FlatFilePos(); } if (dbp == nullptr) { if (!WriteBlockToDisk(block, blockPos, chainparams.DiskMagic())) { AbortNode("Failed to write block"); - return CDiskBlockPos(); + return FlatFilePos(); } } return blockPos; @@ -3901,7 +3901,7 @@ bool CChainState::AcceptBlock(const Config &config, const std::shared_ptr &pblock, CValidationState &state, bool fRequested, - const CDiskBlockPos *dbp, bool *fNewBlock) { + const FlatFilePos *dbp, bool *fNewBlock) { AssertLockHeld(cs_main); const CBlock &block = *pblock; @@ -4029,7 +4029,7 @@ // Write block to history file try { - CDiskBlockPos blockPos = + FlatFilePos blockPos = SaveBlockToDisk(block, pindex->nHeight, chainparams, dbp); if (blockPos.IsNull()) { state.Error(strprintf( @@ -4191,7 +4191,7 @@ void UnlinkPrunedFiles(const std::set &setFilesToPrune) { for (const int i : setFilesToPrune) { - CDiskBlockPos pos(i, 0); + FlatFilePos pos(i, 0); fs::remove(BlockFileSeq().FileName(pos)); fs::remove(UndoFileSeq().FileName(pos)); LogPrintf("Prune: %s deleted blk/rev (%05u)\n", __func__, i); @@ -4323,16 +4323,16 @@ return FlatFileSeq(GetBlocksDir(), "rev", UNDOFILE_CHUNK_SIZE); } -FILE *OpenBlockFile(const CDiskBlockPos &pos, bool fReadOnly) { +FILE *OpenBlockFile(const FlatFilePos &pos, bool fReadOnly) { return BlockFileSeq().Open(pos, fReadOnly); } /** Open an undo file (rev?????.dat) */ -static FILE *OpenUndoFile(const CDiskBlockPos &pos, bool fReadOnly) { +static FILE *OpenUndoFile(const FlatFilePos &pos, bool fReadOnly) { return UndoFileSeq().Open(pos, fReadOnly); } -fs::path GetBlockPosFilename(const CDiskBlockPos &pos) { +fs::path GetBlockPosFilename(const FlatFilePos &pos) { return BlockFileSeq().FileName(pos); } @@ -4471,7 +4471,7 @@ } for (const int i : setBlkDataFiles) { - CDiskBlockPos pos(i, 0); + FlatFilePos pos(i, 0); if (CAutoFile(OpenBlockFile(pos, true), SER_DISK, CLIENT_VERSION) .IsNull()) { return false; @@ -4969,8 +4969,7 @@ try { CBlock &block = const_cast(chainparams.GenesisBlock()); - CDiskBlockPos blockPos = - SaveBlockToDisk(block, 0, chainparams, nullptr); + FlatFilePos blockPos = SaveBlockToDisk(block, 0, chainparams, nullptr); if (blockPos.IsNull()) { return error("%s: writing genesis block to disk failed", __func__); } @@ -4992,10 +4991,10 @@ } bool LoadExternalBlockFile(const Config &config, FILE *fileIn, - CDiskBlockPos *dbp) { + FlatFilePos *dbp) { // Map of disk positions for blocks with unknown parent (only used for // reindex) - static std::multimap mapBlocksUnknownParent; + static std::multimap mapBlocksUnknownParent; int64_t nStart = GetTimeMillis(); const CChainParams &chainparams = config.GetChainParams(); @@ -5108,11 +5107,11 @@ while (!queue.empty()) { uint256 head = queue.front(); queue.pop_front(); - std::pair::iterator, - std::multimap::iterator> + std::pair::iterator, + std::multimap::iterator> range = mapBlocksUnknownParent.equal_range(head); while (range.first != range.second) { - std::multimap::iterator it = + std::multimap::iterator it = range.first; std::shared_ptr pblockrecursive = std::make_shared();