@antseed/node 0.2.68 → 0.2.69

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.
Files changed (34) hide show
  1. package/dist/discovery/announcer.d.ts.map +1 -1
  2. package/dist/discovery/announcer.js +7 -1
  3. package/dist/discovery/announcer.js.map +1 -1
  4. package/dist/discovery/dht-node.d.ts +8 -0
  5. package/dist/discovery/dht-node.d.ts.map +1 -1
  6. package/dist/discovery/dht-node.js +18 -2
  7. package/dist/discovery/dht-node.js.map +1 -1
  8. package/dist/discovery/index.d.ts +1 -1
  9. package/dist/discovery/index.d.ts.map +1 -1
  10. package/dist/discovery/index.js +1 -1
  11. package/dist/discovery/index.js.map +1 -1
  12. package/dist/discovery/peer-lookup.d.ts +11 -0
  13. package/dist/discovery/peer-lookup.d.ts.map +1 -1
  14. package/dist/discovery/peer-lookup.js +30 -4
  15. package/dist/discovery/peer-lookup.js.map +1 -1
  16. package/dist/node.d.ts +28 -1
  17. package/dist/node.d.ts.map +1 -1
  18. package/dist/node.js +106 -58
  19. package/dist/node.js.map +1 -1
  20. package/dist/p2p/payment-codec.d.ts +1 -1
  21. package/dist/p2p/payment-codec.d.ts.map +1 -1
  22. package/dist/p2p/payment-codec.js +5 -0
  23. package/dist/p2p/payment-codec.js.map +1 -1
  24. package/dist/payments/buyer-payment-negotiator.d.ts.map +1 -1
  25. package/dist/payments/buyer-payment-negotiator.js +24 -1
  26. package/dist/payments/buyer-payment-negotiator.js.map +1 -1
  27. package/dist/seller-request-handler.d.ts.map +1 -1
  28. package/dist/seller-request-handler.js +11 -3
  29. package/dist/seller-request-handler.js.map +1 -1
  30. package/dist/types/protocol.d.ts +14 -0
  31. package/dist/types/protocol.d.ts.map +1 -1
  32. package/dist/types/protocol.js +1 -0
  33. package/dist/types/protocol.js.map +1 -1
  34. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"announcer.d.ts","sourceRoot":"","sources":["../../src/discovery/announcer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"announcer.d.ts","sourceRoot":"","sources":["../../src/discovery/announcer.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { signData } from "../p2p/identity.js";
2
- import { ANTSEED_WILDCARD_TOPIC, serviceTopic, serviceSearchTopic, capabilityTopic, topicToInfoHash, normalizeServiceTopicKey, normalizeServiceSearchTopicKey, } from "./dht-node.js";
2
+ import { ANTSEED_WILDCARD_TOPIC, serviceTopic, serviceSearchTopic, capabilityTopic, peerTopic, topicToInfoHash, normalizeServiceTopicKey, normalizeServiceSearchTopicKey, } from "./dht-node.js";
3
3
  import { METADATA_VERSION } from "./peer-metadata.js";
4
4
  import { isKnownServiceApiProtocol } from "../types/service-api.js";
5
5
  import { encodeMetadataForSigning } from "./metadata-codec.js";
@@ -211,6 +211,12 @@ export class PeerAnnouncer {
211
211
  }
212
212
  if (!(await this._tryAnnounceTopic(ANTSEED_WILDCARD_TOPIC)))
213
213
  failures += 1;
214
+ // Per-peer topic: lets buyers do a deterministic lookup-by-peerId without
215
+ // scanning the (saturated) wildcard. Cheap to publish — one extra announce
216
+ // per cycle — and dramatically improves "find this exact peer" queries.
217
+ if (!(await this._tryAnnounceTopic(peerTopic(this.config.identity.peerId)))) {
218
+ failures += 1;
219
+ }
214
220
  if (this.config.offerings) {
215
221
  const announcedCapabilities = new Set();
216
222
  for (const offering of this.config.offerings) {
@@ -1 +1 @@
1
- {"version":3,"file":"announcer.js","sourceRoot":"","sources":["../../src/discovery/announcer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"announcer.js","sourceRoot":"","sources":["../../src/discovery/announcer.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,14 @@ export declare const DEFAULT_DHT_CONFIG: Omit<DHTNodeConfig, "peerId">;
16
16
  export declare function topicToInfoHash(topic: string): Buffer;
17
17
  /** Wildcard topic that all peers announce on — used for general discovery. */
18
18
  export declare const ANTSEED_WILDCARD_TOPIC = "antseed:*";
19
+ /**
20
+ * Per-peer topic that the announcer registers under so callers can look
21
+ * up a single peer by its peerId without scanning the wildcard. Buyers do
22
+ * `dht.lookup(topicToInfoHash(peerTopic(peerId)))` to get the peer's
23
+ * signaling endpoint(s) directly. The peerId is normalized to lowercase
24
+ * hex (no `0x`); validation is the caller's responsibility.
25
+ */
26
+ export declare function peerTopic(peerId: string): string;
19
27
  export declare function normalizeServiceTopicKey(serviceName: string): string;
20
28
  export declare function normalizeServiceSearchTopicKey(serviceName: string): string;
21
29
  export declare function serviceTopic(serviceName: string): string;
@@ -1 +1 @@
1
- {"version":3,"file":"dht-node.d.ts","sourceRoot":"","sources":["../../src/discovery/dht-node.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAG/C,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACtD,oBAAoB,EAAE,MAAM,CAAC;IAC7B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gGAAgG;IAChG,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,eAAO,MAAM,kBAAkB,EAAE,IAAI,CAAC,aAAa,EAAE,QAAQ,CAK5D,CAAC;AAgBF,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAErD;AAMD,8EAA8E;AAC9E,eAAO,MAAM,sBAAsB,cAAc,CAAC;AAElD,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAEpE;AAED,wBAAgB,8BAA8B,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAI1E;AAED,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAE9D;AAED,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAGzE;AAED,qBAAa,OAAO;IAClB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IACvC,OAAO,CAAC,GAAG,CAAoB;IAC/B,SAAgB,MAAM,EAAE,YAAY,CAAsB;gBAE9C,MAAM,EAAE,aAAa;IAI3B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAwCtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAarB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBvD,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAsC9E,YAAY,IAAI,MAAM;IAOtB,OAAO,IAAI,MAAM;CAWlB"}
1
+ {"version":3,"file":"dht-node.d.ts","sourceRoot":"","sources":["../../src/discovery/dht-node.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAG/C,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACtD,oBAAoB,EAAE,MAAM,CAAC;IAC7B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gGAAgG;IAChG,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,eAAO,MAAM,kBAAkB,EAAE,IAAI,CAAC,aAAa,EAAE,QAAQ,CAW5D,CAAC;AAgBF,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAErD;AAMD,8EAA8E;AAC9E,eAAO,MAAM,sBAAsB,cAAc,CAAC;AAElD;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAEpE;AAED,wBAAgB,8BAA8B,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAI1E;AAED,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAE9D;AAED,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAGzE;AAED,qBAAa,OAAO;IAClB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IACvC,OAAO,CAAC,GAAG,CAAoB;IAC/B,SAAgB,MAAM,EAAE,YAAY,CAAsB;gBAE9C,MAAM,EAAE,aAAa;IAI3B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAwCtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAarB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBvD,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAsC9E,YAAY,IAAI,MAAM;IAOtB,OAAO,IAAI,MAAM;CAWlB"}
@@ -5,8 +5,14 @@ import { OFFICIAL_BOOTSTRAP_NODES, toBootstrapConfig } from "./bootstrap.js";
5
5
  export const DEFAULT_DHT_CONFIG = {
6
6
  port: 6881,
7
7
  bootstrapNodes: toBootstrapConfig(OFFICIAL_BOOTSTRAP_NODES),
8
- reannounceIntervalMs: 15 * 60 * 1000,
9
- operationTimeoutMs: 10_000,
8
+ // 5 min — short enough that a missed reannounce is recovered well before
9
+ // most BEP-5 storage nodes expire the value (~30 min). Used to be 15 min,
10
+ // which sat right at the edge and caused intermittent visibility gaps.
11
+ reannounceIntervalMs: 5 * 60 * 1000,
12
+ // 25s — long enough for a cold routing table to fan out and for the DHT
13
+ // to drain its 'peer' events. With 10s we frequently observed lookups
14
+ // returning a small subset of announcers right after bootstrap.
15
+ operationTimeoutMs: 25_000,
10
16
  };
11
17
  function isPublicIP(host) {
12
18
  if (host === "localhost" || host === "::1")
@@ -37,6 +43,16 @@ function normalizeTopicSegment(value) {
37
43
  }
38
44
  /** Wildcard topic that all peers announce on — used for general discovery. */
39
45
  export const ANTSEED_WILDCARD_TOPIC = "antseed:*";
46
+ /**
47
+ * Per-peer topic that the announcer registers under so callers can look
48
+ * up a single peer by its peerId without scanning the wildcard. Buyers do
49
+ * `dht.lookup(topicToInfoHash(peerTopic(peerId)))` to get the peer's
50
+ * signaling endpoint(s) directly. The peerId is normalized to lowercase
51
+ * hex (no `0x`); validation is the caller's responsibility.
52
+ */
53
+ export function peerTopic(peerId) {
54
+ return "antseed:peer:" + peerId.trim().toLowerCase().replace(/^0x/, "");
55
+ }
40
56
  export function normalizeServiceTopicKey(serviceName) {
41
57
  return normalizeTopicSegment(serviceName);
42
58
  }
@@ -1 +1 @@
1
- {"version":3,"file":"dht-node.js","sourceRoot":"","sources":["../../src/discovery/dht-node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dht-node.js","sourceRoot":"","sources":["../../src/discovery/dht-node.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- export { DHTNode, DEFAULT_DHT_CONFIG, topicToInfoHash, ANTSEED_WILDCARD_TOPIC, serviceTopic, serviceSearchTopic, capabilityTopic, normalizeServiceTopicKey, normalizeServiceSearchTopicKey, type DHTNodeConfig, } from './dht-node.js';
1
+ export { DHTNode, DEFAULT_DHT_CONFIG, topicToInfoHash, ANTSEED_WILDCARD_TOPIC, serviceTopic, serviceSearchTopic, capabilityTopic, peerTopic, normalizeServiceTopicKey, normalizeServiceSearchTopicKey, type DHTNodeConfig, } from './dht-node.js';
2
2
  export { PeerAnnouncer, type AnnouncerConfig } from './announcer.js';
3
3
  export { PeerLookup, DEFAULT_LOOKUP_CONFIG, type LookupConfig, type LookupResult } from './peer-lookup.js';
4
4
  export { scorePeer, rankPeers, selectBestPeer, selectDiversePeers, DEFAULT_SCORING_WEIGHTS, type ScoringWeights, type PeerCandidate, type ScoredPeer } from './peer-selector.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/discovery/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,kBAAkB,EAClB,eAAe,EACf,sBAAsB,EACtB,YAAY,EACZ,kBAAkB,EAClB,eAAe,EACf,wBAAwB,EACxB,8BAA8B,EAC9B,KAAK,aAAa,GACnB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,KAAK,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAE3G,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,KAAK,cAAc,EAAE,KAAK,aAAa,EAAE,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACjL,OAAO,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC1I,OAAO,EAAE,cAAc,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC/F,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AACnH,OAAO,EAAE,gBAAgB,EAAE,6BAA6B,EAAE,KAAK,YAAY,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AACnI,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,KAAK,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC9G,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAClF,OAAO,EAAE,oBAAoB,EAAE,KAAK,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AACpG,OAAO,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,KAAK,iBAAiB,EAAE,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/discovery/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,kBAAkB,EAClB,eAAe,EACf,sBAAsB,EACtB,YAAY,EACZ,kBAAkB,EAClB,eAAe,EACf,SAAS,EACT,wBAAwB,EACxB,8BAA8B,EAC9B,KAAK,aAAa,GACnB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,KAAK,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAE3G,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,KAAK,cAAc,EAAE,KAAK,aAAa,EAAE,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACjL,OAAO,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC1I,OAAO,EAAE,cAAc,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC/F,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AACnH,OAAO,EAAE,gBAAgB,EAAE,6BAA6B,EAAE,KAAK,YAAY,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AACnI,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,KAAK,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC9G,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAClF,OAAO,EAAE,oBAAoB,EAAE,KAAK,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AACpG,OAAO,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,KAAK,iBAAiB,EAAE,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC"}
@@ -1,4 +1,4 @@
1
- export { DHTNode, DEFAULT_DHT_CONFIG, topicToInfoHash, ANTSEED_WILDCARD_TOPIC, serviceTopic, serviceSearchTopic, capabilityTopic, normalizeServiceTopicKey, normalizeServiceSearchTopicKey, } from './dht-node.js';
1
+ export { DHTNode, DEFAULT_DHT_CONFIG, topicToInfoHash, ANTSEED_WILDCARD_TOPIC, serviceTopic, serviceSearchTopic, capabilityTopic, peerTopic, normalizeServiceTopicKey, normalizeServiceSearchTopicKey, } from './dht-node.js';
2
2
  export { PeerAnnouncer } from './announcer.js';
3
3
  export { PeerLookup, DEFAULT_LOOKUP_CONFIG } from './peer-lookup.js';
4
4
  export { scorePeer, rankPeers, selectBestPeer, selectDiversePeers, DEFAULT_SCORING_WEIGHTS } from './peer-selector.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/discovery/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,kBAAkB,EAClB,eAAe,EACf,sBAAsB,EACtB,YAAY,EACZ,kBAAkB,EAClB,eAAe,EACf,wBAAwB,EACxB,8BAA8B,GAE/B,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,aAAa,EAAwB,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAwC,MAAM,kBAAkB,CAAC;AAE3G,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,kBAAkB,EAAE,uBAAuB,EAA4D,MAAM,oBAAoB,CAAC;AACjL,OAAO,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,iBAAiB,EAAsB,MAAM,gBAAgB,CAAC;AAC1I,OAAO,EAAE,cAAc,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC/F,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,aAAa,EAAwB,MAAM,yBAAyB,CAAC;AACnH,OAAO,EAAE,gBAAgB,EAAE,6BAA6B,EAAgD,MAAM,oBAAoB,CAAC;AACnI,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAA4B,MAAM,qBAAqB,CAAC;AAE9G,OAAO,EAAE,oBAAoB,EAAmC,MAAM,6BAA6B,CAAC;AACpG,OAAO,EAAE,gBAAgB,EAAE,yBAAyB,EAAiD,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/discovery/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,kBAAkB,EAClB,eAAe,EACf,sBAAsB,EACtB,YAAY,EACZ,kBAAkB,EAClB,eAAe,EACf,SAAS,EACT,wBAAwB,EACxB,8BAA8B,GAE/B,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,aAAa,EAAwB,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAwC,MAAM,kBAAkB,CAAC;AAE3G,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,kBAAkB,EAAE,uBAAuB,EAA4D,MAAM,oBAAoB,CAAC;AACjL,OAAO,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,iBAAiB,EAAsB,MAAM,gBAAgB,CAAC;AAC1I,OAAO,EAAE,cAAc,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC/F,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,aAAa,EAAwB,MAAM,yBAAyB,CAAC;AACnH,OAAO,EAAE,gBAAgB,EAAE,6BAA6B,EAAgD,MAAM,oBAAoB,CAAC;AACnI,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAA4B,MAAM,qBAAqB,CAAC;AAE9G,OAAO,EAAE,oBAAoB,EAAmC,MAAM,6BAA6B,CAAC;AACpG,OAAO,EAAE,gBAAgB,EAAE,yBAAyB,EAAiD,MAAM,iBAAiB,CAAC"}
@@ -21,6 +21,17 @@ export declare class PeerLookup {
21
21
  findAll(): Promise<LookupResult[]>;
22
22
  findByService(service: string): Promise<LookupResult[]>;
23
23
  findByCapability(capability: string, name?: string): Promise<LookupResult[]>;
24
+ /**
25
+ * Look up a single peer by its peerId via the per-peer DHT topic
26
+ * (`antseed:peer:<peerId>`). Returns every endpoint whose served metadata
27
+ * actually matches the requested peerId — a remote endpoint announcing
28
+ * the topic but serving a different peer's metadata is filtered out, so
29
+ * a hostile peer cannot squat another peer's identity.
30
+ *
31
+ * The peerId is normalized to lowercase hex; passing an empty / invalid
32
+ * id returns an empty list.
33
+ */
34
+ findByPeerId(peerId: string): Promise<LookupResult[]>;
24
35
  private resolveLookupResults;
25
36
  private _resolveSinglePeer;
26
37
  verifyMetadataSignature(metadata: PeerMetadata): Promise<boolean>;
@@ -1 +1 @@
1
- {"version":3,"file":"peer-lookup.d.ts","sourceRoot":"","sources":["../../src/discovery/peer-lookup.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAU7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,KAAK,EAAE,gBAAgB,EAAgB,MAAM,wBAAwB,CAAC;AAW7E,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,OAAO,CAAC;IACb,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,qBAAqB,EAAE,OAAO,CAAC;IAC/B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,qBAAqB,EAAE,IAAI,CAAC,YAAY,EAAE,KAAK,GAAG,kBAAkB,CAKhF,CAAC;AAEF,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,YAAY,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;gBAE1B,MAAM,EAAE,YAAY;IAI1B,OAAO,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAMlC,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAoBvD,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;YAOpE,oBAAoB;YA2BpB,kBAAkB;IAoB1B,uBAAuB,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IAMvE,OAAO,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO;CAIzC"}
1
+ {"version":3,"file":"peer-lookup.d.ts","sourceRoot":"","sources":["../../src/discovery/peer-lookup.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAW7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,KAAK,EAAE,gBAAgB,EAAgB,MAAM,wBAAwB,CAAC;AAW7E,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,OAAO,CAAC;IACb,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,qBAAqB,EAAE,OAAO,CAAC;IAC/B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,qBAAqB,EAAE,IAAI,CAAC,YAAY,EAAE,KAAK,GAAG,kBAAkB,CAQhF,CAAC;AAEF,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,YAAY,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;gBAE1B,MAAM,EAAE,YAAY;IAI1B,OAAO,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAMlC,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAoBvD,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAOlF;;;;;;;;;OASG;IACG,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;YAQ7C,oBAAoB;YAoCpB,kBAAkB;IAoB1B,uBAAuB,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IAMvE,OAAO,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO;CAIzC"}
@@ -1,5 +1,5 @@
1
1
  import { verifySignature, hexToBytes } from "../p2p/identity.js";
2
- import { ANTSEED_WILDCARD_TOPIC, serviceTopic, serviceSearchTopic, capabilityTopic, topicToInfoHash, normalizeServiceTopicKey, normalizeServiceSearchTopicKey, } from "./dht-node.js";
2
+ import { ANTSEED_WILDCARD_TOPIC, serviceTopic, serviceSearchTopic, capabilityTopic, peerTopic, topicToInfoHash, normalizeServiceTopicKey, normalizeServiceSearchTopicKey, } from "./dht-node.js";
3
3
  import { encodeMetadataForSigning } from "./metadata-codec.js";
4
4
  function shuffle(arr) {
5
5
  const out = arr.slice();
@@ -13,7 +13,10 @@ export const DEFAULT_LOOKUP_CONFIG = {
13
13
  requireValidSignature: true,
14
14
  allowStaleMetadata: false,
15
15
  maxAnnouncementAgeMs: 30 * 60 * 1000,
16
- maxResults: 50,
16
+ // Old cap was 50; with the network growing past that, browse views were
17
+ // silently truncated. 200 keeps the parallel metadata fan-out reasonable
18
+ // while no longer hiding peers from ‘network browse’.
19
+ maxResults: 200,
17
20
  };
18
21
  export class PeerLookup {
19
22
  config;
@@ -48,7 +51,27 @@ export class PeerLookup {
48
51
  const peers = await this.config.dht.lookup(infoHash);
49
52
  return this.resolveLookupResults(shuffle(peers));
50
53
  }
51
- async resolveLookupResults(peers) {
54
+ /**
55
+ * Look up a single peer by its peerId via the per-peer DHT topic
56
+ * (`antseed:peer:<peerId>`). Returns every endpoint whose served metadata
57
+ * actually matches the requested peerId — a remote endpoint announcing
58
+ * the topic but serving a different peer's metadata is filtered out, so
59
+ * a hostile peer cannot squat another peer's identity.
60
+ *
61
+ * The peerId is normalized to lowercase hex; passing an empty / invalid
62
+ * id returns an empty list.
63
+ */
64
+ async findByPeerId(peerId) {
65
+ const normalized = peerId.trim().toLowerCase().replace(/^0x/, "");
66
+ if (!/^[0-9a-f]{40}$/.test(normalized))
67
+ return [];
68
+ const infoHash = topicToInfoHash(peerTopic(normalized));
69
+ const peers = await this.config.dht.lookup(infoHash);
70
+ return this.resolveLookupResults(shuffle(peers), { metadataPeerId: normalized });
71
+ }
72
+ async resolveLookupResults(peers, options) {
73
+ const maxResults = options?.maxResults ?? this.config.maxResults;
74
+ const metadataPeerId = options?.metadataPeerId;
52
75
  // Deduplicate endpoints before firing parallel requests
53
76
  const seenEndpoints = new Set();
54
77
  const uniquePeers = [];
@@ -64,8 +87,11 @@ export class PeerLookup {
64
87
  const results = [];
65
88
  for (const r of settled) {
66
89
  if (r.status === "fulfilled" && r.value !== null) {
90
+ if (metadataPeerId && r.value.metadata.peerId.toLowerCase() !== metadataPeerId) {
91
+ continue;
92
+ }
67
93
  results.push(r.value);
68
- if (results.length >= this.config.maxResults)
94
+ if (results.length >= maxResults)
69
95
  break;
70
96
  }
71
97
  }
@@ -1 +1 @@
1
- {"version":3,"file":"peer-lookup.js","sourceRoot":"","sources":["../../src/discovery/peer-lookup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"peer-lookup.js","sourceRoot":"","sources":["../../src/discovery/peer-lookup.ts"],"names":[],"mappings":"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"}
package/dist/node.d.ts CHANGED
@@ -86,7 +86,7 @@ export interface NodeConfig {
86
86
  /** Use only the provided bootstrapNodes and skip the official public DHT nodes. Default: false.
87
87
  * Set true for isolated local testing where official nodes must not be contacted. */
88
88
  noOfficialBootstrap?: boolean;
89
- /** Override the DHT operation timeout in ms. Defaults to DEFAULT_DHT_CONFIG.operationTimeoutMs (10 000). */
89
+ /** Override the DHT operation timeout in ms. Defaults to DEFAULT_DHT_CONFIG.operationTimeoutMs. */
90
90
  dhtOperationTimeoutMs?: number;
91
91
  /** Optional seller-side payment runtime wiring. */
92
92
  payments?: NodePaymentsConfig;
@@ -186,6 +186,33 @@ export declare class AntseedNode extends EventEmitter {
186
186
  start(): Promise<void>;
187
187
  stop(): Promise<void>;
188
188
  discoverPeers(service?: string): Promise<PeerInfo[]>;
189
+ /**
190
+ * Look up a single peer by its peerId via the per-peer DHT topic.
191
+ * Much cheaper and more deterministic than walking the wildcard topic:
192
+ * one infohash lookup, return the first endpoint that serves matching
193
+ * signed metadata. Falls back to wildcard discovery for compatibility with
194
+ * old sellers that do not announce per-peer topics yet.
195
+ * Returns `null` if the peer is not currently announcing
196
+ * (or if its metadata is stale / signature-invalid).
197
+ *
198
+ * The returned `PeerInfo` is on-chain-enriched the same way `discoverPeers`
199
+ * enriches its results, so volume / last-settled / ghost counts are
200
+ * available when chain RPC is configured.
201
+ */
202
+ findPeer(peerId: string): Promise<PeerInfo | null>;
203
+ /**
204
+ * Verify claimed on-chain stats against actual contract data, and
205
+ * populate volume / last-settled which are never announced by sellers.
206
+ *
207
+ * Concurrency is capped so a wildcard DHT lookup returning hundreds of
208
+ * peers doesn't fan out into hundreds of simultaneous eth_calls (resolver
209
+ * isOperator + getAgentId + getAgentStats per peer). Most RPC endpoints
210
+ * will rate-limit past ~10-20 concurrent calls; we stay well under that.
211
+ *
212
+ * Mutates the supplied peers in place. No-op when chain clients aren't
213
+ * configured — callers can safely invoke this regardless.
214
+ */
215
+ private _enrichPeersWithOnChainStats;
189
216
  /**
190
217
  * Eagerly open a connection to a peer and wire up the mux.
191
218
  * Subsequent sendRequest / sendRequestStream calls will reuse this connection.
@@ -1 +1 @@
1
- {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"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"}
package/dist/node.js CHANGED
@@ -283,69 +283,117 @@ export class AntseedNode extends EventEmitter {
283
283
  peers.push(p);
284
284
  }
285
285
  }
286
- // Verify claimed on-chain stats against actual contract data, and
287
- // populate volume/last-settled which are never announced by sellers.
288
- //
289
- // Concurrency is capped so a wildcard DHT lookup returning hundreds of
290
- // peers doesn't fan out into hundreds of simultaneous eth_calls (resolver
291
- // isOperator + getAgentId + getAgentStats per peer). Most RPC endpoints
292
- // will rate-limit past ~10-20 concurrent calls; we stay well under that.
293
- if (this._channelsClient && this._stakingClient) {
294
- const channelsClient = this._channelsClient;
295
- const stakingClient = this._stakingClient;
296
- const resolver = this._sellerAddressResolver;
297
- const DISCOVERY_RPC_CONCURRENCY = 8;
298
- const queue = peers.slice();
299
- const workers = [];
300
- // Throttle on-chain reads across rapid discovery cycles. 60s is short
301
- // enough that freshness feels real-time in the UI, and long enough that
302
- // back-to-back `discoverPeers()` calls don't hammer the RPC endpoint.
303
- const ON_CHAIN_STATS_TTL_MS = 60_000;
304
- const nowMs = Date.now();
305
- const verifyOne = async (p) => {
306
- if (typeof p.onChainStatsFetchedAt === 'number'
307
- && nowMs - p.onChainStatsFetchedAt < ON_CHAIN_STATS_TTL_MS) {
308
- return;
309
- }
310
- try {
311
- const evmAddress = resolver
312
- ? await resolver.resolveSellerAddress(p.peerId, p.metadata)
313
- : peerIdToAddress(p.peerId);
314
- const agentId = await stakingClient.getAgentId(evmAddress);
315
- const stats = await channelsClient.getAgentStats(agentId);
316
- p.onChainChannelCount = stats.channelCount;
317
- p.onChainGhostCount = stats.ghostCount;
318
- // totalVolumeUsdc is base-6 USDC. Clamp to safe-int range before
319
- // narrowing to Number — ~9M USDC fits Number.MAX_SAFE_INTEGER.
320
- const volumeMicros = stats.totalVolumeUsdc;
321
- p.onChainTotalVolumeUsdcMicros = volumeMicros <= BigInt(Number.MAX_SAFE_INTEGER)
322
- ? Number(volumeMicros)
323
- : Number.MAX_SAFE_INTEGER;
324
- p.onChainLastSettledAtSec = stats.lastSettledAt;
325
- p.onChainStatsFetchedAt = Date.now();
326
- }
327
- catch {
328
- // Per-peer verification failure — keep whatever seller metadata claimed
329
- // (channelCount/ghostCount); volume/lastSettled remain undefined.
330
- }
331
- };
332
- for (let i = 0; i < Math.min(DISCOVERY_RPC_CONCURRENCY, queue.length); i++) {
333
- workers.push((async () => {
334
- for (;;) {
335
- const next = queue.shift();
336
- if (!next)
337
- return;
338
- await verifyOne(next);
339
- }
340
- })());
341
- }
342
- await Promise.all(workers);
343
- }
286
+ await this._enrichPeersWithOnChainStats(peers);
344
287
  for (const p of peers) {
345
288
  debugLog(`[Node] peer ${p.peerId.slice(0, 12)}... providers=[${p.providers.join(",")}] addr=${p.publicAddress ?? "?"}`);
346
289
  }
347
290
  return peers;
348
291
  }
292
+ /**
293
+ * Look up a single peer by its peerId via the per-peer DHT topic.
294
+ * Much cheaper and more deterministic than walking the wildcard topic:
295
+ * one infohash lookup, return the first endpoint that serves matching
296
+ * signed metadata. Falls back to wildcard discovery for compatibility with
297
+ * old sellers that do not announce per-peer topics yet.
298
+ * Returns `null` if the peer is not currently announcing
299
+ * (or if its metadata is stale / signature-invalid).
300
+ *
301
+ * The returned `PeerInfo` is on-chain-enriched the same way `discoverPeers`
302
+ * enriches its results, so volume / last-settled / ghost counts are
303
+ * available when chain RPC is configured.
304
+ */
305
+ async findPeer(peerId) {
306
+ if (!this._peerLookup) {
307
+ throw new Error("Node not started or not in buyer mode");
308
+ }
309
+ const normalized = peerId.trim().toLowerCase().replace(/^0x/, "");
310
+ if (!/^[0-9a-f]{40}$/.test(normalized)) {
311
+ return null;
312
+ }
313
+ debugLog(`[Node] findPeer(${normalized.slice(0, 12)}...) via per-peer DHT topic`);
314
+ let results = await this._peerLookup.findByPeerId(normalized);
315
+ if (results.length === 0) {
316
+ debugLog(`[Node] per-peer topic empty; falling back to wildcard scan`);
317
+ results = (await this._peerLookup.findAll()).filter((r) => r.metadata.peerId.toLowerCase() === normalized);
318
+ if (results.length === 0) {
319
+ debugLog(`[Node] wildcard fallback empty; not found`);
320
+ return null;
321
+ }
322
+ }
323
+ // Multiple endpoints can legitimately announce for the same peerId
324
+ // (multi-homed seller). The lookup already filtered to those whose
325
+ // served metadata matches the id; pick the freshest by timestamp.
326
+ const best = results.reduce((acc, r) => r.metadata.timestamp > acc.metadata.timestamp ? r : acc);
327
+ const peer = this._lookupResultToPeerInfo(best);
328
+ await this._enrichPeersWithOnChainStats([peer]);
329
+ return peer;
330
+ }
331
+ /**
332
+ * Verify claimed on-chain stats against actual contract data, and
333
+ * populate volume / last-settled which are never announced by sellers.
334
+ *
335
+ * Concurrency is capped so a wildcard DHT lookup returning hundreds of
336
+ * peers doesn't fan out into hundreds of simultaneous eth_calls (resolver
337
+ * isOperator + getAgentId + getAgentStats per peer). Most RPC endpoints
338
+ * will rate-limit past ~10-20 concurrent calls; we stay well under that.
339
+ *
340
+ * Mutates the supplied peers in place. No-op when chain clients aren't
341
+ * configured — callers can safely invoke this regardless.
342
+ */
343
+ async _enrichPeersWithOnChainStats(peers) {
344
+ if (!this._channelsClient || !this._stakingClient || peers.length === 0) {
345
+ return;
346
+ }
347
+ const channelsClient = this._channelsClient;
348
+ const stakingClient = this._stakingClient;
349
+ const resolver = this._sellerAddressResolver;
350
+ const DISCOVERY_RPC_CONCURRENCY = 8;
351
+ // Throttle on-chain reads across rapid discovery cycles. 60s is short
352
+ // enough that freshness feels real-time in the UI, and long enough that
353
+ // back-to-back `discoverPeers()` calls don't hammer the RPC endpoint.
354
+ const ON_CHAIN_STATS_TTL_MS = 60_000;
355
+ const nowMs = Date.now();
356
+ const queue = peers.slice();
357
+ const verifyOne = async (p) => {
358
+ if (typeof p.onChainStatsFetchedAt === 'number'
359
+ && nowMs - p.onChainStatsFetchedAt < ON_CHAIN_STATS_TTL_MS) {
360
+ return;
361
+ }
362
+ try {
363
+ const evmAddress = resolver
364
+ ? await resolver.resolveSellerAddress(p.peerId, p.metadata)
365
+ : peerIdToAddress(p.peerId);
366
+ const agentId = await stakingClient.getAgentId(evmAddress);
367
+ const stats = await channelsClient.getAgentStats(agentId);
368
+ p.onChainChannelCount = stats.channelCount;
369
+ p.onChainGhostCount = stats.ghostCount;
370
+ // totalVolumeUsdc is base-6 USDC. Clamp to safe-int range before
371
+ // narrowing to Number — ~9M USDC fits Number.MAX_SAFE_INTEGER.
372
+ const volumeMicros = stats.totalVolumeUsdc;
373
+ p.onChainTotalVolumeUsdcMicros = volumeMicros <= BigInt(Number.MAX_SAFE_INTEGER)
374
+ ? Number(volumeMicros)
375
+ : Number.MAX_SAFE_INTEGER;
376
+ p.onChainLastSettledAtSec = stats.lastSettledAt;
377
+ p.onChainStatsFetchedAt = Date.now();
378
+ }
379
+ catch {
380
+ // Per-peer verification failure — keep whatever seller metadata claimed
381
+ // (channelCount/ghostCount); volume/lastSettled remain undefined.
382
+ }
383
+ };
384
+ const workers = [];
385
+ for (let i = 0; i < Math.min(DISCOVERY_RPC_CONCURRENCY, queue.length); i++) {
386
+ workers.push((async () => {
387
+ for (;;) {
388
+ const next = queue.shift();
389
+ if (!next)
390
+ return;
391
+ await verifyOne(next);
392
+ }
393
+ })());
394
+ }
395
+ await Promise.all(workers);
396
+ }
349
397
  /**
350
398
  * Eagerly open a connection to a peer and wire up the mux.
351
399
  * Subsequent sendRequest / sendRequestStream calls will reuse this connection.