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

First draft of ipfs: URI spec, see #138 #139

Closed
wants to merge 65 commits into from
Closed

First draft of ipfs: URI spec, see #138 #139

wants to merge 65 commits into from

Conversation

pawal
Copy link

@pawal pawal commented Sep 30, 2016

No description provided.

@jbenet jbenet added the status/deferred Conscious decision to pause or backlog label Sep 30, 2016
@ghost ghost self-assigned this Nov 2, 2016
@ghost
Copy link

ghost commented Nov 2, 2016

Hey, thanks so much, and sorry for keeping this waiting so long. I'll take a proper look and provide feedback in the next 2 weeks

@ghost ghost added the status/ready Ready to be worked label Jan 10, 2017
@daviddias
Copy link
Member

@nicola this should be on the IPLD org, correct?

@ghost
Copy link

ghost commented Feb 14, 2017

@nicola this should be on the IPLD org, correct?

Not sure, the fs: URI scheme doesn't seem coupled to IPLD. It sits at the root of the path namespace (it defines the path), and IPLD is just in /ipfs or /ipld.

@nicola
Copy link
Member

nicola commented Feb 14, 2017

Although it does not belong to ipfs either..
IPFS in the browser?

@pawal
Copy link
Author

pawal commented Feb 14, 2017

Not sure exactly what you guys are referring to when you say that which sub-project this belongs to. The spec does not refer to either fs: or ipld.

Is there something I should change in the document, or are you thinking of where to publish the spec?

@ghost
Copy link

ghost commented Mar 7, 2017

Hey @pawal, I'm just getting back into the addressing scheme discussion and it looks like we're pretty close to consensus on the ipfs:// and fs: schemes, their semantics, and the upgrade path. Which is awesome, given the complexity of the issues, and the constraints \o/

Just want to let you know that I'm sorry we weren't very responsive to your PR and contribution (and even stumbled in here with unrelated stuff). Let's wrap up the other discussion and then update the IANA registration docs. I definitely wanna get these sent off :) It's just that wrapping up the addressing scheme discussion is a prerequisite.

From what I understand it'll likely be three documents in the end, for ipfs://, ipns://, and fs:. Do you know how strict IANA are when it comes to registering schemes? Is there a chance they will tell us to revisit everything and come back with just one scheme?

@pawal
Copy link
Author

pawal commented Mar 7, 2017

Thank you for your update. Just let me know what changes you are planning.

In this case IANA makes us of expert reviewers for registration of new types, and several of them are friendly enough. There is no problem having ipfs and ipns now, and later come in with another URI registration. But we should probably not change ipfs or ipns too much if we want to register them. (Errata is ok.)

You can have a look here and read some of the non-RFC documents: http://www.iana.org/assignments/uri-schemes/uri-schemes.xhtml

Also read RFC6920 as background material, and reference it in your conclusions.

@nichtich
Copy link

Any progress on this issue? I need to reference datasets via URIs so IPFS would only be an option if there is an URI scheme

@lidel
Copy link
Member

lidel commented Oct 27, 2017

I think it is worth noting that a plan was created,
see four stages of the upgrade path for path addressing and

tl;dr

Short-term, URLs:

ipfs://{hash}http://127.0.0.1:8080/ipfs/{hash}
ipns://{hash}http://127.0.0.1:8080/ipns/{hash}

Long-term, URI:

dweb:/ip[f|n]s/{hash}http://127.0.0.1:8080/ip[f|n]s/{hash}

@pawal
Copy link
Author

pawal commented Oct 27, 2017

So this PR is essentially ok?

Copy link
Member

@lidel lidel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I added some notes on things that changed since 2016 :-)
cc @lgierth for sanity-check


For different applications to handle ipfs references there need to be URIs registered. In order to for applications to understand how to handle the references, the URIs needs to have specificaitions. The generic syntax for URIs are described in [RFC3986](https://tools.ietf.org/html/rfc3986).

The consensus of which URIs need to be specified can be found here: https://github.com/ipfs/go-ipfs/issues/1678#issuecomment-157478515
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this was updated and superseded by @lgierth's comment at #152 (comment), no?


# Overview

The discussion on what URI schemes that are needed is concluded [here](https://github.com/ipfs/go-ipfs/issues/1678#issuecomment-157478515). The discussion lead to the consensus that these URI schemas are needed:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would add #152 (comment) here too


* **[ipfs://](./ipfs.md)** style URI that references IPFS content with the multihash and filepath.

* **[fs://](./fs.md)** style URI referencing ipfs-specific AND non-ipfs specific hash resolution mechanisms
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

According to #152 (comment) fs:// URL is replaced by dweb: URI

Applications/protocols that use this scheme name: ipfs

Scheme syntax:
ipfs://ipfs/<multihash>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we just go with ipfs://{cid} these days

Scheme syntax:
ipfs://ipfs/<multihash>
ipfs://ipfs/<multihash>/path
ipfs://ipns/<multihash>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

..and ipns://{peerid} instead of ipfs://ipns/{peerid}

@daviddias
Copy link
Member

@pawal I was going to rebase this PR onto master, but found that it got created in your fork. Would you prefer:

  • rebasing yourself
  • creating a new branch from this repo so that I can then rebase it myself?

@pawal
Copy link
Author

pawal commented Oct 17, 2019

I could perhaps do the rebase later this week. Thanks for the heads up.

RichardLitt and others added 6 commits October 20, 2019 14:52
I have moved libp2p to github.com/libp2p/spec, keeping all of the commit history there. Some justification given in libp2p/website#8, but mostly this is clear; we have a libp2p organization, and the spec should be there, not in IPFS, now.
change formating to serializing in Record System definition for consistency.
All the code treats it as a `time.Time` and that's the only thing that makes sense here.

I know it's just an example but good, correct examples help understanding the ideas and reasoning behind a spec.
@pawal
Copy link
Author

pawal commented Oct 20, 2019

@daviddias Hi, I rebased my fork now. Not sure that everything worked out ok, but it looked fine to me.

@lidel
Copy link
Member

lidel commented Oct 21, 2019

IIRC this PR was adding two files in uri/ and now changes stuff all over the place 😬
@pawal Try copying uri/ somewhere safe, then delete local branch and recreate it from latest master + add uri/ back and force-push.

@pawal
Copy link
Author

pawal commented Oct 22, 2019

@lidel - ok, will resubmit. There has been some proposed changes in this PR, but I will redo my original PR and we'll start from there.

pawal added a commit to pawal/specs that referenced this pull request Oct 22, 2019
@lidel
Copy link
Member

lidel commented Oct 23, 2019

Thank you! Let's continue in #222

@lidel lidel closed this Oct 23, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
status/deferred Conscious decision to pause or backlog status/ready Ready to be worked
Projects
None yet
Development

Successfully merging this pull request may close these issues.