Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make charter more explicit about composability and unsigned_varint dependency #1

Merged
merged 5 commits into from Aug 14, 2023
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
40 changes: 26 additions & 14 deletions README.md
@@ -1,25 +1,34 @@
# IETF Multiformats Working Group

Multiformats are a collection of self-describing data formats that consist of an
inline data header and a data value. Multiformats have binary and text-based
representations and are used to express base encodings (multibase),
cryptographic hashes (multihash), cryptographic keys (multikey), network
addresses (multiaddr), and a variety of other binary serialization formats
(multicodec).
inline data header and a data value. They are composable in that some of the
more complex forms take another multiformat header/value tuple as value,
recursively. Multiformats are designed to compose data into binary streams with
both inline header values (called [multicodecs][1]) and corresponding data
values, with the exception of multibase, which base-encodes any binary and
prepends its inline header to the target encoding rather than to the binary data
value being encoded.

The scope of this Working Group is to discuss these formats as they relate to
standardization at the IETF. Specifically, the group is currently focused on the
standardization of two Multiformats: Multibase and Multihash. The input
documents for these two Multiformats are:
standardization at the IETF for wider and safer usage. Specifically, the group
is currently focused on the standardization of the two most generally-useful
multiformats: multibase and multihash. The input documents for these two
multiformats are:

* https://datatracker.ietf.org/doc/draft-multiformats-multibase/
* https://datatracker.ietf.org/doc/draft-multiformats-multihash/

Outputs for the group will be:

* A Multibase specification
* A Multihash specification
* A registry for Multiformats with initial entries for Multibase and Multihash
1. An RFC specifying multibase usage
2. An RFC defining an independent multibase registry and populating it with
today's already-implemented stable and final values
3. An RFC defining a registry-group for all the multicodecs, empty at
inception, with registration process and group-wide constraints on
registration values
4. An RFC specifying multihash usage
5. An RFC defining a multihash registry within the multicodecs registry group
and populating it with today's already-implemented stable and final values

The outputs from this Working Group are currently being used by various groups,
including the W3C Verifiable Credentials Working Group, W3C Decentralized
Expand All @@ -32,9 +41,12 @@ listed in this section as well as other relevant groups as the work progresses.

Items that are out of scope for the group include:

* Standardizing Multiformats that are not explicitly listed in the charter.
* Creating or standardizing new data formats identified by a Multiformat byte
* Standardizing other multiformats that are not explicitly listed in the
charter.
* Creating or standardizing new data formats identified by a multicodec byte
header.
* Determining whether one data format is better than another data format.
* Changing current Multiformat header assignments in a way that breaks backward
* Changing current multiformat header assignments in a way that breaks backward
compatibility with production deployments.

[1]: https://ipfs.io/ipfs/QmXec1jjwzxWJoNbxQF5KffL8q6hFXm9QwUGaa3wKGk6dT/#title=Multicodecs&src=https://raw.githubusercontent.com/multiformats/multicodec/master/table.csv