-
Notifications
You must be signed in to change notification settings - Fork 7
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Other than the nits, my only real concern is that switching everything to multihashes is, strictly speaking, throwing away correct information that we have. We only reference "raw leaves" with the filestore so we always know the codec.
We are doing this in general right? IPFS will lose any clue on what type of content it is storing in the datastore, other than that provided by context (in this case knowing that /filestore things are raw). But that was the case with CID v0s anyways.. |
Not quite.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Now we just need the filestore migration.
Comment on where this lives in the migration process (context for anyone wondering): This change isn't strictly speaking necessary for stage 1 as (a) the blockstore interfaces still use CIDs and (b) all blocks in the filestore will be cidv1 raw blocks. However, when we migrate the blockstore interfaces to multihashes, we'd either have to convert inbound multihashes back into CIDs when looking them up in the filestore's section of the datastore or we'd have to migrate at that point. Migrating now and using multihashes everywhere is likely the cleanest solution. |
6a525ef
to
d02a09b
Compare
I'll add this to the migration |
Do not merge: I need to set the right go-ipfs-blockstore dependency here before merging |
This will be breaking for anyone using filestore who has not migrated the underlying storage and coverted CIDs to raw multihashes. It keeps the outside interfaces intact except for `ListRes` which includes a multihash rather than a Cid.
61b6a60
to
e764867
Compare
I have fixed the deps and merged. I tagged v1.0.0 even if this was not breaking and things worked without needing a migration because all filestore blocks are CidV1.Raw. Just in case someone, somewhere, has done something else with this or misused it somehow. |
This will be breaking for anyone using filestore who has not migrated
the underlying storage and coverted CIDs to raw multihashes.
It keeps the outside interfaces intact except for
ListRes
which includesa multihash rather than a Cid.