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 |
|
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 |
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.
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.
Following is the formal application for the registration of the provisional URI scheme ipfs.
ipfs
provisional
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
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:
Fig. 1 QR-code containing URI based on the ipfs scheme
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:
Fig. 1 QR-code containing URI based on the ipfs scheme
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.
Since CIDs can be human readable, it is important to encode characters outside of the unreserved character set correctly.
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.
These are the interoperability considerations.
These are the security considerations.
For any questions, comments or suggestions, please contact jonnycrunch by sending an e-mail to jonnycrunch@me.com.
These are people we would like to thanks
[1] Paper #1, describing IPFS white paper