I just merged the first iteration of read-ahead caching for block confirmation during initial/catch-up sync. There is a thread starvation bug that eventually deadlocks the process. However it is clear that block confirmation performance is significantly improved by pre-reading blocks in parallel.