ipfs/kubo

Add DNS Fallback Resolvers

Open

#8,173 opened on Jun 2, 2021

View on GitHub
 (3 comments) (2 reactions) (0 assignees)Go (13,906 stars) (2,725 forks)batch import
P3effort/daysexp/intermediatehelp wantedkind/featuretopic/dns

Description

TLDR if someone wants to implement this: https://github.com/ipfs/go-ipfs/issues/8173#issuecomment-1031876782


This issue arises from a chat between Namebase team and @lidel from Protocol Labs about integrating Handshake with IPFS

Given the goals of:

  • IPFS doesn’t want to choose winners
  • IPFS wants to decouple from ICANN and support non-ICANN namespaces
  • IPFS wants to avoid introducing privacy and security risks in implicit defaults
  • IPFS wants the alternative namespaces to be DNS compatible. Preferably they can use DoH endpoints

IPFS can accomplish these goals while supporting non-ICANN namespaces by adding a “fallback” resolver option to DNS.Resolvers that points to a list of DoH endpoints. Each DoH endpoint can point to a different decentralized naming system. When a query fails to resolve through the “.” resolver, query all of the “fallback” resolvers. If one of the resolvers has a match without conflict, then proceed with fetching the IPFS file. Otherwise if there’s a conflict, return an error code (ie HTTP 409 conflict).

The “fallback” setting can be set by default to [“https://query.hdns.io/dns-query”] which is HDNS.io’s Handshake DoH resolver (note that HDNS.io doesn’t log or store IP addresses or any other personal information, as specified in the privacy policy linked on the website). Polkadomain.org and butterflyprotocol.io — two other decentralized naming systems which issue TLDs — can be added as well when they create their own DoH resolvers and issue a PR

Contributor guide