There are some potential feefilter cleanups mentioned and motivated in comment https://github.com/bitcoin/bitcoin/pull/21509#issuecomment-805808485 . If you address the locking one, please be careful and make sure that `round()` is only called under a lock. See https://github.com/bitcoin/bitcoin/pull/21509#issuecomment-807992199

#### Useful skills:

* Bitcoin protocol messages
* Bitcoin Core P2P design
* Running our unit and functional tests

#### Want to work on this issue?

For guidance on contributing, please read [CONTRIBUTING.md](https://github.com/bitcoin/bitcoin/blob/master/CONTRIBUTING.md) before opening your pull request.

chainstate->InitCoinsCache(nCoinCacheUsage);
                    assert(chainstate->CanFlushToDisk());
                    if (!is_coinsview_empty(chainstate)) {
                         
                        if (!chainstate->LoadChainTip(chainparams)) {
                            strLoadError = _("Error initializing block database");
                            failed_chainstate_init = true;
                            break;  
                        }
                        assert(chainstate->m_chain.Tip() != nullptr);
                    }
                }
                if (failed_chainstate_init) {
                    break;  
                }
            } catch (const std::exception& e) {
                LogPrintf("%s\n", e.what());
                strLoadError = _("Error opening block database");
                break;
            }
            if (!fReset) {
                LOCK(cs_main);
                auto chainstates{chainman.GetAll()};
                if (std::any_of(chainstates.begin(), chainstates.end(),
                                [&chainparams](const CChainState* cs) EXCLUSIVE_LOCKS_REQUIRED(cs_main) { return cs->NeedsRedownload(chainparams); })) {
                    strLoadError = strprintf(_("Witness data for blocks after height %d requires validation. Please restart with -reindex."),
                                             chainparams.GetConsensus().SegwitHeight);
                    break;
                }
            }