I'm going to generalize the non-stream reader/writer and move it into system with some testing. Since all chain and message objects de/serialize against the same read/writer interface, this can just implement the full interface and thus provides a significant performance improvement for not only the store object serializations (such as input, witness and output) but also network I/O. I'd expect that to more than double the single thread full sync (assuming peer capacity) and also full store read (which is required for validation).