This PR lets indexing code mostly run outside of the node process. It also improves indexing sync logic, which is moved out of indexing code to a new node::SyncChain()
function.
Almost all the commits in this PR are small refactoring changes that move code from src/index/
to src/node/
, or replace references to node types like CBlockIndex
, CChain
, CChainState
in index code. There are only two commits affecting indexing sync logic which make complicated or substantive changes:
8862eddeb68b
indexes: Rewrite chain sync logic, simplify index sync codef458cf8a4ce1
indexes: Initialize indexes without holding cs_main
The commit messages have more details about these and other changes. Followups to this PR will reuse indexing sync code for wallets (#15719, #11756) and let indexes run in separate processes (#10102)