mirror of
https://github.com/dashpay/dash.git
synced 2024-12-25 12:02:48 +01:00
merge bitcoin#15588: Log the actual wallet file version and no longer publicly expose the "version" record
This commit is contained in:
parent
2fecd1495f
commit
e1a40e554c
@ -584,7 +584,7 @@ BerkeleyBatch::BerkeleyBatch(BerkeleyDatabase& database, const char* pszMode, bo
|
|||||||
if (fCreate && !Exists(std::string("version"))) {
|
if (fCreate && !Exists(std::string("version"))) {
|
||||||
bool fTmp = fReadOnly;
|
bool fTmp = fReadOnly;
|
||||||
fReadOnly = false;
|
fReadOnly = false;
|
||||||
WriteVersion(CLIENT_VERSION);
|
Write(std::string("version"), CLIENT_VERSION);
|
||||||
fReadOnly = fTmp;
|
fReadOnly = fTmp;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -406,17 +406,6 @@ public:
|
|||||||
return (ret == 0);
|
return (ret == 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ReadVersion(int& nVersion)
|
|
||||||
{
|
|
||||||
nVersion = 0;
|
|
||||||
return Read(std::string("version"), nVersion);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool WriteVersion(int nVersion)
|
|
||||||
{
|
|
||||||
return Write(std::string("version"), nVersion);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool static Rewrite(BerkeleyDatabase& database, const char* pszSkip = nullptr);
|
bool static Rewrite(BerkeleyDatabase& database, const char* pszSkip = nullptr);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -184,7 +184,6 @@ public:
|
|||||||
unsigned int m_unknown_records{0};
|
unsigned int m_unknown_records{0};
|
||||||
bool fIsEncrypted{false};
|
bool fIsEncrypted{false};
|
||||||
bool fAnyUnordered{false};
|
bool fAnyUnordered{false};
|
||||||
int nFileVersion{0};
|
|
||||||
std::vector<uint256> vWalletUpgrade;
|
std::vector<uint256> vWalletUpgrade;
|
||||||
|
|
||||||
CWalletScanState() {
|
CWalletScanState() {
|
||||||
@ -394,12 +393,6 @@ ReadKeyValue(CWallet* pwallet, CDataStream& ssKey, CDataStream& ssValue,
|
|||||||
ssValue >> keypool;
|
ssValue >> keypool;
|
||||||
pwallet->LoadKeyPool(nIndex, keypool);
|
pwallet->LoadKeyPool(nIndex, keypool);
|
||||||
}
|
}
|
||||||
else if (strType == "version")
|
|
||||||
{
|
|
||||||
ssValue >> wss.nFileVersion;
|
|
||||||
if (wss.nFileVersion == 10300)
|
|
||||||
wss.nFileVersion = 300;
|
|
||||||
}
|
|
||||||
else if (strType == "cscript")
|
else if (strType == "cscript")
|
||||||
{
|
{
|
||||||
uint160 hash;
|
uint160 hash;
|
||||||
@ -485,9 +478,8 @@ ReadKeyValue(CWallet* pwallet, CDataStream& ssKey, CDataStream& ssValue,
|
|||||||
strErr = "Error reading wallet database: Unknown non-tolerable wallet flags found";
|
strErr = "Error reading wallet database: Unknown non-tolerable wallet flags found";
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
} else if (strType != "bestblock" && strType != "bestblock_nomerkle" &&
|
||||||
else if (strType != "bestblock" && strType != "bestblock_nomerkle" &&
|
strType != "minversion" && strType != "acentry" && strType != "version") {
|
||||||
strType != "minversion" && strType != "acentry"){
|
|
||||||
wss.m_unknown_records++;
|
wss.m_unknown_records++;
|
||||||
}
|
}
|
||||||
} catch (const std::exception& e) {
|
} catch (const std::exception& e) {
|
||||||
@ -590,7 +582,12 @@ DBErrors WalletBatch::LoadWallet(CWallet* pwallet)
|
|||||||
if (result != DBErrors::LOAD_OK)
|
if (result != DBErrors::LOAD_OK)
|
||||||
return result;
|
return result;
|
||||||
|
|
||||||
pwallet->WalletLogPrintf("nFileVersion = %d\n", wss.nFileVersion);
|
// Last client version to open this wallet, was previously the file version number
|
||||||
|
int last_client = CLIENT_VERSION;
|
||||||
|
m_batch.Read(std::string("version"), last_client);
|
||||||
|
|
||||||
|
int wallet_version = pwallet->GetVersion();
|
||||||
|
pwallet->WalletLogPrintf("Wallet File Version = %d\n", wallet_version > 0 ? wallet_version : last_client);
|
||||||
|
|
||||||
pwallet->WalletLogPrintf("Keys: %u plaintext, %u encrypted, %u total; Watch scripts: %u; HD PubKeys: %u; Metadata: %u; Unknown wallet records: %u\n",
|
pwallet->WalletLogPrintf("Keys: %u plaintext, %u encrypted, %u total; Watch scripts: %u; HD PubKeys: %u; Metadata: %u; Unknown wallet records: %u\n",
|
||||||
wss.nKeys, wss.nCKeys, wss.nKeys + wss.nCKeys,
|
wss.nKeys, wss.nCKeys, wss.nKeys + wss.nCKeys,
|
||||||
@ -604,11 +601,11 @@ DBErrors WalletBatch::LoadWallet(CWallet* pwallet)
|
|||||||
WriteTx(pwallet->mapWallet.at(hash));
|
WriteTx(pwallet->mapWallet.at(hash));
|
||||||
|
|
||||||
// Rewrite encrypted wallets of versions 0.4.0 and 0.5.0rc:
|
// Rewrite encrypted wallets of versions 0.4.0 and 0.5.0rc:
|
||||||
if (wss.fIsEncrypted && (wss.nFileVersion == 40000 || wss.nFileVersion == 50000))
|
if (wss.fIsEncrypted && (last_client == 40000 || last_client == 50000))
|
||||||
return DBErrors::NEED_REWRITE;
|
return DBErrors::NEED_REWRITE;
|
||||||
|
|
||||||
if (wss.nFileVersion < CLIENT_VERSION) // Update
|
if (last_client < CLIENT_VERSION) // Update
|
||||||
WriteVersion(CLIENT_VERSION);
|
m_batch.Write(std::string("version"), CLIENT_VERSION);
|
||||||
|
|
||||||
if (wss.fAnyUnordered)
|
if (wss.fAnyUnordered)
|
||||||
result = pwallet->ReorderTransactions();
|
result = pwallet->ReorderTransactions();
|
||||||
@ -856,13 +853,3 @@ bool WalletBatch::TxnAbort()
|
|||||||
{
|
{
|
||||||
return m_batch.TxnAbort();
|
return m_batch.TxnAbort();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool WalletBatch::ReadVersion(int& nVersion)
|
|
||||||
{
|
|
||||||
return m_batch.ReadVersion(nVersion);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool WalletBatch::WriteVersion(int nVersion)
|
|
||||||
{
|
|
||||||
return m_batch.WriteVersion(nVersion);
|
|
||||||
}
|
|
||||||
|
@ -192,10 +192,6 @@ public:
|
|||||||
bool TxnCommit();
|
bool TxnCommit();
|
||||||
//! Abort current transaction
|
//! Abort current transaction
|
||||||
bool TxnAbort();
|
bool TxnAbort();
|
||||||
//! Read wallet version
|
|
||||||
bool ReadVersion(int& nVersion);
|
|
||||||
//! Write wallet version
|
|
||||||
bool WriteVersion(int nVersion);
|
|
||||||
private:
|
private:
|
||||||
BerkeleyBatch m_batch;
|
BerkeleyBatch m_batch;
|
||||||
WalletDatabase& m_database;
|
WalletDatabase& m_database;
|
||||||
|
Loading…
Reference in New Issue
Block a user