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
Show file tree
Hide file tree
Changes from 3 commits
Commits
Show all changes
65 commits
Select commit Hold shift + click to select a range
fd687ae
First draft of ipfs: URI spec, see #138
Sep 30, 2016
001074a
Merge remote-tracking branch 'upstream/master'
Nov 16, 2016
f697953
changed to double-slash since it is paths
Nov 16, 2016
95ea52f
Fix links to repos (#144)
RichardLitt Nov 28, 2016
bb43338
Move libp2p to libp2p/spec (#134)
RichardLitt Nov 29, 2016
0de7fc8
match description identifiers
atfornes Dec 29, 2016
143894e
feat/public-api/cli - dag-api (#150)
daviddias Feb 12, 2017
621bef0
first pass on the bitswap spec (#95)
daviddias Feb 13, 2017
e1500be
change r.Expires from time.Duration to time.Time (#140)
keks Feb 13, 2017
e3e8b27
IPFS Repo Spec update (#43)
jbenet Feb 13, 2017
cc77625
DEX (#57)
daviddias Feb 13, 2017
9ce8165
update table of contents
daviddias Feb 13, 2017
8281b40
Update links to multiformats
musoke Apr 29, 2017
09d8263
Fix IPRS link
therealklanni May 5, 2017
5ae9cfc
Update links in API bindings document
Jun 8, 2017
6451bc8
Update README.md
alphaCTzo7G Jul 14, 2017
bdbf3da
Fixed typo
karthik4444 Aug 2, 2017
058d1b8
fix typo (#164)
oakmac Aug 22, 2017
280c41b
Fix PDD link (#165)
wildmolasses Sep 30, 2017
328b91a
chore: move PDD to its own repo
daviddias Oct 22, 2017
f274f17
Add DWeb Addressing intro and table of contents
Nov 11, 2017
979169e
bitswap/README.md: Cleaning up the format (#168)
dgrisham Dec 13, 2017
aefa25f
Correct links to libp2p spec (#173)
joesis Dec 27, 2017
36588ed
spec: bitswap spec revamp (#171)
dgrisham May 12, 2018
30eae90
update index, fix typos, move IPRS to libp2p
daviddias May 13, 2018
f665f12
Fix broken links in Merkle DAG spec
Mr0grog May 17, 2018
7733b53
Add description of *why* MerkleDAG was deprecated
Mr0grog May 17, 2018
f1143b6
Clarify where work is going on in the UnixFS spec (#178)
Mr0grog May 29, 2018
63f2fc3
fix broken IPRS link
b5 Jul 12, 2018
3f810ca
docs: update public API listing
daviddias Aug 22, 2018
60bc999
remove unwant from the public API
Stebalien Aug 22, 2018
33f9aae
docs: ipns
vasco-santos Jun 27, 2018
e4d2294
chore: add overview
vasco-santos Oct 22, 2018
4a446c1
fix: code review
vasco-santos Dec 24, 2018
9a19bce
chore: apply suggestions from code review
Stebalien Dec 28, 2018
a32964c
chore: update naming/README.md
Stebalien Dec 28, 2018
fa5a435
Add IPNS -> /naming link
rvagg Mar 18, 2019
761a3d4
fix cli public api link
MattSkala Apr 4, 2019
e49b237
Add spec for file bits of unixfs v1
whyrusleeping Apr 24, 2019
5dc58b8
docs(bitswap): update to current
hannahhoward Apr 29, 2019
4436b98
Update standard readme badge style (#189)
AliMirlou May 22, 2019
c975a9a
Update README.md (#204)
djdv Jun 7, 2019
a3bc19e
tidy things a bit
daviddias Jul 10, 2019
0bff981
Update README.md
daviddias Jul 10, 2019
1818bf2
fix: update repo specs according to the current state of go-ipfs repo…
vasco-santos Jul 10, 2019
78b4d2c
spec maintainer protocol stub
daviddias Jul 10, 2019
99b0293
reorg things
daviddias Jul 10, 2019
d4166c6
normalize spec files
daviddias Jul 10, 2019
5c04552
add maintainer protocol
daviddias Jul 15, 2019
5d1d914
Update SPEC_MAINTAINER_PROTOCOL.md
daviddias Jul 16, 2019
d641583
Update SPEC_MAINTAINER_PROTOCOL.md
daviddias Jul 16, 2019
d80ede1
Update README.md
daviddias Jul 16, 2019
2d3e9df
Update SPEC_MAINTAINER_PROTOCOL.md
daviddias Jul 29, 2019
f27c4ec
Update SPEC_MAINTAINER_PROTOCOL.md
daviddias Jul 29, 2019
97ca93f
Update SPEC_MAINTAINER_PROTOCOL.md
daviddias Jul 29, 2019
d0cec2b
Update README.md
daviddias Jul 29, 2019
f53f981
Update README.md
daviddias Jul 29, 2019
09e28aa
Update README.md
daviddias Jul 29, 2019
157eef3
Update README.md
daviddias Jul 29, 2019
c5afe96
Update REPO_FS.md
daviddias Jul 29, 2019
7bd377c
Update REPO_FS.md
daviddias Jul 29, 2019
71019eb
improve wording
daviddias Jul 29, 2019
cf71f06
remove spec maintainer protocol for now
daviddias Sep 11, 2019
75e203e
Add bridged chats
swedneck Sep 20, 2019
9ed6cf5
use matrix.io instead of riot, move matrix before irc
swedneck Sep 24, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 41 additions & 0 deletions uri/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
URI specifications
==================

Authors: [Patrik Wallström](github.com/pawal)

Reviewers:

* * *

# Abstract

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?


# Status of this spec

![](https://img.shields.io/badge/status-wip-orange.svg?style=flat-square)

Note: These specifications are currently in the wip phase, things are likely to change.

# 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


* **canonical NURI** is a file system **path**. Does not need a URI specification. Examples, where **Qm...** is a [multihash](https://github.com/multiformats/multihash):
* /ipfs/Qm...
* /ipns/Qm...
* /ipfs/Qm.../filename
* /ipns/Qm.../dir/filename

* **[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

* fs://ipns/Qm.../foo/bar

# Notes

Previous work has been done with URIs for naming hashes, most notably [RFC6920](https://tools.ietf.org/html/rfc6920). 6920 create the URI schemas ni: and nih: where the latter is a human-speakable name for the hash, both schemas are published in the [IANA registry](http://www.iana.org/assignments/uri-schemes/uri-schemes.xhtml). These schemas were created from the EU FP7 project [SAIL](http://www.sail-project.eu/), Scalable and Adaptive Internet Solutions.

The guidelines to submitting URI schemas to the IANA registry is described in [RFC7595](https://tools.ietf.org/html/rfc7595).
34 changes: 34 additions & 0 deletions uri/ipfs.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
(last updated 2016-09-30)

Resource Identifier (RI) Scheme name: ipfs
Status: provisional

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

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}

ipfs://ipns/<multihash>/path

Scheme semantics:
"ipfs links"

Encoding considerations:
Unknown, use with care.

Applications/protocols that use this scheme name:
Used by ipfs clients, providing a hash of a file or resource to be located on the network.

Interoperability considerations:
Unknown, use with care.
Security considerations:
Unknown, use with care.
Contact:
Scheme creator: Patrik Wallström on behalf of the IPFS project, [email protected]
Author/Change controller:
The IPFS project
References:
https://github.com/ipfs/specs/uri/ipfs.md, https://en.wikipedia.org/wiki/IPFS, https://ipfs.io/

(file created 2016-09-30)