@decentnetwork/lan 0.1.6 → 0.1.7

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,15 +90,21 @@ 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
- // Daemon does NOT use express nodes. Express is the offline-message
94
- // store-and-forward relay appropriate for friend-request delivery
95
- // (peer might be offline) but not for live packet forwarding (peer
96
- // must be online; we drop packets via SessionManager.isFriendOnline).
97
- // Passing empty array prevents the SDK from falling back to express.
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.
98
104
  await this.peerManager.create({
99
105
  keyFile,
100
106
  bootstrapNodes: this.config.carrier.bootstrapNodes,
101
- expressNodes: [],
107
+ expressNodes: this.config.carrier.expressNodes ?? [],
102
108
  });
103
109
  await this.peerManager.start();
104
110
  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.6",
3
+ "version": "0.1.7",
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",