I picked up 4 x 8GiB RAM cards, so that I'll be able to test 8/16/24/32GiB configurations. Should have that and my 2Gbps WAN up and running tomorrow. I've moved on to concurrent validation. As a rough approximation, this process...
- deserialize block
- read block/tx previous valid/invalid states
- populate all tx input prevouts
- validate all txs/block (accept/connect)
- write validation metadata for each tx/block
- read block previous confirmable state
- confirm each tx/block (maturity, spent, double spend)
- write confirmable metadata for block
- associate confirmed txs with their block
- organize block (index height)
...takes about 1 second for the largest blocks when performed entirely sequentially. If we (pessimistically) extend that across all blocks (early 300k blocks are orders of magnitude faster), that's 233 hours (10 days). If we (optimistically) divide that by my 64 cores, it's 3.65 hours. Realistically I expect that to be closer to 2 hrs.
(edited)