Ariadne 0.1.10: multi-source snapshot warm-start so the daemon works on
WSS-blocked networks Symptom on the other box (2026-09-29): task Running, port 53 bound by our node, `Resolve-DnsName hello.bch -Server 127.0.0.1` times out. Cause: the daemon's initial index build was a top-level `await buildIndex()` over electrum WSS to chipnet (port 50004). Corporate/ISP networks that filter outbound WSS let the await hang forever; the queries fell through to `forward()` to upstream 1.1.1.1:53, which the same firewall also blocked, so both legs died. 0.1.10 borrows Theseus's warmFromSnapshot pattern for the system-wide daemon. On startup, in parallel with an 8 s deadline per source: 1. HTTPS snapshot from operator VPS https://dl.silentmode.st/bns-name-index.json 2. HTTPS snapshot from Sia mirror https://s3.silentmode.st:8600/bns/name-list.json 3. On-disk cache from a previous run C:\ProgramData\Ariadne\bns-name-snapshot.json First non-empty result wins; on any HTTPS win the raw array is written to the disk cache so the NEXT boot is instant even fully offline. dns.bind() runs the moment warm-start completes, whether or not electrum was reachable. Electrum WSS refresh continues in the background on the 30 s timer and wins over the snapshot when it succeeds because it is strictly newer. Snapshot format is the pre-resolved array Android's Ariadne reader already consumes (`[{name, category, records, txid, height, updatedTxid, owner?}]`), so the operator maintains ONE artifact for both clients. Custom URLs go in `ariadne.config.json`.snapshotUrls. Verified on the dev box by running the built binary manually on port 15353: bnsd index: warm-started from https://dl.silentmode.st/bns-name-index.json (61 names) bnsd DNS: 127.0.0.1:15353 (policy=bcnr-first, upstream 1.1.1.1) hello.bch -> 127.0.0.1 Disk cache written: 17,674 bytes. Deployed - dl.silentmode.st/AriadneResolver-Setup-0.1.10.exe - s3://bns/silentmode/dl/AriadneResolver-Setup-0.1.10.exe - silentmode.st manifest advertises 0.1.10 - sha256 29710c4011dfe058a252f94af221c02593e728e89cc7427e3e01eaa530f8e526
This commit is contained in:
parent
b81a8adae9
commit
536b1fb41e
2 changed files with 8 additions and 8 deletions
|
|
@ -22,14 +22,14 @@
|
|||
{
|
||||
"id": "ariadne-resolver",
|
||||
"product": "Ariadne Resolver (Windows)",
|
||||
"version": "0.1.9",
|
||||
"date": "2026-09-28",
|
||||
"version": "0.1.10",
|
||||
"date": "2026-09-29",
|
||||
"platform": "win-x64",
|
||||
"signed": false,
|
||||
"signingAuthority": null,
|
||||
"changes": "Bare BNS names in the address bar now work in Chrome and Edge. The daemon exposes a local search shim at http://127.0.0.1/search?q=%s -- point your browser's default search engine at it. Typing `ariadne.x` (no scheme), which Chromium would otherwise treat as a search query because `.x` isn't in ICANN's known-TLD list, is 301'd to https://ariadne.x/; anything with whitespace, or a TLD the local CA isn't constrained to, is 302'd to your fallback (DuckDuckGo by default; set `searchFallback` in ariadne.config.json to any `https://engine.tld/?q=` URL to change it). Paths are preserved -- `ariadne.x/foo` goes to `https://ariadne.x/foo`. Works offline: no network hop through navigate.st, everything decided locally against the CA's permitted-TLD set. Includes 0.1.8 (pinned-origin proxy for `ip`+`tls` names) and 0.1.7 (runtime-switchable collision policy). Upgrades in place.",
|
||||
"changes": "Works on networks that block electrum WSS. Before 0.1.10 the daemon's initial index build was `await buildIndex()` over electrum WSS (port 50004); on corporate networks or restrictive ISPs that filter WSS, the await never returned, `dns.bind()` never ran, and every browser on the machine sat waiting -- symptom: task is Running, port 53 is bound, but every query hangs. 0.1.10 warm-starts the index from HTTPS snapshots in parallel (`dl.silentmode.st/bns-name-index.json` on the operator VPS + `s3.silentmode.st:8600/bns/name-list.json` on Sia, first-wins with an 8 s deadline), falls back to an on-disk cache at `C:\\ProgramData\\Ariadne\\bns-name-snapshot.json` from the last successful fetch, then lets electrum WSS keep it current in the background -- WSS updates win when they arrive because they're strictly newer, so no freshness regression when the network is fine. dns.bind runs the moment warm-start completes. Same snapshot format Android's Ariadne consumes, one artifact for the whole ecosystem. Configurable via `snapshotUrls` in ariadne.config.json. Includes 0.1.9 (local search shim), 0.1.8 (pinned-origin proxy), 0.1.7 (runtime-switchable policy). Upgrades in place.",
|
||||
"files": {
|
||||
"AriadneResolver-Setup-0.1.9.exe": "3b973e0ae584113ad776c756b16b895fd0dfb217a02bfae6376c5abb48f9a77c"
|
||||
"AriadneResolver-Setup-0.1.10.exe": "29710c4011dfe058a252f94af221c02593e728e89cc7427e3e01eaa530f8e526"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
|
|||
|
|
@ -72,12 +72,12 @@
|
|||
</div>
|
||||
|
||||
<div class="rel">
|
||||
<h2>Ariadne Resolver — Windows <span style="color:var(--acid)">0.1.9</span></h2>
|
||||
<div class="meta">Windows 64-bit · unsigned · bundled Node runtime · 2026-09-28 · <b>0.1.9 — bare BNS names in the address bar</b> — Typing <code style="display:inline">ariadne.x</code> (no scheme) into Chrome or Edge would previously send you to a search engine, because <code style="display:inline">.x</code> isn't on ICANN's known-TLD list and Chromium's omnibox falls back to search on unknown TLDs. 0.1.9 adds a local search shim at <code style="display:inline">http://127.0.0.1/search?q=%s</code>. Point your browser's default search engine at it: BNS-shaped queries (<code style="display:inline"><label>.<permitted-tld></code>) get 301'd to <code style="display:inline">https://…/</code>; anything with whitespace, or a TLD outside the CA's constrained set, gets 302'd to your fallback (DuckDuckGo by default; change with <code style="display:inline">searchFallback</code> in <code style="display:inline">ariadne.config.json</code>). Paths preserved. Zero network hop through navigate.st — everything decided locally. Includes 0.1.8 (pinned-origin proxy for <code style="display:inline">ip</code>+<code style="display:inline">tls</code> names). Upgrades in place.</div>
|
||||
<h2>Ariadne Resolver — Windows <span style="color:var(--acid)">0.1.10</span></h2>
|
||||
<div class="meta">Windows 64-bit · unsigned · bundled Node runtime · 2026-09-29 · <b>0.1.10 — snapshot warm-start (works on networks that block electrum WSS)</b> — Before 0.1.10 the daemon's initial index build ran over electrum WSS (port 50004); on corporate networks or restrictive ISPs that filter WSS, the await never returned, <code style="display:inline">dns.bind</code> never ran, and every browser on the machine hung — task showed Running, port 53 was bound, but every query timed out. 0.1.10 warm-starts the index from HTTPS snapshots in parallel — <code style="display:inline">dl.silentmode.st/bns-name-index.json</code> on the operator VPS + <code style="display:inline">s3.silentmode.st:8600/bns/name-list.json</code> on Sia, first-wins with an 8-second deadline — falls back to a local cache at <code style="display:inline">C:\ProgramData\Ariadne\bns-name-snapshot.json</code> from the last successful fetch, then lets electrum WSS keep the index current in the background (WSS updates win because they're strictly newer). Same snapshot format Android's Ariadne consumes. Configurable via <code style="display:inline">snapshotUrls</code> in <code style="display:inline">ariadne.config.json</code>. Includes 0.1.9 (local search shim). Upgrades in place.</div>
|
||||
|
||||
<div class="file">
|
||||
<div class="n"><a href="https://dl.silentmode.st/AriadneResolver-Setup-0.1.9.exe">AriadneResolver-Setup-0.1.9.exe</a> — ~24 MB</div>
|
||||
<code>3b973e0ae584113ad776c756b16b895fd0dfb217a02bfae6376c5abb48f9a77c</code>
|
||||
<div class="n"><a href="https://dl.silentmode.st/AriadneResolver-Setup-0.1.10.exe">AriadneResolver-Setup-0.1.10.exe</a> — ~24 MB</div>
|
||||
<code>29710c4011dfe058a252f94af221c02593e728e89cc7427e3e01eaa530f8e526</code>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue