diff options
author | Jeff Garzik <jgarzik@bitpay.com> | 2013-06-10 09:38:13 -0400 |
---|---|---|
committer | Jeff Garzik <jgarzik@bitpay.com> | 2013-06-10 09:38:13 -0400 |
commit | 8da9dd0725ea90b1fd085d9551177fe62d7a9ba2 (patch) | |
tree | fc00abe9a78626ea741a715b9d4b36bdb6dc5c7c | |
parent | 3869fb89b60091281b43a35921057ba3f43c18f0 (diff) |
Wallet: optimize rescan to skip blocks prior to birthday
-rw-r--r-- | src/wallet.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/wallet.cpp b/src/wallet.cpp index aa13711110..9a4a92cd5f 100644 --- a/src/wallet.cpp +++ b/src/wallet.cpp @@ -790,6 +790,13 @@ int CWallet::ScanForWalletTransactions(CBlockIndex* pindexStart, bool fUpdate) LOCK(cs_wallet); while (pindex) { + // no need to read and scan block, if block was created before + // our wallet birthday (as adjusted for block time variability) + if (nTimeFirstKey && (pindex->nTime < (nTimeFirstKey - 7200))) { + pindex = pindex->GetNextInMainChain(); + continue; + } + CBlock block; block.ReadFromDisk(pindex); BOOST_FOREACH(CTransaction& tx, block.vtx) |