bindle
bindle copied to clipboard
Discussion: New ID types for parcels
After some great discussion and feedback at Cloud Native Wasm Day (huge hat tip to @carlsverre for this), I think we should have a discussion about how we attach IDs to parcels. There are 2 distinct possibilities here: CIDs and DIDs.
Here are my initial observations as to the benefits/tradeoffs of each one
CIDs
- Still use SHA256 for the underlying multihash, but has support for other hash types in the future
- Universally unique ID that can be used with things like IPFS
- Lots of libraries available (including Rust) for different languages
- I don't know if it is super widely used outside of IPFS or not. Basically it isn't a "standard" in the strictest sense
DIDs
- A W3C standard
- Identifiers that are generated and assigned by the specific entity
- This approach seems a little heavyweight for what we need in Bindle
Basically I feel like CIDs might be a better option for us, but I want to leave it open for discussion so we can do some more research
CID/DID resources:
- IPFS CID speciication.
- W3C DID Core specification
- W3C Multihash proposal
- W3C Linked Data Proofs proposal
- relevant github issue on CIDs and W3C
- IPID
- and https://github.com/jonnycrunch/ipid
Dat Protocol Another project worth learning about to get inspiration is the Dat protocol. An interesting point about Dat is that it also has a invoice architecture similar to Bindle allowing a single "Dat" to contain many files. It's also possible to put a database in a Dat or another non-trivial data structure.
I feel like dat could be a really interesting backend for bindle