Skip to content

Support dag-jose codec by default #8364

Description

@oed

Checklist

  • My issue is specific & actionable.
  • I am not suggesting a protocol enhancement.
  • I have searched on the issue tracker for my issue.

Description

With ipld-prime merged (🎉) into go-ipfs we (Ceramic team) are currently working on creating a plugin that adds support for dag-jose to go-ipfs. However, the plugin approach has several disadvantages. The main one being that a secondary binary needs to be distributed and used by everyone that wants to support dag-jose. Another is that it's unclear how the plugin would work with various different versions of ipfs (maybe someone could provide clarity around this?).

To mitigate the issues with adding dag-jose using a plugin support could be added for it in go-ipfs directly. Created this ticket to gauge support for this from the ipfs maintainers.

DAG-JOSE adoption:
Several projects are already looking to use dag-jose and it really is the easiest integration point between the Decentralized Identifier (DID) community and IPFS.

  • Specification
  • In Ceramic, dag-jose is a central component
  • IdentityHubs also uses dag-jose as the main (currently only) way to store signed/encrypted data
  • Textile is experimenting with an alternative implementation of threads which uses dag-jose for signatures
  • QRI has expressed interest in the format as well

Implementations:

  • javascript, currently used in production by Ceramic
  • go, was created as part of a joint grant from PL + EF

Maintenance:
The go-dag-jose code is very minimal and the overhead in go-ipfs should be negligible. As for the go-dag-jose package itself, it was created by @alexjg, but the Ceramic team is happy to take over maintenance work. Repo can be transfered to ceramicnetwork or ipld github orgs, whatever makes the most sense.

If a go ahead is given we would be happy to contribute the integration to the go-ipfs code base!

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions