diff options
author | Pieter Wuille <sipa@ulyssis.org> | 2013-05-22 20:58:53 +0200 |
---|---|---|
committer | Pieter Wuille <sipa@ulyssis.org> | 2013-05-22 20:59:36 +0200 |
commit | 95c7db3dbf4012dd02e5f1f30e6d982341facaa6 (patch) | |
tree | b5148e78e2e84eeb4c337b4db5755bf34ca0dc8b | |
parent | 6b99cfae3cf3e8f3a5f0bbda9e77fe3419902f9d (diff) |
More bestblock records in wallets
Write bestblock records in wallets:
* Every 20160 blocks synced, no matter what (before: none during IBD)
* Every 144 blocks after IBD (before: for every block, slow)
* When creating a new wallet
* At shutdown
This should result in far fewer spurious rescans.
-rw-r--r-- | src/init.cpp | 3 | ||||
-rw-r--r-- | src/main.cpp | 2 |
2 files changed, 4 insertions, 1 deletions
diff --git a/src/init.cpp b/src/init.cpp index d619cb4121..ebd9dee7b2 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -100,6 +100,7 @@ void Shutdown() StopNode(); { LOCK(cs_main); + pwalletMain->SetBestChain(CBlockLocator(pindexBest)); if (pblocktree) pblocktree->Flush(); if (pcoinsTip) @@ -998,6 +999,8 @@ bool AppInit2(boost::thread_group& threadGroup) if (!pwalletMain->SetAddressBookName(pwalletMain->vchDefaultKey.GetID(), "")) strErrors << _("Cannot write default address") << "\n"; } + + pwalletMain->SetBestChain(CBlockLocator(pindexBest)); } printf("%s", strErrors.str().c_str()); diff --git a/src/main.cpp b/src/main.cpp index 2d22541baf..b7efac53b1 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1870,7 +1870,7 @@ bool SetBestChain(CValidationState &state, CBlockIndex* pindexNew) } // Update best block in wallet (so we can detect restored wallets) - if (!fIsInitialDownload) + if ((pindexNew->nHeight % 20160) == 0 || (!fIsInitialDownload && (pindexNew->nHeight % 144) == 0)) { const CBlockLocator locator(pindexNew); ::SetBestChain(locator); |