docs: add exploration document#1
Merged
vasco-santos merged 1 commit intomainfrom May 22, 2025
Merged
Conversation
lidel
reviewed
May 23, 2025
Comment on lines
+77
to
+85
| - The `multiaddr` MAY include application level private tuples to specify the retrieval protocols supported (e.g. `/ip4/.../p2p/qmfoo/retrieval/bitswap/retrieval/http`), in order to enable the client to avoid unecessary interactions with providers (e.g. no need for protocol probing or identification). Including it is encouraged for low-latency, non-interactive lookups. | ||
|
|
||
| ### Retrieval Protocol Code Registry (Informative) | ||
|
|
||
| | Protocol Code | Description | | ||
| | ------------- | ------------------------- | | ||
| | http | Trustless IPFS Gateway v1 | | ||
| | bitswap | IPFS Bitswap protocol | | ||
| | graphsync | GraphSync protocol | |
There was a problem hiding this comment.
Unsure how realistic value added by /retrieval/ in multiaddr is – may be safer to decouple it from ?provider, which is less controversial.
I think /retrieval/ in multiaddr won't avoid extra probing / lookups, unless we are more strict about what http and bitswap mean:
- With
/retrieval/bitswapthe client does not know which version of bitswap is supported by the other end. It has to do libp2p identify to learn that. - Not sure what
/retrieval/httpmean. What isTrustless IPFS Gateway v1? I assume you mean some subset of https://specs.ipfs.tech/http-gateways/trustless-gateway/ ?application/vnd.ipld.raw?- If you assume
application/vnd.ipld.car, I am raising the same concern I had in Add a transport code to indicate content is provided via Trustless HTTP Gateway multiformats/multicodec#321 (comment)- a Block is the main primitive, not a CAR. CAR requires server to understand DAG traversal and codecs, usually requires server to understand UnixFS and other PL-specific data structures. Block does not, and is easier to implement in vendor-agnostic way, and support future data formats with it.
- In the future we may see block-only gateways and split the trustless gateway spec into separate documents to make it clear.
- In practice client will either do probing first, or send request with
Acceptblindly assuming the other end supportapplication/vnd.ipld.raw, but had to write this here for posterity :)
- If you assume
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.