feat: recover from DNS failures, support DNSLink for .eth #797
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR builds on top of #783 and:
.eth
DNS failures bu reopening website on EthDNS gateway at.eth.link
Motivation
When a third-party IPFS gateway is discontinued or censored at DNS level, the IPFS Companion should retry request using currently active gateway set by the user (public or local).
We also want to recover in situation when website with DNSLink has a valid DNS
TXT
record, but HTTP behindA
record is down or unreachable.Note: right now the only real use for DNS recovery is support .eth TLD via .eth.link gateway, however in the future this could provide means of working around DNS-based censorship (eg. by executing DNSLink lookups over libp2p as a fallback).
closes #678, closes #640, #783 needs to be merged first
TODO
.eth
can be supported natively by go-ipfs, or do we need to point at.eth.link
for now.eth
, using.eth.link
for now.eth
tests