From 2ff8e92e37eb55aafdb5b07458fac4ef99edc6a5 Mon Sep 17 00:00:00 2001 From: Wilmer Paulino Date: Wed, 19 Jun 2019 19:59:35 -0700 Subject: [PATCH] wallet: remove wallet best height check when checkpointing intial sync This check is not required since the wallet's best height is the genesis block. --- wallet/wallet.go | 42 +++++++++++------------------------------- 1 file changed, 11 insertions(+), 31 deletions(-) diff --git a/wallet/wallet.go b/wallet/wallet.go index 569165e..f9b16af 100644 --- a/wallet/wallet.go +++ b/wallet/wallet.go @@ -359,10 +359,20 @@ func (w *Wallet) syncWithChain(birthdayStamp *waddrmgr.BlockStamp) error { // arbitrary height, rather than all the blocks from genesis, so // we persist this height to ensure we don't store any blocks // before it. - startHeight, _, err := w.getSyncRange(chainClient, birthdayStamp) + _, bestHeight, err := chainClient.GetBestBlock() if err != nil { return err } + startHeight := bestHeight - waddrmgr.MaxReorgDepth + 1 + if startHeight < 0 { + startHeight = 0 + } + if birthdayStamp.Height < startHeight { + startHeight = birthdayStamp.Height + } + + // With the starting height obtained, get the remaining block + // details required by the wallet. startHash, err := chainClient.GetBlockHash(int64(startHeight)) if err != nil { return err @@ -724,36 +734,6 @@ func (w *Wallet) recovery(chainClient chain.Interface, return nil } -// getSyncRange determines the best height range to sync with the chain to -// ensure we don't rescan blocks more than once. -func (w *Wallet) getSyncRange(chainClient chain.Interface, - birthdayBlock *waddrmgr.BlockStamp) (int32, int32, error) { - - // The wallet requires to store up to MaxReorgDepth blocks, so we'll - // start from there, unless our birthday is before it. - _, bestHeight, err := chainClient.GetBestBlock() - if err != nil { - return 0, 0, err - } - startHeight := bestHeight - waddrmgr.MaxReorgDepth + 1 - if startHeight < 0 { - startHeight = 0 - } - if birthdayBlock.Height < startHeight { - startHeight = birthdayBlock.Height - } - - // If the wallet's tip has surpassed our starting height, then we'll - // start there as we don't need to rescan blocks we've already - // processed. - walletHeight := w.Manager.SyncedTo().Height - if walletHeight > startHeight { - startHeight = walletHeight - } - - return startHeight, bestHeight, nil -} - // defaultScopeManagers fetches the ScopedKeyManagers from the wallet using the // default set of key scopes. func (w *Wallet) defaultScopeManagers() (