aboutsummaryrefslogtreecommitdiff
path: root/src/walletdb.cpp
diff options
context:
space:
mode:
authorphantomcircuit <phantomcircuit@debian>2013-10-12 23:44:28 -0700
committerphantomcircuit <phantomcircuit@debian>2013-10-12 23:44:28 -0700
commitbc68788317a4ece16f0cfb0cb7eb1e0e220cbc6f (patch)
tree03c5f214af41d66e01c426a5ece04bd0183317cf /src/walletdb.cpp
parenta42eef6f10e1da1c76e1c9ba49a2ff2459c62fea (diff)
comment explaining new wallet format for key/wkey entries
Diffstat (limited to 'src/walletdb.cpp')
-rw-r--r--src/walletdb.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/walletdb.cpp b/src/walletdb.cpp
index f7edd08458..d31db5e425 100644
--- a/src/walletdb.cpp
+++ b/src/walletdb.cpp
@@ -317,6 +317,12 @@ ReadKeyValue(CWallet* pwallet, CDataStream& ssKey, CDataStream& ssValue,
ssValue >> wkey;
pkey = wkey.vchPrivKey;
}
+
+ // Old wallets store keys as "key" [pubkey] => [privkey]
+ // ... which was slow for wallets with lots of keys, because the public key is re-derived from the private key
+ // using EC operations as a checksum.
+ // Newer wallets store keys as "key"[pubkey] => [privkey][hash(pubkey,privkey)], which is much faster while
+ // remaining backwards-compatible.
try
{
ssValue >> hash;