feat(ens): add local ensdns service and host-side test docs
Configuration validation / lint (push) Has been cancelled
Configuration validation / smoke (push) Has been cancelled

This commit is contained in:
auto-ci
2026-03-01 21:34:18 -05:00
parent 11b766c906
commit 968538ecc9
6 changed files with 411 additions and 2 deletions
+44 -2
View File
@@ -33,9 +33,12 @@ docker run --rm --network darkproxy infoblox/dig dig @10.5.0.4 facebookcorewwwi.
# I2P .i2p domains
docker run --rm --network darkproxy infoblox/dig dig @10.5.0.4 stats.i2p
# Ethereum Name Service (.eth) via Cloudflare fallback
# Ethereum Name Service (.eth) via local ensdns service
docker run --rm --network darkproxy infoblox/dig dig @10.5.0.4 vitalik.eth
# ENS address/content hash records (TXT)
docker run --rm --network darkproxy infoblox/dig dig @10.5.0.4 TXT vitalik.eth
# Other supported TLDs: .bit, .alt, .loki, .zil, .web3, .exit, .onion4, .onion6
docker run --rm --network darkproxy infoblox/dig dig @10.5.0.4 example.bit
```
@@ -45,6 +48,21 @@ docker run --rm --network darkproxy infoblox/dig dig @10.5.0.4 example.bit
> Queries from your host should now work without the “refused to do a recursive
> query” error. If you later reintroduce an ACL, update this note accordingly.
### Host-side quick tests (no extra images)
Run DNS queries from your host by executing `dig` in the existing `darkpihole`
container:
```sh
docker exec darkpihole dig @10.5.0.4 TXT vitalik.eth +short
docker exec darkpihole dig @10.5.0.4 A vitalik.eth +short
```
Expected behavior:
* `TXT` includes `address=` and (if present) `contenthash=`.
* `A` returns a CNAME fallback like `<name>.eth.limo.`.
## Supported TLDs and resolvers
@@ -54,7 +72,7 @@ The stack now provides DNS resolution for a comprehensive set of alternative TLD
|-----|----------|---------|
| `.onion`, `.exit`, `.onion4`, `.onion6` | Tor DNSPort (10.5.0.7:9053) | Tor hidden services |
| `.i2p` | i2pd DNS (10.5.0.2:53) | I2P eepsite names |
| `.eth` | Cloudflare 1.1.1.1 | Ethereum Name Service |
| `.eth` | ensdns (10.5.0.11) via CoreDNS | Ethereum Name Service (local resolver) |
| `.bit` | Google 8.8.8.8 | Namecoin names |
| `.alt` | alt-root 185.121.177.177 | Alternative DNS root |
| `.loki` | Cloudflare 1.1.1.1 | Lokinet privacy network |
@@ -97,6 +115,30 @@ These steps ensure that configuration drift is caught early and reviewers can
see what has changed.
## Local ENS (.eth) client
If you want to resolve Ethereum ENS names locally from the host, use the
standalone client script:
```sh
python3 -m venv .venv-ens
source .venv-ens/bin/activate
pip install -r scripts/requirements-ens.txt
python3 scripts/resolve_ens.py vitalik.eth --pretty
```
Options:
* `--rpc <url>` to set a custom Ethereum JSON-RPC endpoint.
* `--include-text` to include common ENS text records.
Example:
```sh
python3 scripts/resolve_ens.py ens.eth --include-text --pretty
```
## Monitoring the proxy
A lightweight Prometheus/Grafana stack is included to expose 3proxy metrics