-
Notifications
You must be signed in to change notification settings - Fork 6
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
Allowing URI values in DNSLink TXT records #33
Comments
@sjoerdvangroning @martinheidegger @thibmeu I want to add URI support, and suggest we go with (A). |
As far as the The biggest question to me is if Equal, automatic-mapping →
|
I think option A is great and it would be great if dnslink would add this to the spec. This will increase acceptance, in short term for example for ipfs, hypercore users, but also enable shorter names for humans when hosting your data on very long URL/path (that is where we started from). The future of DNSlink |
Seems that we agree (A) is the path forward. Realistically, we won't be switching IPFS DNSLinks to URIs any time soon, but we should have an answer how to handle paths and URIs coexistence to avoid diverging implementations. I feel "pragmatism > aesthetics" applies here. Interop is the priority. The mapping proposed by @martinheidegger (
If there are no strong concerns around this, should we open PRs? @sjoerdvangroning digression on the usage of path-based DNSLink:
Does
What I would like us to accomplish here is to allow URIs in addition to paths, so non-IPFS use cases can use URI-based addressing if they prefer. |
@dnslink usage: Adapters |
As an update, we finished the first project/poc and created SimplyDomain that works for https. This means that we are now able to create easy names for humans so they can host content on a much longer path. Website: https://www.simplydomain.nl/
We are now looking to a follow up project where we (finally) will support ipfs. If there is anybody that would like to help, give us a heads up as we could use some ipfs knowledge. Also looking into additional added behavior:
Any more ideas, today is a good day for new ideas. Just throw it and we will see later what sticks. |
Context
I've been talking with @sjoerdvangroning about https://github.com/pdsinterop/simply-domain (originally created with SOLID in mind, but aims to be generic interop as part of Personal Data Stores Interoperability project) and there is a lot of overlap between that spec draft and what DNSLink allows.
The gist is they want to support TXT pointers to the content using multiple protocols (DNSLink already allows that).
The differences are:
The diff is mostly cosmetic, and my hope is they could reuse DNSLink, so we don't end up with the standard "standard" situation described in this XKCD:
DNSLink TXT record
Simply-domain TXT record
<proxy>
is solved in DNSLink by a convention of using ofA
record on the domain hosting_dnslink
subdomain.<priority>
is discussed in #34, let's focus this issue about allowing URIs.<url>
is.. a subset of URIs, and there is a good argument they are more user and developer friendly than our content/addr paths (especially, given that multiaddr can't represent all HTTP URL attributes yet).Proposal: allow URIs (URLs, URNs)
#16 made the spec a bit more strict, it removed mention of URLs being allowed (things that don't start with
/
are simply ignored).After getting feedback from @sjoerdvangroning I feel that was a mistake that will alienate developers who are not entrenched in IPFS ecosystem, sabotaging DNSLink potential to be trully cross-protocol and cross-ecosystem.
DNSLink should support values being URIs (https://en.wikipedia.org/wiki/Uniform_Resource_Identifier).
👉 What notation should be used?
My proposal is to extend spec somehow.
(A) Assume URI unless the value starts with
/
One way, is to state that everything that does not start with
/
should be interpreted as URI:The main argument for this approach is that it looks natural when used outside IPFS ecosystem.
The entire world talks URIs, and this makes them first-class citizens.
My vote is to go this route.
(B) Create explicit
/uri/
namespaceAn alternative is to document
/uri/
namespace, and allow things like:It makes it clear that other namespaces than URI are allowed, but looks wasteful and redundant when used outside IPFS ecosystem.
My vote would be against this, as it feels unnecessary.
Backward-compatibility notes
This needs some thought around backward-compatibility and DX/UX:"
/
are already ignored, so no change in existing software is necessary, no matter which way we go.ipfs://
andipns://
in addition to paths? We most likely need to support both, open question is what we should default in the docs.namespace
andidentifier
when URI is detected?/uri/
prefix, no change is needed'/
in the front, need to solve mapping somehow:namespace
would beuri
and theidentifier
be opaque string with the original valuenamespace
to the URIscheme
, and turn the reminder after:
into a weird slice (//example.com
)?Value added
Things like this would be possible:
The text was updated successfully, but these errors were encountered: