MCPcopy Create free account
hub / github.com/BTCGPU/BTCGPU / DeserializeDB

Function DeserializeDB

src/addrdb.cpp:64–92  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

62
63template <typename Stream, typename Data>
64bool DeserializeDB(Stream& stream, Data& data, bool fCheckSum = true)
65{
66 try {
67 CHashVerifier<Stream> verifier(&stream);
68 // de-serialize file header (network specific magic number) and ..
69 unsigned char pchMsgTmp[4];
70 verifier >> pchMsgTmp;
71 // ... verify the network matches ours
72 if (memcmp(pchMsgTmp, Params().MessageStart(), sizeof(pchMsgTmp)))
73 return error("%s: Invalid network magic number", __func__);
74
75 // de-serialize data
76 verifier >> data;
77
78 // verify checksum
79 if (fCheckSum) {
80 uint256 hashTmp;
81 stream >> hashTmp;
82 if (hashTmp != verifier.GetHash()) {
83 return error("%s: Checksum mismatch, data corrupted", __func__);
84 }
85 }
86 }
87 catch (const std::exception& e) {
88 return error("%s: Deserialize or I/O error - %s", __func__, e.what());
89 }
90
91 return true;
92}
93
94template <typename Data>
95bool DeserializeFileDB(const fs::path& path, Data& data)

Callers 2

DeserializeFileDBFunction · 0.85
ReadMethod · 0.85

Calls 4

errorFunction · 0.85
whatMethod · 0.80
ParamsClass · 0.70
GetHashMethod · 0.45

Tested by

no test coverage detected