A massive optimization to fetching logs from past blocks (both in historic and in sync::from_block modes) would be to parallelize the processing.
Processing finalized blocks could be parallelized with no issues, as no reorgs could ever happen there.
For finalized blocks, we could either:
- avoid parallelization
- fetch in parallel, but if a reorg happens, we can determine which block batches to re-fetch.