-
Notifications
You must be signed in to change notification settings - Fork 324
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
Companion should auto resolve ENS names to IPFS #678
Comments
(sorry for any mistakes, went on a research spree and wanted to post this while I have entire context in my head) tl;drI did an initial run over prior art for ENS support and identified some techiques and challenges. Notes below. Overall, it should be possible to do, but we may need to land some changes in go-ipfs or public gateway. Unexpectedly, this research gave me an idea how to solve Origin problem for localhost gateway(!) – see ipfs/kubo#5982 ← i am really excited about this one! (1) ENS lookup without running Ethereum clientThe main challenge will be resolving ENS to IPFS CID from Ethereum transaction without running Ethereum client (and avoid shipping half of MetaMask or additional binary just to resolve ENS domains) Most of the prior art ships ethereum client in some form:
Potential solutions:
(2) Support
|
FWIW I am unable to load the ENS resolvers (other than manually looking it up in the ENS manager): DOES NOT work
workshttps://manager.ens.domains/name/oasis.dappnode.eth (needs to be set to mainnet), click through to https://gateway.ipfs.io/ipfs/QmXXnnme2tC1JVxvHMM52xwy1gDfZnymrA1soTwiMTLqRK |
I still need to process @lidel's post fully (a lot of info there!) but a question that came to mind regarding the "bogus" nature of the domain is: how does |
@parkan In short, domain resolution is effectively delegated to HTTP Proxy. If we make go-ipfs work as an HTTP Proxy it will be able to create responses for arbitrary domains on the fly. (I wrote some initial notes in ipfs/kubo#5982) As for SSL, yes, it is possible to have HTTPS for a fake intranet domain. In bigger orgs machines handed out to employees often come with additional CA Root cert in system keystore, or some VPN software injects it. That CA is responsible for validation of certs for fake domains (and make employer able to look into HTTPS traffic). |
Quick brain dump about "light/delegated ENS resolver" (a way to deliver 1B)
Value added by delegated approach:
|
would be good to mirror/summarize this in https://github.com/protocol/collab-ens/ |
it may also be worthwhile to step back a moment and consider how the DNS zone hierarchy is structured and to what extent does the ENS system follow or diverge from that: for example, if we consider ENS as simply the authoritative nameserver for the .eth zone (enacted via dns-over-https), could there be an even more elegant way to incorporate it? although, perhaps fudging |
@parkan I've extracted "DNS" and "HTTP Proxy" to issues there. LEt me know if something else should be extracted.
I believe that if DNS-compatible ENS resolver exists and follows DNS RFCs, plugging it into mainstream DNS as the authoritative nameserver for |
thank you, that will help direct the work across the various participants! the TLD is... $200k or so? that's approximately one Lambo, maybe someone in the Ethereum community can swing that 😆 |
This change builds on top of #783 and: - adds support for recovery from DNS lookup failures - enables recovery for all HTTP Codes >= 400 - recovers `.eth` DNS failures bu reopening website on EthDNS gateway at `.eth.link` - simplifies some code paths and adds more tests 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 behind `A` record is down or unreachable. *Note*: right now the only real use for DNS recovery is support of .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
People are using ENS names as a way to find content on IPFS (ex https://twitter.com/eduadiez/status/1093547099235516416). Let's make it even easier by enabling companion to resolve links like
ipfs://foo.eth
to the appropriate IPFS hash + content!Would it potentially also be possible to check for any .eth links to see if they are hosted on IPFS and if so resolve through IPFS?
The text was updated successfully, but these errors were encountered: