Ariadne 0.1.11: indexer-first refresh + per-query indexer fallback
The daemon now uses the operator's live BNS indexer as the primary source of truth, not chipnet electrum. Two changes to the resolver pipeline: 1) Background refresh is HTTPS-first with ETag. Every 30 s the daemon polls dl.silentmode.st/bns-name-index.json (and s3.silentmode.st:8600 as an independent Sia mirror) sending If-None-Match; only reparses the array when the operator republished, does zero work otherwise. Electrum WSS stays as a same-tick secondary that runs when HTTPS turned nothing up, so a daemon on a network that can reach chipnet but not the operator VPS still converges. Both broken? Keep the last-good index from warm-start. 2) Per-query indexer fallback in the DNS handler. When the in-memory index misses, the handler calls navigate.st/api/name/<host> directly with a 5-second timeout and a 30-second LRU cache. Names registered AFTER the last snapshot poll but BEFORE the next one now answer immediately from the live indexer instead of falling straight through to a forward and returning NXDOMAIN. Cache is cleared on any successful full refresh so a de-registered name doesn't stay resolvable. Net effect: on the class of failure that motivated this (chipnet electrum timing out on blockchain.scripthash.get_history, or port 50004 filtered by the network), the daemon just works. The operator's HTTPS indexer -- which every other client in the ecosystem (Theseus mobile, Aegis, sirius.x, the gateway itself) already reads from -- is now Ariadne's Thread's primary too. Trust model unchanged: the snapshot always came from the operator. Verified locally with the built binary on port 15353: bnsd index: warm-started from https://dl.silentmode.st/bns-name-index.json (61 names) hello.bch -> 127.0.0.1 (snapshot hit) game.x -> 127.0.0.1 (per-query /api/name fallback -- not in .bch-heavy snapshot) coinspectrum.x -> 127.0.0.1 (per-query fallback) ariadne.x -> 127.0.0.1 (per-query fallback) notregisteredxyz.x -> NXDOMAIN (indexer confirms not registered, forwarded to upstream) Deployed - dl.silentmode.st/AriadneResolver-Setup-0.1.11.exe - s3://bns/silentmode/dl/AriadneResolver-Setup-0.1.11.exe - silentmode.st manifest advertises 0.1.11 - sha256 58ffb06424785973d2cd656e5122061ce10b53a8dcff55605c23b5699552ee75
This commit is contained in:
parent
536b1fb41e
commit
9072412012
2 changed files with 8 additions and 8 deletions
|
|
@ -22,14 +22,14 @@
|
|||
{
|
||||
"id": "ariadne-resolver",
|
||||
"product": "Ariadne Resolver (Windows)",
|
||||
"version": "0.1.10",
|
||||
"date": "2026-09-29",
|
||||
"version": "0.1.11",
|
||||
"date": "2026-09-30",
|
||||
"platform": "win-x64",
|
||||
"signed": false,
|
||||
"signingAuthority": null,
|
||||
"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.",
|
||||
"changes": "The daemon now uses the operator's live BNS indexer as its primary source, not chipnet electrum. Two changes to the resolver pipeline: (1) the 30-second background refresh polls dl.silentmode.st/bns-name-index.json (and s3.silentmode.st:8600 as an independent Sia mirror) with If-None-Match ETags -- only redownloads on republish, no work when nothing changed. Electrum WSS stays as a secondary refresh that runs on the same tick when HTTPS turned nothing up, so a daemon on a network that can reach chipnet but not the operator VPS still converges. (2) A per-query indexer fallback: when a name isn't in the cached snapshot, the DNS handler calls navigate.st/api/name/<host> directly with a 5-second timeout and a 30-second LRU cache. Names registered AFTER the last snapshot poll but BEFORE the next one now answer immediately instead of NXDOMAIN. Result: chipnet electrum flakiness (get_history timeouts, port 50004 filtered, etc.) no longer stalls name resolution; the daemon converges on the same view of the registry that Theseus mobile, Aegis, sirius.x and the gateway itself already share. Includes 0.1.10 warm-start, 0.1.9 search shim, 0.1.8 pinned-origin proxy. Upgrades in place.",
|
||||
"files": {
|
||||
"AriadneResolver-Setup-0.1.10.exe": "29710c4011dfe058a252f94af221c02593e728e89cc7427e3e01eaa530f8e526"
|
||||
"AriadneResolver-Setup-0.1.11.exe": "58ffb06424785973d2cd656e5122061ce10b53a8dcff55605c23b5699552ee75"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
|
|||
|
|
@ -72,12 +72,12 @@
|
|||
</div>
|
||||
|
||||
<div class="rel">
|
||||
<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>
|
||||
<h2>Ariadne Resolver — Windows <span style="color:var(--acid)">0.1.11</span></h2>
|
||||
<div class="meta">Windows 64-bit · unsigned · bundled Node runtime · 2026-09-30 · <b>0.1.11 — indexer-first refresh + per-query indexer fallback</b> — The daemon now uses the operator's live BNS indexer as its primary source instead of chipnet electrum. Two changes: (1) the 30-second background refresh polls <code style="display:inline">dl.silentmode.st/bns-name-index.json</code> (and the Sia mirror at <code style="display:inline">s3.silentmode.st:8600</code>) with <code style="display:inline">If-None-Match</code> ETags — only redownloads on a republish. Electrum WSS stays as a same-tick secondary if HTTPS turned nothing up. (2) A per-query indexer fallback in the DNS handler: when a name isn't in the cached snapshot, calls <code style="display:inline">navigate.st/api/name/<host></code> directly with a 5-second timeout and a 30-second LRU cache. Names registered <b>after</b> the last snapshot poll but <b>before</b> the next one now answer immediately instead of NXDOMAIN. Result: chipnet electrum flakiness ("<code style="display:inline">get_history</code> timeout", port 50004 filtered, etc.) no longer stalls resolution; the daemon converges on the same view of the registry Theseus mobile, Aegis, sirius.x and the gateway already share. Includes 0.1.10 warm-start, 0.1.9 search shim, 0.1.8 pinned-origin proxy. Upgrades in place.</div>
|
||||
|
||||
<div class="file">
|
||||
<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 class="n"><a href="https://dl.silentmode.st/AriadneResolver-Setup-0.1.11.exe">AriadneResolver-Setup-0.1.11.exe</a> — ~24 MB</div>
|
||||
<code>58ffb06424785973d2cd656e5122061ce10b53a8dcff55605c23b5699552ee75</code>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue