PR description:
Maintaining the blockfilterindexes in prune mode is possible and may lead to efficient p2p based rescans of wallets (restore backups, import/sweep keys) beyond the prune height (rescans not part of that PR).
This PR allows running the blockfilterindex(es) in conjunction with pruning.
- Bitcoind/Qt will shutdown during startup when missing block data has been detected ([re]enable -blockfilterindex when we already have pruned)
- manual block pruning is disabled during blockfilterindex sync
- auto-pruning is delayed during blockfilterindex sync
Allow blockfilter in conjunction with prune
https://github.com/bitcoin/bitcoin/pull/15946/commits/6abe9f5b11cd4a5ecb6caca8443fe2950a417842
index: Fix backwards search for bestblock
https://github.com/bitcoin/bitcoin/pull/23365/commits/698c524698c33595a4d555eaa9e21bc19b4d3e93
Avoid accessing nullpointer in BaseIndex::GetSummary()
https://github.com/bitcoin/bitcoin/pull/15946/commits/00d57ff76854938ead800767fb673a8af46eac8e
Avoid pruning below the blockfilterindex sync height
https://github.com/bitcoin/bitcoin/pull/15946/commits/5e112269c311a559bfded814d3c3c438349a1986
This is a backport of core#15946 [1/2] and core#23365 [1/2]
PR23365 fixes a rare issue when only the genesis block is indexed.