Move IPFS addressing spec to ipfs/specs
The best and up-to-date source of truth about IPFS addressing right now is in ADDRESSING.md memo.
As more and more people add IPFS support to their software, especially on the web, we should decrease noise and increase signal around addressing by adding proper technical spec doc to the ipfs/specs repo, as suggested in https://github.com/ipfs/specs/issues/138.
Timeline
- 2022:
- WIP gateway specs, compliance and consolidation work
- 2021: :green_heart: Brave supports
ipfs://anipns://out of the box (details) - 2020: :green_heart: Collab with Igalia resulted in
ipfs://andipns://URIs being registered at IANA (details) - 2019:
- 2018: ADDRESSING.md memo is created as a techncial summary of ipfs/specs/dweb-addressing
- 2018: Suborigins & Subdomains
- 2017-2018: ipfs/specs/dweb-addressing branch with lots and lots of notes
- 2015-2017: Memo with Background on Address Scheme discussions: https://github.com/ipfs/specs/pull/152
- 2017: Tackle identifying origins: ipfs/in-web-browsers/issues/6
- 2017: The four stages of the upgrade path for path addressing https://github.com/ipfs/specs/pull/152#issuecomment-284628862
- 2016: Support Custom Protocols in WebExtension https://github.com/ipfs-shipyard/ipfs-companion/issues/164
- 2015: First discussion about addressing schemes https://github.com/ipfs/go-ipfs/issues/1678
TODO
- [ ] create a new PR to
ipfs/specs(consolidate technical content from Prior Art) (https://github.com/ipfs/specs/blob/master/DWEB_ADDRESSING.md, reuse https://github.com/ipfs/specs/pull/152)- [ ] PR should aim to close https://github.com/ipfs/specs/issues/138
- [ ] close https://github.com/ipfs/specs/pull/139 and point at new PR
- [ ] ensure it covers
/ipns/as well (https://github.com/ipfs/go-ipfs/issues/5287, https://github.com/ipfs/in-web-browsers/issues/118) - [ ] get it merged to ipfs/specs repo
- [ ] update
ADDRESSING.mdto point at the doc in ipfs/specs - [ ] close remaining issues/PRs about addressing with comment pointing at document in specs repo (add links below so we don't forget)
- [ ] https://github.com/ipfs/interface-js-ipfs-core/issues/287
- [ ] https://github.com/ipfs/docs/issues/91
- [ ] https://github.com/ipfs/go-ipfs/issues/1678
- [ ] https://github.com/ipfs/in-web-browsers/issues/118
- [ ] https://github.com/ipfs/specs/issues/138
- [ ] https://github.com/ipfs/in-web-browsers/issues/6
- [ ] identify remaining content from Prior Art that could be extracted into ipfs/blog post or less technical ipfs/docs
cc https://github.com/ipfs/in-web-browsers/issues/118 https://github.com/ipfs/in-web-browsers/issues/3 ipfs/ipfs#227 ipfs/in-web-browsers#4 ipfs/in-web-browsers#28 https://github.com/ipfs/specs/pull/139 @autonome
ip[nf]s://<domain.name>/objectRetrieval would be processed as "DNS look up
domain.name IN TXT, resolve resulting IPFS/IPNS identifier, retrieveobject".
I was reading this, hoping to find just that. IPFS wants to get away from hosting locations for reasons of persistency, but IPNS is different. I love the idea of using DNS (and DNSSEC) and getting very powerful bookmarks:
- Stored domain name, for human reference where it once originated from
- Stored IPNS key, so we can lookup the names from anyone who pins them, along with new versions from the same origin
- Stored IPFS hash, so we can retrieve the version that we bookmarked for as long as it is pinned
I will add the spec to my reading list, it's useful stuff!
@lidel: double-check that you want me to move this issue to /ipfs/specs/, correct?
@hsanjuan correct
Is this grammar a relevant resource? https://github.com/jonnycrunch/ipfs-uri-scheme/blob/master/application.md#3-uri-scheme-registration
I believe this grammar was created with intent to get IANA registration, but in the end was not needed because rules changed and IANA request we used had different form: https://github.com/fred-wang/iana-uri-schemes-provisional-registration-requests/blob/master/ipfs.txt
2022-03-01 discussion: we may add an issue for separating out the gateway tests that are in go-ipfs so have a "poor-mans" compliance test suite for gateway implementations.