I initially estimated table sizes to preallocate the full archive, and got pretty close in most cases. But inputs was way low and outputs was way high. So it looks like the key assumption of input/output ratio was off. I'm going to write a tool to scan the entire store of blocks to obtain the exact count of inputs and outputs, and the total wire serialization size of the store. By verifying merkle trees that can also ensure that serialization is fully round-tripping.