@decentnetwork/lan 0.1.10 → 0.1.11

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.
Binary file
Binary file
Binary file
Binary file
@@ -90,21 +90,26 @@ export class DaemonServer {
90
90
  // optional dora registration can decide our IP.
91
91
  const keyFile = resolve(this.config.carrier.dataDir, "keypair.json");
92
92
  this.peerManager = new PeerManager();
93
- // Use express nodes. Previously the daemon passed an empty array
94
- // here on the theory that "express is for offline messages, not
95
- // live packet forwarding". But asymmetric Carrier sessions (peer
96
- // A thinks B is online, B thinks A is offline — common across
97
- // China-WAN paths) make dora's sendText reply fail direct and
98
- // fall back to express; if we don't subscribe to express we
99
- // never see the response. dora -> cn for register-ok / list-ok
100
- // hits this exact case. The cost of enabling express here is
101
- // that idle text messages may take an extra hop through the
102
- // HTTPS relay — packet-router doesn't use sendText, so its
103
- // hot path is unaffected.
93
+ // Daemon does NOT use express nodes. decentlan is a virtual
94
+ // LAN peers must be ONLINE for IP packets to flow. Express
95
+ // is an offline-message store-and-forward relay for chat-style
96
+ // apps; if we enable it, sendText silently falls back to a
97
+ // queue when a friend is offline. That creates the illusion of
98
+ // connectivity ("the daemon says X is reachable") while
99
+ // packets actually pile up in HTTPS storage and never get
100
+ // forwarded in real time. For a VPN-like data plane, that's
101
+ // wrong better to fail fast and let the operator see the
102
+ // peer as offline.
103
+ //
104
+ // Friend-request bootstrap is the only thing that benefits
105
+ // from express; for that case use the standalone CLI
106
+ // `agentnet friend-request` (which DOES use express via its
107
+ // own short-lived Peer instance) and accept the request on
108
+ // both ends before bringing the daemon up.
104
109
  await this.peerManager.create({
105
110
  keyFile,
106
111
  bootstrapNodes: this.config.carrier.bootstrapNodes,
107
- expressNodes: this.config.carrier.expressNodes ?? [],
112
+ expressNodes: [],
108
113
  });
109
114
  await this.peerManager.start();
110
115
  this.logger.info(`Identity: ${this.peerManager.getAddress()}`);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@decentnetwork/lan",
3
- "version": "0.1.10",
3
+ "version": "0.1.11",
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",