Skip to content

Latest commit

 

History

History
142 lines (94 loc) · 6.56 KB

application.md

File metadata and controls

142 lines (94 loc) · 6.56 KB
title subtitle mainfont mainfontoptions fontfamilyoptions monofont date author abstract keywords
Provisional URI Scheme IANA Registration Application
`ipfs`
Source Sans Pro
sfdefault
DejaVu Sans Mono
January 2020
jonnycrunch
Juan Benet
Dietrich Ayala
This document contains the formal application for registering a provisioninal Uniform Resource Identifier (URI) Scheme named ipfs, a URI scheme to be used to identify, not locate, resources on the internet using self-describing content identifiers.
Self-describing content identifiers, multihash, multicodecs, multibase

1 Introduction

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent a velit quis ante dignissim dignissim eget vitae tellus. Duis eget neque tellus, eu elementum leo. Nullam quis velit in magna bibendum dictum. Curabitur tincidunt cursus tellus, in egestas augue porta ut. Phasellus facilisis porttitor elit, vel pretium felis volutpat in. Praesent euismod sagittis tortor, eget varius nisi consequat eget. Sed facilisis aliquet accumsan. Maecenas aliquam, dolor id hendrerit viverra, lacus tortor elementum nunc, quis commodo ligula orci vel augue.

2 Justification for this registration application

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent a velit quis ante dignissim dignissim eget vitae tellus. Duis eget neque tellus, eu elementum leo. Nullam quis velit in magna bibendum dictum. Curabitur tincidunt cursus tellus, in egestas augue porta ut. Phasellus facilisis porttitor elit, vel pretium felis volutpat in. Praesent euismod sagittis tortor, eget varius nisi consequat eget. Sed facilisis aliquet accumsan. Maecenas aliquam, dolor id hendrerit viverra, lacus tortor elementum nunc, quis commodo ligula orci vel augue.

3 URI Scheme Registration

Following is the formal application for the registration of the provisional URI scheme ipfs.

URI scheme name

ipfs

Status

provisional

URI scheme syntax

Using the format defined in RFC 3986 [1], and some of its base classes, a formal definition of the ipfs URI scheme syntax is as follows:

ipfs-uri = "ipfs://" cid 
cid
  key
Example:
= stringtag / numericaltag
= key "=" strvalue
= "#" key "=" numvalue
= 1*( unreserved / pct-encoded )
= *( unreserved / pct-encoded )
= [ "+" / "-" ] 1*DIGIT [ "." *DIGIT ]


path          = path-abempty    ; begins with "/" or is empty
                    / path-absolute   ; begins with "/" but not "//"
                    / path-noscheme   ; begins with a non-colon segment
                    / path-rootless   ; begins with a segment
                    / path-empty      ; zero characters

      path-abempty  = *( "/" segment )
      path-absolute = "/" [ segment-nz *( "/" segment ) ]
      path-noscheme = segment-nz-nc *( "/" segment )
      path-rootless = segment-nz *( "/" segment )
      path-empty    = 0<pchar>

segment       = *pchar
      segment-nz    = 1*pchar
      segment-nz-nc = 1*( unreserved / pct-encoded / sub-delims / "@" )
                    ; non-zero-length segment without any colon ":"

      pchar         = unreserved / pct-encoded / sub-delims / ":" / "@"


 ipfs://QmNjB22zAYMeqFTjBoLnjkK2pGRmPvQJcE6SgEThFHDQ8A/Hello_world.txt#nose
  \_/    \___________________________________________/\______________/\__/
   |                       |                                |            |
 scheme                   cid                              path       fragment

Basic Example

ipfs://bafybeibdkyv3mly2rxxeqiydl5ntbmvqlbghd2cwjgyjmeiuo73ctjgf2y

Using the ipfs protocol (not described here), this full URI utilizing the ipfs: scheme and key = bafybeibdkyv3mly2rxxeqiydl5ntbmvqlbghd2cwjgyjmeiuo73ctjgf2y resolves to: Hello World!

The corresponding URI as a QR- code would look as follows:

QR-code containing URI based on the ipfs scheme{.center}

Fig. 1 QR-code containing URI based on the ipfs scheme

Expanded Example with path

ipfs://bafybeiafyuggkq6mmzurej4xo5g4crsfuqnfwe3qdcpoijarg2rbt2htpm/Hello_world.txt

Using the ipfs protocol (not described here), this full URI utilizing the ipfs: scheme and key = bafybeibdkyv3mly2rxxeqiydl5ntbmvqlbghd2cwjgyjmeiuo73ctjgf2y resolves to: Hello World!

The corresponding URI as a QR- code would look as follows:

QR-code containing URI based on the ipfs scheme{.center}

Fig. 1 QR-code containing URI based on the ipfs scheme

URI scheme semantics

An ipfs URI defines one unique key identifer. This unique identifier represents a self-describing content identifier (CID), which may or may note resolve to a resource over the ipfs protocol (described seperately). The CID are case sensitive.

Encoding considerations

Since CIDs can be human readable, it is important to encode characters outside of the unreserved character set correctly.

Applications/protocols that use this URI scheme name

This URI scheme does not specify underlying transport protocol, and is not limited to a particular protocol. A variant of this scheme is used together with the IPFS protocol [[2]], which will be updated as soon as this provisional URI scheme has been approved.

Interoperability considerations

These are the interoperability considerations.

Security considerations

These are the security considerations.

Contact

For any questions, comments or suggestions, please contact jonnycrunch by sending an e-mail to jonnycrunch@me.com.

Acknowledgements

These are people we would like to thanks

References

[1] Paper #1, describing IPFS white paper