But then you realize that since you are bitcoind, you have some other issues to deal with. A utxo store provides a material advantage in terms of validation, however it cannot be populated out of order. So you must populate it in the validation chaser, as download gaps are filled. You read each block back out of the store, deserialize it in full, and push all the outputs, and then pop all of those that are spent in that block. Then you perform validation on the block...