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.
This commit is contained in:
parent
6b99cfae3c
commit
95c7db3dbf
@ -100,6 +100,7 @@ void Shutdown()
|
|||||||
StopNode();
|
StopNode();
|
||||||
{
|
{
|
||||||
LOCK(cs_main);
|
LOCK(cs_main);
|
||||||
|
pwalletMain->SetBestChain(CBlockLocator(pindexBest));
|
||||||
if (pblocktree)
|
if (pblocktree)
|
||||||
pblocktree->Flush();
|
pblocktree->Flush();
|
||||||
if (pcoinsTip)
|
if (pcoinsTip)
|
||||||
@ -998,6 +999,8 @@ bool AppInit2(boost::thread_group& threadGroup)
|
|||||||
if (!pwalletMain->SetAddressBookName(pwalletMain->vchDefaultKey.GetID(), ""))
|
if (!pwalletMain->SetAddressBookName(pwalletMain->vchDefaultKey.GetID(), ""))
|
||||||
strErrors << _("Cannot write default address") << "\n";
|
strErrors << _("Cannot write default address") << "\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pwalletMain->SetBestChain(CBlockLocator(pindexBest));
|
||||||
}
|
}
|
||||||
|
|
||||||
printf("%s", strErrors.str().c_str());
|
printf("%s", strErrors.str().c_str());
|
||||||
|
@ -1870,7 +1870,7 @@ bool SetBestChain(CValidationState &state, CBlockIndex* pindexNew)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Update best block in wallet (so we can detect restored wallets)
|
// 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);
|
const CBlockLocator locator(pindexNew);
|
||||||
::SetBestChain(locator);
|
::SetBestChain(locator);
|
||||||
|
Loading…
Reference in New Issue
Block a user