Closed rvagg closed 4 years ago
re serialization in Rust:
(x,y).serialize(..)
is going to be a tuple{"0":CID}
& {"1":[...]}
for serialization and deserialization seems to be all good.K
has to be a serializable thing so I hope that means that it'll always end up as bytes. The Go HAMT strictly assumes string keys, not serializable keys, and it does a conversion of string to bytes (hopefully avoiding unicode questions for the most part). Lotus does this thing where it'll take something that's bytes and convert it to a string for a Set()
and then internally the HAMT converts back to bytes. I'm a little concerned about the cross-language compatibility of that process but this is where test fixtures are going to come in handy.👍
They've switched to SHA2-256 for hashAlg
upstream so the whole murmur3 hassle has gone away. Have updated the PR to match.
932af7c
I believe this is correct as of now, but there's some potential modifications that may happen prior to mainnet.
This section will get linked from https://github.com/ipfs/go-hamt-ipld/pull/52 and the Filecoin specs which currently just point to the top of this doc.