Skip to content
This repository has been archived by the owner on Jun 29, 2022. It is now read-only.

Spec refining: Do not bind the canonical representation to CBOR #6

Closed
nicola opened this issue Jul 26, 2016 · 4 comments
Closed

Spec refining: Do not bind the canonical representation to CBOR #6

nicola opened this issue Jul 26, 2016 · 4 comments
Labels
status/deferred Conscious decision to pause or backlog

Comments

@nicola
Copy link
Member

nicola commented Jul 26, 2016

The world might come up with new standards and a CBOR hashed object might point to a CBOR2 hashed object. In other words, there is no way to differentiate across "current" and "canonical" formats. In IPFS jargon, this needs a sort of multicodec for the hashes.

// implicit: bind canonical representation to the namespace
// ipld means CBOR is canonical, ipld2 means CBOR2 is canonical
{
  name: { '/': '/ipld/hash'}
}
{
  name: { '/': '/ipld2/hash'}
}
// explicit: use multicodec
{
  name: {'/': '/cbor/ipld/hash'} // or just /cbor/ipld
}
// hidden: use link properties
// only possible if this issue goes through: https://github.com/ipld/specs/issues/2
{
  name: {'/': 'hash', canonical: 'cbor'} // or any better property name
}

Pro:

  • we don't make a choice that is forever

Cons:

  • links will need to contain encoding (multicodec? multicanonical?) prefixing the linked object, or have a new hidden field (see Spec refining: Properties in links #2) specifying the encoding
@dignifiedquire
Copy link
Member

Maybe we could do something like we do in multistream, i.e. give semver to the ipld namespace: /ipld/1.0.0, /ipld/2.0.0, ..

@jbenet
Copy link
Contributor

jbenet commented Aug 1, 2016

fits very well with ipfs/specs#130

@nicola
Copy link
Member Author

nicola commented Aug 10, 2016

We have agreed that IPLD will not be bound to CBOR, instead, the CID proposal will make it so that there will be a byte to encode the format to which we are bound to. 🎉

@daviddias daviddias added the status/deferred Conscious decision to pause or backlog label Mar 19, 2018
@rvagg
Copy link
Member

rvagg commented Aug 14, 2019

Closing due to staleness as per team agreement to clean up the issue tracker a bit (ipld/team-mgmt#28). This doesn't mean this issue is off the table entirely, it's just not on the current active stack but may be revisited in the near future. If you feel there is something pertinent here, please speak up, reopen, or open a new issue. [/boilerplate]

@rvagg rvagg closed this as completed Aug 14, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
status/deferred Conscious decision to pause or backlog
Projects
None yet
Development

No branches or pull requests

5 participants