Skip to content

Faster Wallet IBD/rescan

Luke Champine requested to merge wallet-sync into staging

The wallet now interacts with the database via a single global bolt.Tx, which is committed every 2 minutes or when durability is required (e.g. before reporting the balance). In testing on my SSD, this sped up a full rescan about 5x. This sort of speedup is important because some of the new wallet functionality (e.g. InitSeed and SweepSeed) requires rescanning.

A further step to take here would be to remove the references to w.dbTx in a bunch of places and instead make it implicit. The only reason I decided against this was that it makes it very difficult to work with any sort of bolt.Tx that isn't w.dbTx.

Merge request reports