-
Notifications
You must be signed in to change notification settings - Fork 2.2k
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
Support Unstoppable Domains via DoH behind a feature flag #14099
Comments
Verified
Additionally, I filed #14478 for the cropped Verification passed on
6,7 and 8. Set the
Verification passed on
6,7 and 8. Set the
|
Support the name resolution of unstoppable domains via https://resolver.unstoppable.io/dns-query endpoint when the feature is enabled in brave://flags and user set the resolve method to public DoH server.
Settings
Under brave://settings/extensions, a new dropdown box setting for unstoppable domain resolution will be added, and the default value will be “Ask”.
Onboarding
(Above screenshot is an initial version of the interstitial page, it will be updated to match design spec.)
When the unstoppable domain resolution setting is “Ask”, an interstitial page will be shown when users try to visit .crypto domains for users to opt in. If users choose to proceed, the setting will be changed to “Public DNS over HTTPS server”, and the page will be reloaded and resolved using the DNS gateway, future navigations to .crypto domains will be resolved using the same DNS gateway. If users click “Don’t ask again”, the setting will be set to disabled.
DNS gateway
When a user input an address with a known TLD from unstoppable domains (ex: .crypto domains) in the browser URL bar, the domain name will be resolved through a DNS gateway which supports the resolution of unstoppable domains. Brave will use https://resolver.unstoppable.io/dns-query endpoint provided by Unstoppable Domains, which is a proxy to https://eth.resolver.cloudflare-eth.com/dns-query, as the DNS gateway. It will be responsible for making calls to Ethereum smart contracts using the Ethereum JSON RPC to resolve the address. This DNS gateway will be added into the browser's DNS over HTTPS providers, but will only be used for resolving known TLD from Unstoppable Domains. Because this method requires DNS over HTTPS support, we will not resolve Unstoppable Domains if DoH is disabled either by user or by policy regardless of the value of user setting for Unstoppable Domain resolution.
Using DNS gateway is a simpler method which could be used by default for all our users without introducing overhead of making calls to Ethereum, and is using the protocols (HTTP, DNS) which are well supported by the browser. However, it does come with a downside that the decentralization is decreased due to the introduction of the hosted DNS gateway, so in the future we will also provide the option to resolve via ethereum directly to users.
Recognizing TLDs from unstoppable domains
In order to make URLs with known TLDs from unstoppable domains to be categorized as URL when users input them in the location bar, we will treat these TLDs as known TLDs from the public suffix list. With this, the first entry in the dropdown list will be URL as shown below.
![Screen Shot 2021-02-10 at 3 09 16 PM](https://user-images.githubusercontent.com/4730197/107584794-f6dd1700-6bb1-11eb-8896-3a8357d71aef.png)
The text was updated successfully, but these errors were encountered: