mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-02-02 09:46:52 -05:00
Use addrv2 serialization in anchors.dat
This commit is contained in:
parent
8cd8f37dfe
commit
e2f0548b52
1 changed files with 11 additions and 11 deletions
|
@ -23,7 +23,7 @@ bool SerializeDB(Stream& stream, const Data& data)
|
||||||
{
|
{
|
||||||
// Write and commit header, data
|
// Write and commit header, data
|
||||||
try {
|
try {
|
||||||
CHashWriter hasher(SER_DISK, CLIENT_VERSION);
|
CHashWriter hasher(stream.GetType(), stream.GetVersion());
|
||||||
stream << Params().MessageStart() << data;
|
stream << Params().MessageStart() << data;
|
||||||
hasher << Params().MessageStart() << data;
|
hasher << Params().MessageStart() << data;
|
||||||
stream << hasher.GetHash();
|
stream << hasher.GetHash();
|
||||||
|
@ -35,7 +35,7 @@ bool SerializeDB(Stream& stream, const Data& data)
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename Data>
|
template <typename Data>
|
||||||
bool SerializeFileDB(const std::string& prefix, const fs::path& path, const Data& data)
|
bool SerializeFileDB(const std::string& prefix, const fs::path& path, const Data& data, int version)
|
||||||
{
|
{
|
||||||
// Generate random temporary filename
|
// Generate random temporary filename
|
||||||
uint16_t randv = 0;
|
uint16_t randv = 0;
|
||||||
|
@ -45,7 +45,7 @@ bool SerializeFileDB(const std::string& prefix, const fs::path& path, const Data
|
||||||
// open temp output file, and associate with CAutoFile
|
// open temp output file, and associate with CAutoFile
|
||||||
fs::path pathTmp = gArgs.GetDataDirNet() / tmpfn;
|
fs::path pathTmp = gArgs.GetDataDirNet() / tmpfn;
|
||||||
FILE *file = fsbridge::fopen(pathTmp, "wb");
|
FILE *file = fsbridge::fopen(pathTmp, "wb");
|
||||||
CAutoFile fileout(file, SER_DISK, CLIENT_VERSION);
|
CAutoFile fileout(file, SER_DISK, version);
|
||||||
if (fileout.IsNull()) {
|
if (fileout.IsNull()) {
|
||||||
fileout.fclose();
|
fileout.fclose();
|
||||||
remove(pathTmp);
|
remove(pathTmp);
|
||||||
|
@ -106,11 +106,11 @@ bool DeserializeDB(Stream& stream, Data& data, bool fCheckSum = true)
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename Data>
|
template <typename Data>
|
||||||
bool DeserializeFileDB(const fs::path& path, Data& data)
|
bool DeserializeFileDB(const fs::path& path, Data& data, int version)
|
||||||
{
|
{
|
||||||
// open input file, and associate with CAutoFile
|
// open input file, and associate with CAutoFile
|
||||||
FILE* file = fsbridge::fopen(path, "rb");
|
FILE* file = fsbridge::fopen(path, "rb");
|
||||||
CAutoFile filein(file, SER_DISK, CLIENT_VERSION);
|
CAutoFile filein(file, SER_DISK, version);
|
||||||
if (filein.IsNull()) {
|
if (filein.IsNull()) {
|
||||||
LogPrintf("Missing or invalid file %s\n", path.string());
|
LogPrintf("Missing or invalid file %s\n", path.string());
|
||||||
return false;
|
return false;
|
||||||
|
@ -125,12 +125,12 @@ CBanDB::CBanDB(fs::path ban_list_path) : m_ban_list_path(std::move(ban_list_path
|
||||||
|
|
||||||
bool CBanDB::Write(const banmap_t& banSet)
|
bool CBanDB::Write(const banmap_t& banSet)
|
||||||
{
|
{
|
||||||
return SerializeFileDB("banlist", m_ban_list_path, banSet);
|
return SerializeFileDB("banlist", m_ban_list_path, banSet, CLIENT_VERSION);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CBanDB::Read(banmap_t& banSet)
|
bool CBanDB::Read(banmap_t& banSet)
|
||||||
{
|
{
|
||||||
return DeserializeFileDB(m_ban_list_path, banSet);
|
return DeserializeFileDB(m_ban_list_path, banSet, CLIENT_VERSION);
|
||||||
}
|
}
|
||||||
|
|
||||||
CAddrDB::CAddrDB()
|
CAddrDB::CAddrDB()
|
||||||
|
@ -140,12 +140,12 @@ CAddrDB::CAddrDB()
|
||||||
|
|
||||||
bool CAddrDB::Write(const CAddrMan& addr)
|
bool CAddrDB::Write(const CAddrMan& addr)
|
||||||
{
|
{
|
||||||
return SerializeFileDB("peers", pathAddr, addr);
|
return SerializeFileDB("peers", pathAddr, addr, CLIENT_VERSION);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CAddrDB::Read(CAddrMan& addr)
|
bool CAddrDB::Read(CAddrMan& addr)
|
||||||
{
|
{
|
||||||
return DeserializeFileDB(pathAddr, addr);
|
return DeserializeFileDB(pathAddr, addr, CLIENT_VERSION);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CAddrDB::Read(CAddrMan& addr, CDataStream& ssPeers)
|
bool CAddrDB::Read(CAddrMan& addr, CDataStream& ssPeers)
|
||||||
|
@ -161,13 +161,13 @@ bool CAddrDB::Read(CAddrMan& addr, CDataStream& ssPeers)
|
||||||
void DumpAnchors(const fs::path& anchors_db_path, const std::vector<CAddress>& anchors)
|
void DumpAnchors(const fs::path& anchors_db_path, const std::vector<CAddress>& anchors)
|
||||||
{
|
{
|
||||||
LOG_TIME_SECONDS(strprintf("Flush %d outbound block-relay-only peer addresses to anchors.dat", anchors.size()));
|
LOG_TIME_SECONDS(strprintf("Flush %d outbound block-relay-only peer addresses to anchors.dat", anchors.size()));
|
||||||
SerializeFileDB("anchors", anchors_db_path, anchors);
|
SerializeFileDB("anchors", anchors_db_path, anchors, CLIENT_VERSION | ADDRV2_FORMAT);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<CAddress> ReadAnchors(const fs::path& anchors_db_path)
|
std::vector<CAddress> ReadAnchors(const fs::path& anchors_db_path)
|
||||||
{
|
{
|
||||||
std::vector<CAddress> anchors;
|
std::vector<CAddress> anchors;
|
||||||
if (DeserializeFileDB(anchors_db_path, anchors)) {
|
if (DeserializeFileDB(anchors_db_path, anchors, CLIENT_VERSION | ADDRV2_FORMAT)) {
|
||||||
LogPrintf("Loaded %i addresses from %s\n", anchors.size(), anchors_db_path.filename());
|
LogPrintf("Loaded %i addresses from %s\n", anchors.size(), anchors_db_path.filename());
|
||||||
} else {
|
} else {
|
||||||
anchors.clear();
|
anchors.clear();
|
||||||
|
|
Loading…
Add table
Reference in a new issue