AgregoreWeb / agregore-browser

A minimal browser for the distributed web (Desktop version)
https://www.youtube.com/watch?v=TnYKvOQB0ts&list=PL7sG5SCUNyeYx8wnfMOUpsh7rM_g0w_cu&index=14
GNU Affero General Public License v3.0
752 stars 66 forks source link

DNS #77

Open KyGost opened 4 years ago

KyGost commented 4 years ago

Relates to #75 While current DNS is kinda decentralised, it isn't really.

It would be good to look at alternatives and implement them on a browser level, like we do for protocols.

I've researched a bit and here's what I've found:

Todo: References for statements made in this issue.

Query: Anyone know of any good DNS options. Something accessible is the key. Ideally as light weight (in the not evaporating oceans sense) and distributed as possible.

unmellow commented 3 years ago

their is also loki name service - proof of stake, onion routed

RangerMauve commented 2 years ago

Had a nice chat with a person from Handshake at the recent Dweb Holiday Fair.

We talked about how it might be nice to bundle a light client into Agregore and look at what it'd take to enable people to publish a new handshake name from within Agregore itself in addition to being able to resolve DNS queries.

Would be super cool to explore more. I think a win would be to put together a grant proposal and hire somebody from either the Agregore or Handshake communities to help implement this functionality.

RangerMauve commented 2 years ago

Another option would be the udns-client-cli

This is a decentralized DNS service that's built on top of hypercore-protocol and Autobase. Looking into how it works more, but it might be a cool alternative to the blockchain based approaches.

Quoting the creator from Discord:

mukbanggang
here's the flow
your domain always resolves to a nameserver
that nameserver looks up subdomains from the blockchain
if it finds  dns:<key> it uses hyperswarm connect as ddns (just connects and asks it for json of its ip)
if it finds tun:<key> it resolves the dns to its favorite tunnel host, which will redirect the page to itself, and also use the blockchain to resolve the key it has to tunnel to
the tunnel is hyper-web-relay
kallisti5 commented 2 years ago

I regret it. As it isn't very light transfer fees are expensive. Listed name prices are also inaccurate.

@KyGost I bet you don't regret it anymore... I made a killing in the $ENS airdrop :-D https://claim.ens.domains/dashboard

anyway.. yeah. .eth / ens is too expensive with the current gas prices. Nobody's going to spend $100+ to update a dns record.

This is still a good thing to think about support for in the future with Eth 2.0... but today it isn't practical as it was back in 2020

RangerMauve commented 2 years ago

Had a call with Johnny from Namebase about potential Handshake integration with Agregore.

There might be a grant in it if we can get a good scope and keep the total cost to a minimum (maybe a couple of k USD?). I'm thinking it'd be useful to either integrate the hnsd light client daemon thing, or at least talk to it. Could be useful to make an electron module to make it automatic. Still need to look at where to configure the DNS settings.

At the moment, Electron only exposes a way to specify custom DNS over HTTPS resolvers, so we could do something like this electron app and add https://query.hdns.io/dns-query / force it to be used. An alternative might be to run a proxy from within Agregore which uses the hnsd daemon, and add it to a session. On top of that we'll want to hook into the hyper-dns to provide the DOH Lookup (not sure if it can handle localhost?) and js-ipfs (no clue where it does the IPNS resolve right now).

After that it'd be cool to look at integrating some sort of Handshake wallet into Agregore so folks could register domains and stuff from within it. This should probably happen after I overhaul the extensions system so that we know it won't break as quickly. :P One example wallet I was pointed to was bob-wallet. It uses their hosted HSD node, but can also connect to local fullnodes if people run them. Not sure if it can also talk to the light client (hnsd). This then works with a marketplace for HNS called niami.

Johnny also said that we might be able to get a grant of HNS to give out to folks in the community to register their domains. It might be cool to do a tutorial where you create website on Hyper and then register an HNS domain to point at it.

Some other relevant links: Here's a browser that supports resolving HNS domains https://github.com/imperviousinc/beacon-ios and here's a desktop browser that does the same thing.

Would anyone be interested in working with me on this? I have a decent idea of how stuff should be done and could help somebody new ish to the space build up their skills as part of implementing this stuff. 😁 We could get together and sketch out the grant to see how much time it'll take / how much it'd cost and see if we can get that funded.

RangerMauve commented 2 years ago

One interesting note about handshake, it doesn't define a new top level domain, but instead has a way to create new top level domains. So instead of http://namebase.io you would instead use http://namebase directly.

This means we could probably set up a .agregore top level domain or something similar and have it be open to the community for registering their own subdomains like hyper://yourname.agregore by registering them on our nameserver rather than having to go through another registrar or buying your own top level domain.

Honestly, it's pretty bold, and it'll be interesting what the effects will be if it works out. (also, is the .eth HSN domain owned by the ENS folks? :P).