|
|
|
@ -84,14 +84,14 @@ bool load_checkpoints_from_json(cryptonote::checkpoints& checkpoints, std::strin
|
|
|
|
|
boost::system::error_code errcode;
|
|
|
|
|
if (! (boost::filesystem::exists(json_hashfile_fullpath, errcode)))
|
|
|
|
|
{
|
|
|
|
|
LOG_PRINT_L0("Blockchain checkpoints file not found");
|
|
|
|
|
LOG_PRINT_L1("Blockchain checkpoints file not found");
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
LOG_PRINT_L0("Adding checkpoints from blockchain hashfile");
|
|
|
|
|
LOG_PRINT_L1("Adding checkpoints from blockchain hashfile");
|
|
|
|
|
|
|
|
|
|
uint64_t prev_max_height = checkpoints.get_max_height();
|
|
|
|
|
LOG_PRINT_L0("Hard-coded max checkpoint height is " << prev_max_height);
|
|
|
|
|
LOG_PRINT_L1("Hard-coded max checkpoint height is " << prev_max_height);
|
|
|
|
|
t_hash_json hashes;
|
|
|
|
|
epee::serialization::load_t_from_json_file(hashes, json_hashfile_fullpath);
|
|
|
|
|
for (std::vector<t_hashline>::const_iterator it = hashes.hashlines.begin(); it != hashes.hashlines.end(); )
|
|
|
|
@ -99,10 +99,10 @@ bool load_checkpoints_from_json(cryptonote::checkpoints& checkpoints, std::strin
|
|
|
|
|
uint64_t height;
|
|
|
|
|
height = it->height;
|
|
|
|
|
if (height <= prev_max_height) {
|
|
|
|
|
LOG_PRINT_L0("ignoring checkpoint height " << height);
|
|
|
|
|
LOG_PRINT_L1("ignoring checkpoint height " << height);
|
|
|
|
|
} else {
|
|
|
|
|
std::string blockhash = it->hash;
|
|
|
|
|
LOG_PRINT_L0("Adding checkpoint height " << height << ", hash=" << blockhash);
|
|
|
|
|
LOG_PRINT_L1("Adding checkpoint height " << height << ", hash=" << blockhash);
|
|
|
|
|
ADD_CHECKPOINT(height, blockhash);
|
|
|
|
|
}
|
|
|
|
|
++it;
|
|
|
|
@ -150,7 +150,7 @@ bool load_checkpoints_from_dns(cryptonote::checkpoints& checkpoints)
|
|
|
|
|
|
|
|
|
|
if (avail && !valid)
|
|
|
|
|
{
|
|
|
|
|
LOG_PRINT_L0("DNSSEC present and failed validation for query last url, and all other urls either failed validation or returned no records");
|
|
|
|
|
LOG_PRINT_L0("WARNING: all checkpoints.moneropulse.net/org/co/se records failed DNSSEC validation and/or returned no records");
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|