mirror of
https://github.com/kvazar-network/kevacoin.git
synced 2025-01-11 15:48:05 +00:00
Move UndoWriteToDisk() and UndoReadFromDisk() to anon namespace
This commit is contained in:
parent
937ba572d0
commit
87fb31086d
114
src/main.cpp
114
src/main.cpp
@ -1521,8 +1521,63 @@ bool CheckInputs(const CTransaction& tx, CValidationState &state, const CCoinsVi
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool UndoWriteToDisk(const CBlockUndo& blockundo, CDiskBlockPos& pos, const uint256& hashBlock);
|
namespace {
|
||||||
bool UndoReadFromDisk(CBlockUndo& blockundo, const CDiskBlockPos& pos, const uint256& hashBlock);
|
|
||||||
|
bool UndoWriteToDisk(const CBlockUndo& blockundo, CDiskBlockPos& pos, const uint256& hashBlock)
|
||||||
|
{
|
||||||
|
// Open history file to append
|
||||||
|
CAutoFile fileout(OpenUndoFile(pos), SER_DISK, CLIENT_VERSION);
|
||||||
|
if (fileout.IsNull())
|
||||||
|
return error("%s : OpenUndoFile failed", __func__);
|
||||||
|
|
||||||
|
// Write index header
|
||||||
|
unsigned int nSize = fileout.GetSerializeSize(blockundo);
|
||||||
|
fileout << FLATDATA(Params().MessageStart()) << nSize;
|
||||||
|
|
||||||
|
// Write undo data
|
||||||
|
long fileOutPos = ftell(fileout.Get());
|
||||||
|
if (fileOutPos < 0)
|
||||||
|
return error("%s : ftell failed", __func__);
|
||||||
|
pos.nPos = (unsigned int)fileOutPos;
|
||||||
|
fileout << blockundo;
|
||||||
|
|
||||||
|
// calculate & write checksum
|
||||||
|
CHashWriter hasher(SER_GETHASH, PROTOCOL_VERSION);
|
||||||
|
hasher << hashBlock;
|
||||||
|
hasher << blockundo;
|
||||||
|
fileout << hasher.GetHash();
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool UndoReadFromDisk(CBlockUndo& blockundo, const CDiskBlockPos& pos, const uint256& hashBlock)
|
||||||
|
{
|
||||||
|
// Open history file to read
|
||||||
|
CAutoFile filein(OpenUndoFile(pos, true), SER_DISK, CLIENT_VERSION);
|
||||||
|
if (filein.IsNull())
|
||||||
|
return error("%s : OpenBlockFile failed", __func__);
|
||||||
|
|
||||||
|
// Read block
|
||||||
|
uint256 hashChecksum;
|
||||||
|
try {
|
||||||
|
filein >> blockundo;
|
||||||
|
filein >> hashChecksum;
|
||||||
|
}
|
||||||
|
catch (const std::exception& e) {
|
||||||
|
return error("%s : Deserialize or I/O error - %s", __func__, e.what());
|
||||||
|
}
|
||||||
|
|
||||||
|
// Verify checksum
|
||||||
|
CHashWriter hasher(SER_GETHASH, PROTOCOL_VERSION);
|
||||||
|
hasher << hashBlock;
|
||||||
|
hasher << blockundo;
|
||||||
|
if (hashChecksum != hasher.GetHash())
|
||||||
|
return error("%s : Checksum mismatch", __func__);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
} // anon namespace
|
||||||
|
|
||||||
bool DisconnectBlock(CBlock& block, CValidationState& state, CBlockIndex* pindex, CCoinsViewCache& view, bool* pfClean)
|
bool DisconnectBlock(CBlock& block, CValidationState& state, CBlockIndex* pindex, CCoinsViewCache& view, bool* pfClean)
|
||||||
{
|
{
|
||||||
@ -4510,61 +4565,6 @@ bool SendMessages(CNode* pto, bool fSendTrickle)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool UndoWriteToDisk(const CBlockUndo& blockundo, CDiskBlockPos& pos, const uint256& hashBlock)
|
|
||||||
{
|
|
||||||
// Open history file to append
|
|
||||||
CAutoFile fileout(OpenUndoFile(pos), SER_DISK, CLIENT_VERSION);
|
|
||||||
if (fileout.IsNull())
|
|
||||||
return error("%s : OpenUndoFile failed", __func__);
|
|
||||||
|
|
||||||
// Write index header
|
|
||||||
unsigned int nSize = fileout.GetSerializeSize(blockundo);
|
|
||||||
fileout << FLATDATA(Params().MessageStart()) << nSize;
|
|
||||||
|
|
||||||
// Write undo data
|
|
||||||
long fileOutPos = ftell(fileout.Get());
|
|
||||||
if (fileOutPos < 0)
|
|
||||||
return error("%s : ftell failed", __func__);
|
|
||||||
pos.nPos = (unsigned int)fileOutPos;
|
|
||||||
fileout << blockundo;
|
|
||||||
|
|
||||||
// calculate & write checksum
|
|
||||||
CHashWriter hasher(SER_GETHASH, PROTOCOL_VERSION);
|
|
||||||
hasher << hashBlock;
|
|
||||||
hasher << blockundo;
|
|
||||||
fileout << hasher.GetHash();
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool UndoReadFromDisk(CBlockUndo& blockundo, const CDiskBlockPos& pos, const uint256& hashBlock)
|
|
||||||
{
|
|
||||||
// Open history file to read
|
|
||||||
CAutoFile filein(OpenUndoFile(pos, true), SER_DISK, CLIENT_VERSION);
|
|
||||||
if (filein.IsNull())
|
|
||||||
return error("%s : OpenBlockFile failed", __func__);
|
|
||||||
|
|
||||||
// Read block
|
|
||||||
uint256 hashChecksum;
|
|
||||||
try {
|
|
||||||
filein >> blockundo;
|
|
||||||
filein >> hashChecksum;
|
|
||||||
}
|
|
||||||
catch (const std::exception& e) {
|
|
||||||
return error("%s : Deserialize or I/O error - %s", __func__, e.what());
|
|
||||||
}
|
|
||||||
|
|
||||||
// Verify checksum
|
|
||||||
CHashWriter hasher(SER_GETHASH, PROTOCOL_VERSION);
|
|
||||||
hasher << hashBlock;
|
|
||||||
hasher << blockundo;
|
|
||||||
if (hashChecksum != hasher.GetHash())
|
|
||||||
return error("%s : Checksum mismatch", __func__);
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
std::string CBlockFileInfo::ToString() const {
|
std::string CBlockFileInfo::ToString() const {
|
||||||
return strprintf("CBlockFileInfo(blocks=%u, size=%u, heights=%u...%u, time=%s...%s)", nBlocks, nSize, nHeightFirst, nHeightLast, DateTimeStrFormat("%Y-%m-%d", nTimeFirst), DateTimeStrFormat("%Y-%m-%d", nTimeLast));
|
return strprintf("CBlockFileInfo(blocks=%u, size=%u, heights=%u...%u, time=%s...%s)", nBlocks, nSize, nHeightFirst, nHeightLast, DateTimeStrFormat("%Y-%m-%d", nTimeFirst), DateTimeStrFormat("%Y-%m-%d", nTimeLast));
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user