Four independent pieces of one story — make cold-start .bch resolution fast, survive individual electrum outages, and turn adding a Silent Mode BNS server into a checklist run. * Argus/src/lib/snapshot-name.js — pure, interpretation-free snapshot format for the name beacon (raw history + verbose tx cache + deterministic root). * Argus/src/publish-name-mirror.mjs — mirror the snapshot to Sia S3 (floating + content-addressed) and Nostr NIP-33 (kind 30078, d-tag bns-name-list). Same pattern as publish-tld-mirror.mjs. * Argus/src/snapshot-name-to-file.mjs — dump the snapshot to a file for bundling. Writes to TheseusNavigator/snapshots/bns-name-snapshot.json. * Argus/src/lib/resolver-web.js — new export buildIndexFromSnapshot() runs the same REG/UPD reduction as buildIndex() but from a pre-fetched snapshot, no electrum required. Warm-start path in Theseus depends on this. * TheseusNavigator/main.js — warmFromSnapshot() and refreshSnapshotFromSia() wired into app.whenReady(). First .bch navigation returns from a warm index instead of waiting on a full electrum walk. * TheseusNavigator/package.json — bundles the starter snapshot as an extraResource so packaged builds ship with a floor. * TheseusNavigator/snapshots/bns-name-snapshot.json — first starter snapshot (70 beacon txs, root 8cc859aa…). * VPS/BNS-SERVER-PLAYBOOK.md — turn-key checklist for spinning up a second or third Silent Mode BNS server, distilled from what actually worked on the silentmode box (BCHN 29 [chip]-not-[chipnet], multi-beacon indexer, wss:// nginx, on-chain publish via electrum.bch, common gotchas table). * Argus/src/register-electrum-list.mjs — publish the current chipnet server pool as `el` on electrum.bch. Fits inside the 200-byte OP_RETURN cap by sizing the record (drops fallback IP pins in favour of URL-only tokens until they fit). NAME was chosen deliberately: two-part `electrum.bch` normalises to the bare distinct name `electrum`, whereas the earlier candidate `electrum.silentmode.bch` collapsed to silentmode.bch and would have inherited/overwritten that name's records. * Argus/src/revert-silentmode-bch.mjs — one-off recovery from the earlier register-electrum-list revision that hit exactly that subdomain-collapse bug (broadcast an UPD to silentmode.bch and clobbered its s3 record). Records recovered from the local snapshot cache; safe to leave in the tree as documentation of what happened.
79 lines
2.3 KiB
JSON
79 lines
2.3 KiB
JSON
{
|
|
"name": "theseus-navigator",
|
|
"version": "0.0.6",
|
|
"description": "Theseus Navigator — a browser that follows the thread. By Silent Mode, a Deviant project.",
|
|
"author": "Silent Mode",
|
|
"main": "main.js",
|
|
"type": "commonjs",
|
|
"scripts": {
|
|
"start": "electron .",
|
|
"resolve-test": "node resolve-test.mjs",
|
|
"dist": "electron-builder --win nsis portable"
|
|
},
|
|
"dependencies": {
|
|
"fetch-socks": "^1.3.3",
|
|
"nostr-tools": "^2.10.4",
|
|
"socks-proxy-agent": "^10.1.0",
|
|
"ws": "^8.18.0"
|
|
},
|
|
"devDependencies": {
|
|
"electron": "^33.0.0",
|
|
"electron-builder": "^25.1.8"
|
|
},
|
|
"build": {
|
|
"appId": "st.silentmode.theseus",
|
|
"productName": "Theseus Navigator",
|
|
"artifactName": "TheseusNavigator-${version}-${arch}.${ext}",
|
|
"directories": { "output": "dist-public" },
|
|
"asar": true,
|
|
"files": [
|
|
"main.js",
|
|
"preload.js",
|
|
"chrome.html",
|
|
"home.html",
|
|
"settings.html",
|
|
"settings-preload.js",
|
|
"popover.html",
|
|
"popover-preload.js",
|
|
"engine-picker.html",
|
|
"engine-picker-preload.js",
|
|
"downloads.html",
|
|
"downloads-preload.js",
|
|
"address-picker.html",
|
|
"address-picker-preload.js",
|
|
"pw-fill.html",
|
|
"pw-fill-preload.js",
|
|
"home-preload.js",
|
|
"link-status.html",
|
|
"link-status-preload.js",
|
|
"collision.html",
|
|
"collision-preload.js",
|
|
"messages.html",
|
|
"messages-preload.js",
|
|
"lib/**/*",
|
|
"package.json",
|
|
"node_modules/**/*",
|
|
"!**/*.md",
|
|
"!**/*.map",
|
|
"!tor${/*}",
|
|
"!dist-public${/*}",
|
|
"!resolve-test.mjs",
|
|
"!*PROMPT.md"
|
|
],
|
|
"extraResources": [
|
|
{ "from": "tor", "to": "tor" },
|
|
{ "from": "../Argus/src/lib/resolver-web.js", "to": "resolver-web.mjs" },
|
|
{ "from": "../Argus/src/lib/password-vault.js", "to": "password-vault.mjs" },
|
|
{ "from": "lib/hermes.js", "to": "lib/hermes.mjs" },
|
|
{ "from": "snapshots/bns-name-snapshot.json", "to": "bns-name-snapshot.json" }
|
|
],
|
|
"win": { "target": ["nsis", "portable"] },
|
|
"nsis": {
|
|
"oneClick": false,
|
|
"perMachine": false,
|
|
"allowToChangeInstallationDirectory": true,
|
|
"artifactName": "TheseusNavigator-Setup-${version}.${ext}"
|
|
},
|
|
"portable": { "artifactName": "TheseusNavigator-${version}-portable.${ext}" }
|
|
}
|
|
}
|