for garbage collection to work the store needs to store the cid not just a multihash. also bitswap needs it for no obvious reason. the main advantage of using multihashes instead of cids would be (appart from the minuscle storage savings) that v0 and v1 cids containing the same multihash are treated the same.
Simple fixes would be:
add a into_v1 or canonicalize method to Cid
make to_bytes_v1 public or add a to_canonical_bytes method
Having a into_v1() (or to_v1(), as_v1(), I still haven't internalized the Rust API guidelines properly) sounds good, this is also what we do in other CID implementations.
for garbage collection to work the store needs to store the cid not just a multihash. also bitswap needs it for no obvious reason. the main advantage of using multihashes instead of cids would be (appart from the minuscle storage savings) that v0 and v1 cids containing the same multihash are treated the same.
Simple fixes would be: