@decentnetwork/lan 0.1.251 → 0.1.252
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/config/loader.js +45 -22
- package/dist/console/console.js +24 -12
- package/dist/ui/desktop/app.js +1 -1
- package/package.json +1 -1
package/dist/config/loader.js
CHANGED
|
@@ -9,40 +9,63 @@ const DEFAULT_CONFIG_FILE = resolve(DEFAULT_CONFIG_DIR, "config.yaml");
|
|
|
9
9
|
// Mirrored from peer SDK's legacy-bootstraps.mjs
|
|
10
10
|
// 45.207.220.155 omitted — observed timing out repeatedly during testing,
|
|
11
11
|
// causing relay#2 to flap which knocks the friend connection offline.
|
|
12
|
-
//
|
|
13
|
-
//
|
|
14
|
-
//
|
|
15
|
-
//
|
|
16
|
-
//
|
|
17
|
-
//
|
|
18
|
-
//
|
|
19
|
-
// the
|
|
20
|
-
//
|
|
21
|
-
//
|
|
12
|
+
//
|
|
13
|
+
// ORDER IS LOAD-BEARING, and more than the old comment implied. The SDK's TCP
|
|
14
|
+
// relay pool takes the FIRST 3 entries positionally (TcpRelayPool.start(),
|
|
15
|
+
// DECENT_TCP_MAX_RELAYS default 3) — not a random sample, not by health. So
|
|
16
|
+
// every node running the same release dials the SAME three hosts, and those
|
|
17
|
+
// three are effectively the fleet's rendezvous set. Two consequences:
|
|
18
|
+
//
|
|
19
|
+
// 1. A host in the top 3 that doesn't accept TCP burns one of only three
|
|
20
|
+
// relay slots on every node in the world. That is exactly what happened
|
|
21
|
+
// when gojipower was added at position 2 in 0.1.249: air-wli went from 6
|
|
22
|
+
// connected relays to 2 after picking up the new list, because gojipower's
|
|
23
|
+
// ufw has no rule for 33445 (verified 2026-07-25 — `ufw status` shows the
|
|
24
|
+
// port absent while ela-bootstrapd LISTENs locally: alive != serving).
|
|
25
|
+
// 2. A China relay in the top 3 puts a US<->US session on a China path.
|
|
26
|
+
// Observed in the wild: a Vultr US box and a US residential Mac both
|
|
27
|
+
// landed on 47.100.103.201 (Alibaba Shanghai) as their sole relay —
|
|
28
|
+
// ~600ms RTT and lossy enough to drop net_crypto handshakes.
|
|
29
|
+
//
|
|
30
|
+
// So: positions 1-3 are US-reachable hosts whose TCP relay port is CONFIRMED
|
|
31
|
+
// open; everything after is DHT-bootstrap breadth and the reserve pool that
|
|
32
|
+
// the dynamic-relay-add path draws from when a friend advertises one.
|
|
33
|
+
// TCP-relay reachability below was measured from a US vantage point on
|
|
34
|
+
// 2026-07-25. "TCP filtered" does NOT mean dead — several still answer UDP
|
|
35
|
+
// DHT, and CN-side reachability was not re-tested (see docs/BOOTSTRAP-FLEET.md
|
|
36
|
+
// on why a single vantage point must not be used to prune).
|
|
22
37
|
export const DEFAULT_BOOTSTRAP_NODES = [
|
|
38
|
+
// --- Rendezvous set: the three every node dials. TCP verified open. ---
|
|
39
|
+
// US-East — the historical workhorse, and the relay mac-dev has held
|
|
40
|
+
// continuously through every incident this month.
|
|
41
|
+
{ host: "13.58.208.50", port: 33445, pk: "89vny8MrKdDKs7Uta9RdVmspPjnRMdwMmaiEW27pZ7gh" },
|
|
23
42
|
// lens (Vultr US) — OUR OWN ela-bootstrapd, same box as the express relay.
|
|
24
43
|
// It was in the iOS app's bootstrap list but missing here, which is a big
|
|
25
44
|
// part of why natives could always bootstrap while JS peers struggled
|
|
26
45
|
// (2026-07-25 discovery-outage postmortem: docs/BOOTSTRAP-FLEET.md).
|
|
27
46
|
{ host: "144.202.113.167", port: 33445, pk: "EfT4YMq6qfHdDsCiBCgsEmA78E2NxVYVKVUS9bD6w9GH" },
|
|
28
|
-
//
|
|
29
|
-
{ host: "
|
|
47
|
+
// US-East.
|
|
48
|
+
{ host: "18.216.6.197", port: 33445, pk: "H8sqhRrQuJZ6iLtP2wanxt4LzdNrN2NNFnpPdq1uJ9n2" },
|
|
49
|
+
// --- Reserve pool. TCP verified open; reached via the dynamic-relay-add
|
|
50
|
+
// path when a friend advertises them, and used for DHT bootstrap breadth.
|
|
51
|
+
{ host: "52.57.248.163", port: 33445, pk: "CfJLve8FNQPQJ9xYQ8oEVkPxeAPCN7iSdhnYFkWmWgLn" }, // eu-central
|
|
52
|
+
{ host: "35.179.41.220", port: 33445, pk: "6u2vKadPa9wqDf531QaZy7FJN3c7Wzntm7dKXxXqvyNB" }, // eu-west
|
|
53
|
+
{ host: "52.63.19.190", port: 33445, pk: "EeNenbyS4sx3qtu82esT1V1NMe9dZib5LyQmYGM6fboK" }, // ap-southeast
|
|
54
|
+
// CN — ours. Nearest for peers actually in China; deliberately NOT in the
|
|
55
|
+
// top 3 so US<->US traffic can't land here as its only relay.
|
|
56
|
+
{ host: "47.100.103.201", port: 33445, pk: "CX1XH419p4xJ5SV4KvDxBeKYSRdMJW9QpdWJY8owUxHd" }, // sh
|
|
30
57
|
// gfax (Aliyun CN) — ours, running since 2026-07-02, moved under systemd
|
|
31
|
-
// 2026-07-25 (identity preserved).
|
|
58
|
+
// 2026-07-25 (identity preserved).
|
|
32
59
|
{ host: "139.129.193.117", port: 33445, pk: "67UQhssARwMky1YgFA2oDGZ1RiQYQmS6JqWFHxtopKq5" },
|
|
33
|
-
// US-
|
|
34
|
-
|
|
60
|
+
// --- TCP filtered from the US as of 2026-07-25. Kept for UDP DHT bootstrap
|
|
61
|
+
// and in case they serve other regions; must not occupy a relay slot.
|
|
62
|
+
// gojipower (Vultr US) — ours, deployed 2026-07-25. Demote until its ufw
|
|
63
|
+
// allows 33445; promote back to the rendezvous set once verified.
|
|
64
|
+
{ host: "149.28.98.141", port: 33445, pk: "81PPfuEyzSovgxymxr2ifiCWXdB5CGaiofx5MrxnhYV7" },
|
|
35
65
|
{ host: "18.216.102.47", port: 33445, pk: "G5z8MqiNDFTadFUPfMdYsYtkUDbX5mNCMVHMZtsCnFeb" },
|
|
36
|
-
{ host: "18.216.6.197", port: 33445, pk: "H8sqhRrQuJZ6iLtP2wanxt4LzdNrN2NNFnpPdq1uJ9n2" },
|
|
37
|
-
// US-West.
|
|
38
66
|
{ host: "54.193.141.205", port: 33445, pk: "7TfZWZNV8vnBxxWzJXuvKgX2QyKkLpg2oXx3LQ5tg8LW" },
|
|
39
|
-
// Unknown / global.
|
|
40
67
|
{ host: "154.64.235.176", port: 33445, pk: "GdNtV2N74fZnLjhH7NhQ18nGdxb1k8jRM9dQaK7WnxmL" },
|
|
41
|
-
// Asia-Pacific (Singapore + China). Kept as fallback so peers
|
|
42
|
-
// actually in CN/SG can use a nearby relay. Peers in the US should
|
|
43
|
-
// not be hitting these for normal traffic.
|
|
44
68
|
{ host: "52.74.215.181", port: 33445, pk: "Xv6d34WaUw9bPn7YihzVAFw7D2igbQJZ3jwmzzfYVFV" },
|
|
45
|
-
{ host: "47.100.103.201", port: 33445, pk: "CX1XH419p4xJ5SV4KvDxBeKYSRdMJW9QpdWJY8owUxHd" },
|
|
46
69
|
{ host: "52.83.171.135", port: 443, pk: "5tuHgK1Q4CYf4K5PutsEPK5E3Z7cbtEBdx7LwmdzqXHL" },
|
|
47
70
|
{ host: "52.83.191.228", port: 33445, pk: "3khtxZo89SBScAMaHhTvD68pPHiKxgZT6hTCSZZVgNEm" },
|
|
48
71
|
];
|
package/dist/console/console.js
CHANGED
|
@@ -665,29 +665,41 @@ import yaml from "js-yaml";
|
|
|
665
665
|
var DEFAULT_CONFIG_DIR = resolve(homedir2(), ".agentnet");
|
|
666
666
|
var DEFAULT_CONFIG_FILE = resolve(DEFAULT_CONFIG_DIR, "config.yaml");
|
|
667
667
|
var DEFAULT_BOOTSTRAP_NODES = [
|
|
668
|
+
// --- Rendezvous set: the three every node dials. TCP verified open. ---
|
|
669
|
+
// US-East — the historical workhorse, and the relay mac-dev has held
|
|
670
|
+
// continuously through every incident this month.
|
|
671
|
+
{ host: "13.58.208.50", port: 33445, pk: "89vny8MrKdDKs7Uta9RdVmspPjnRMdwMmaiEW27pZ7gh" },
|
|
668
672
|
// lens (Vultr US) — OUR OWN ela-bootstrapd, same box as the express relay.
|
|
669
673
|
// It was in the iOS app's bootstrap list but missing here, which is a big
|
|
670
674
|
// part of why natives could always bootstrap while JS peers struggled
|
|
671
675
|
// (2026-07-25 discovery-outage postmortem: docs/BOOTSTRAP-FLEET.md).
|
|
672
676
|
{ host: "144.202.113.167", port: 33445, pk: "EfT4YMq6qfHdDsCiBCgsEmA78E2NxVYVKVUS9bD6w9GH" },
|
|
673
|
-
//
|
|
674
|
-
{ host: "
|
|
677
|
+
// US-East.
|
|
678
|
+
{ host: "18.216.6.197", port: 33445, pk: "H8sqhRrQuJZ6iLtP2wanxt4LzdNrN2NNFnpPdq1uJ9n2" },
|
|
679
|
+
// --- Reserve pool. TCP verified open; reached via the dynamic-relay-add
|
|
680
|
+
// path when a friend advertises them, and used for DHT bootstrap breadth.
|
|
681
|
+
{ host: "52.57.248.163", port: 33445, pk: "CfJLve8FNQPQJ9xYQ8oEVkPxeAPCN7iSdhnYFkWmWgLn" },
|
|
682
|
+
// eu-central
|
|
683
|
+
{ host: "35.179.41.220", port: 33445, pk: "6u2vKadPa9wqDf531QaZy7FJN3c7Wzntm7dKXxXqvyNB" },
|
|
684
|
+
// eu-west
|
|
685
|
+
{ host: "52.63.19.190", port: 33445, pk: "EeNenbyS4sx3qtu82esT1V1NMe9dZib5LyQmYGM6fboK" },
|
|
686
|
+
// ap-southeast
|
|
687
|
+
// CN — ours. Nearest for peers actually in China; deliberately NOT in the
|
|
688
|
+
// top 3 so US<->US traffic can't land here as its only relay.
|
|
689
|
+
{ host: "47.100.103.201", port: 33445, pk: "CX1XH419p4xJ5SV4KvDxBeKYSRdMJW9QpdWJY8owUxHd" },
|
|
690
|
+
// sh
|
|
675
691
|
// gfax (Aliyun CN) — ours, running since 2026-07-02, moved under systemd
|
|
676
|
-
// 2026-07-25 (identity preserved).
|
|
692
|
+
// 2026-07-25 (identity preserved).
|
|
677
693
|
{ host: "139.129.193.117", port: 33445, pk: "67UQhssARwMky1YgFA2oDGZ1RiQYQmS6JqWFHxtopKq5" },
|
|
678
|
-
// US-
|
|
679
|
-
|
|
694
|
+
// --- TCP filtered from the US as of 2026-07-25. Kept for UDP DHT bootstrap
|
|
695
|
+
// and in case they serve other regions; must not occupy a relay slot.
|
|
696
|
+
// gojipower (Vultr US) — ours, deployed 2026-07-25. Demote until its ufw
|
|
697
|
+
// allows 33445; promote back to the rendezvous set once verified.
|
|
698
|
+
{ host: "149.28.98.141", port: 33445, pk: "81PPfuEyzSovgxymxr2ifiCWXdB5CGaiofx5MrxnhYV7" },
|
|
680
699
|
{ host: "18.216.102.47", port: 33445, pk: "G5z8MqiNDFTadFUPfMdYsYtkUDbX5mNCMVHMZtsCnFeb" },
|
|
681
|
-
{ host: "18.216.6.197", port: 33445, pk: "H8sqhRrQuJZ6iLtP2wanxt4LzdNrN2NNFnpPdq1uJ9n2" },
|
|
682
|
-
// US-West.
|
|
683
700
|
{ host: "54.193.141.205", port: 33445, pk: "7TfZWZNV8vnBxxWzJXuvKgX2QyKkLpg2oXx3LQ5tg8LW" },
|
|
684
|
-
// Unknown / global.
|
|
685
701
|
{ host: "154.64.235.176", port: 33445, pk: "GdNtV2N74fZnLjhH7NhQ18nGdxb1k8jRM9dQaK7WnxmL" },
|
|
686
|
-
// Asia-Pacific (Singapore + China). Kept as fallback so peers
|
|
687
|
-
// actually in CN/SG can use a nearby relay. Peers in the US should
|
|
688
|
-
// not be hitting these for normal traffic.
|
|
689
702
|
{ host: "52.74.215.181", port: 33445, pk: "Xv6d34WaUw9bPn7YihzVAFw7D2igbQJZ3jwmzzfYVFV" },
|
|
690
|
-
{ host: "47.100.103.201", port: 33445, pk: "CX1XH419p4xJ5SV4KvDxBeKYSRdMJW9QpdWJY8owUxHd" },
|
|
691
703
|
{ host: "52.83.171.135", port: 443, pk: "5tuHgK1Q4CYf4K5PutsEPK5E3Z7cbtEBdx7LwmdzqXHL" },
|
|
692
704
|
{ host: "52.83.191.228", port: 33445, pk: "3khtxZo89SBScAMaHhTvD68pPHiKxgZT6hTCSZZVgNEm" }
|
|
693
705
|
];
|
package/dist/ui/desktop/app.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
window.__DK_UI_VERSION="0.1.
|
|
1
|
+
window.__DK_UI_VERSION="0.1.252";
|
|
2
2
|
const ICON_PATHS = {
|
|
3
3
|
// ---- tab bar (the four must feel like one set) ----
|
|
4
4
|
users: '<path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"/><circle cx="9" cy="7" r="4"/><path d="M22 21v-2a4 4 0 0 0-3-3.87"/><path d="M16 3.13a4 4 0 0 1 0 7.75"/>',
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@decentnetwork/lan",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.252",
|
|
4
4
|
"description": "Private virtual LAN for self-hosted services and AI agents, built on Elastos Carrier. NAT-traversal, name service, ACL, all over a peer-to-peer mesh — no public IP required.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|