Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/h4sh5/humandns
https://github.com/h4sh5/humandns
Last synced: about 1 month ago
JSON representation
- Host: GitHub
- URL: https://github.com/h4sh5/humandns
- Owner: h4sh5
- License: agpl-3.0
- Created: 2023-02-11T11:19:56.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2023-02-12T01:03:40.000Z (almost 2 years ago)
- Last Synced: 2024-06-21T04:48:39.953Z (5 months ago)
- Language: Go
- Size: 27.3 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# humandns
Liberating DNS for humans. No more registrars; generate, register and act as authoritative server for human readable servers.
Imagine a world where every single person and business have a `/64` IPv6 block (that's the mininum assignment!). That's 18 Billion Billion addresses! Even if you give them a `/96`, that's 4 Billion addresses, the size of the IPv4 internet in its entirety.
With that many number of addresses, there's enough for everyone; but IPv6 addresses are very long, and impossible to send to someone via a human readable format unless you buy a domain. Forget about buying domains; those should be free!
This is where humandns comes in - it works by hashing the IP address the request comes from using [humanhash](https://github.com/wolfeidau/humanhash), which gives each IP a unique hash. You just get what you're given, the hashing algorithm ensures (mostly) that the same IP gets the same name. Just proof you own the IP address by sending a HTTP request from it.
The dns name is in the form of `one-two-three-four.ip4` for ipv4 and `one-two-three-four-five.ip6` for ipv6 addresses.
To register, simply send a HTTP request (any HTTP request) to `/rego`. A DNS name will be allocated to the IP address it came from and it will stay the same for each IP. IPv4 and 6 are both supported for registration.
To visit/resolve a humandns name in the absense of DNS (which should be available on the same host via port 53), use `/visit?d=your-domain-name`. This will test if your domain name resolves properly.
No more DNS sync issues! To update humandns servers, simply send a `/rego` request to all of them. By default, the TTL is 30 minutes so unused IPs are deleted from the Redis cache to save space.
A reference implementation of the DNS server that queries the database is [humandns53](https://github.com/h4sh5/humandns53)