The storage layer provides an API for binary streaming, but due to the way we've set things up, this requires the storage layer to do bit twiddling, interpreting the binary data, dropping stuff, adding stuff, changing stuff, all based on raw binary data. This is nasty.
Changing the on-disk format so that the encoder/decoder for header can directly be applied to however we store the header. In other words, we can't just write the block, because the nested header often uses a different encoder (missing CBOR-in-CBOR tag, missing HFC tag, etc.)
Dropping old versioning protocols that required us to fake a size hint for Byron.
The storage layer provides an API for binary streaming, but due to the way we've set things up, this requires the storage layer to do bit twiddling, interpreting the binary data, dropping stuff, adding stuff, changing stuff, all based on raw binary data. This is nasty.