Browse Source

Wallet: optimize rescan to skip blocks prior to birthday

0.10
Jeff Garzik 12 years ago
parent
commit
8da9dd0725
  1. 7
      src/wallet.cpp

7
src/wallet.cpp

@ -790,6 +790,13 @@ int CWallet::ScanForWalletTransactions(CBlockIndex* pindexStart, bool fUpdate)
LOCK(cs_wallet); LOCK(cs_wallet);
while (pindex) 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; CBlock block;
block.ReadFromDisk(pindex); block.ReadFromDisk(pindex);
BOOST_FOREACH(CTransaction& tx, block.vtx) BOOST_FOREACH(CTransaction& tx, block.vtx)

Loading…
Cancel
Save