MCPcopy Create free account
hub / github.com/ElementsProject/elements / DeserializeDB

Function DeserializeDB

src/addrdb.cpp:87–109  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

85
86template <typename Stream, typename Data>
87void DeserializeDB(Stream& stream, Data& data, bool fCheckSum = true)
88{
89 CHashVerifier<Stream> verifier(&stream);
90 // de-serialize file header (network specific magic number) and ..
91 unsigned char pchMsgTmp[4];
92 verifier >> pchMsgTmp;
93 // ... verify the network matches ours
94 if (memcmp(pchMsgTmp, Params().MessageStart(), sizeof(pchMsgTmp))) {
95 throw std::runtime_error{"Invalid network magic number"};
96 }
97
98 // de-serialize data
99 verifier >> data;
100
101 // verify checksum
102 if (fCheckSum) {
103 uint256 hashTmp;
104 stream >> hashTmp;
105 if (hashTmp != verifier.GetHash()) {
106 throw std::runtime_error{"Checksum mismatch, data corrupted"};
107 }
108 }
109}
110
111template <typename Data>
112void DeserializeFileDB(const fs::path& path, Data& data, int version)

Callers 2

DeserializeFileDBFunction · 0.85
ReadFromStreamFunction · 0.85

Calls 2

ParamsClass · 0.70
GetHashMethod · 0.45

Tested by

no test coverage detected