ipfs / ipfs/specs

Specify how delegated /routing/v1 API can support new protocols

Open
#377 1 comment 1 reaction 0 assignees View on GitHub
kind/bug need/analysis need/community-input
Dominant language
HTML
Stars
1.2k
Forks
247
Avg merge
5d 21h
Merged PRs (30d)
4

Description

Extracted loose ends from IPIP-337 (to unblock it), but we need to address below at some point.
cc @guseggert @aschmahmann @masih

## Open questions

- How do we deal with plain text labels from [table.csv](https://github.com/multiformats/multicodec/blob/master/table.csv) changing in the future?
- It happened before: [go-cid had invalid mapping](https://github.com/ipfs/go-cid/releases/tag/v0.2.0), and [we changed label for at least 4 codes](https://github.com/multiformats/multicodec/pull/283/files)
- Can we allow numeric values instead (indicate them in hex, start with `0x`)
- How do we allow for novel protocols that do not have multicodec registered?
- https://github.com/ipfs/specs/pull/337/files#r1044055388
- How does the use of Schema interact with systems like IPNI?
- https://github.com/ipfs/specs/pull/337/files#r1044060034

Maybe more tangible example:

- How does Iroh announce their blake3-specific data transfer protocol?

## Idea 1

> - `Protocol` is the multicodec name of the transfer protocol or an opaque string
> - for protocols with multicodec, a numeric code starting with `0x` can be used instead of name
> - for protocols without multicodec registered, we could go with UUID in hex form (also `0x` prefix, but we avoid collisions due to them bveing long enough)
>

## Idea 2

- state `Protocol` and `Schema` are opaque strings, and write convention how to return opaque records as base-encoded bytes.
- there is some conceptual ovelap with https://github.com/ipni/specs/pull/4

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.