Still a lot of work to be done, but this at least improves download speeds and bootup times by starting chain download/verification in parallel with header download / verification. It also downloads much more data at a time by requesting data from multiple peers.
Ultimately we will want to parallelize both download and verification using some sort of producer/consumer queue but as I started thinking about it it required a much bigger refactor.
Still a lot of work to be done, but this at least improves download speeds and bootup times by starting chain download/verification in parallel with header download / verification. It also downloads much more data at a time by requesting data from multiple peers.
Ultimately we will want to parallelize both download and verification using some sort of producer/consumer queue but as I started thinking about it it required a much bigger refactor.