@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.
- package/dist/discovery/announcer.d.ts.map +1 -1
- package/dist/discovery/announcer.js +7 -1
- package/dist/discovery/announcer.js.map +1 -1
- package/dist/discovery/dht-node.d.ts +8 -0
- package/dist/discovery/dht-node.d.ts.map +1 -1
- package/dist/discovery/dht-node.js +18 -2
- package/dist/discovery/dht-node.js.map +1 -1
- package/dist/discovery/index.d.ts +1 -1
- package/dist/discovery/index.d.ts.map +1 -1
- package/dist/discovery/index.js +1 -1
- package/dist/discovery/index.js.map +1 -1
- package/dist/discovery/peer-lookup.d.ts +11 -0
- package/dist/discovery/peer-lookup.d.ts.map +1 -1
- package/dist/discovery/peer-lookup.js +30 -4
- package/dist/discovery/peer-lookup.js.map +1 -1
- package/dist/node.d.ts +28 -1
- package/dist/node.d.ts.map +1 -1
- package/dist/node.js +106 -58
- package/dist/node.js.map +1 -1
- package/dist/p2p/payment-codec.d.ts +1 -1
- package/dist/p2p/payment-codec.d.ts.map +1 -1
- package/dist/p2p/payment-codec.js +5 -0
- package/dist/p2p/payment-codec.js.map +1 -1
- package/dist/payments/buyer-payment-negotiator.d.ts.map +1 -1
- package/dist/payments/buyer-payment-negotiator.js +24 -1
- package/dist/payments/buyer-payment-negotiator.js.map +1 -1
- package/dist/seller-request-handler.d.ts.map +1 -1
- package/dist/seller-request-handler.js +11 -3
- package/dist/seller-request-handler.js.map +1 -1
- package/dist/types/protocol.d.ts +14 -0
- package/dist/types/protocol.d.ts.map +1 -1
- package/dist/types/protocol.js +1 -0
- package/dist/types/protocol.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"announcer.d.ts","sourceRoot":"","sources":["../../src/discovery/announcer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;
|
|
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,
|
|
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
|
-
|
|
9
|
-
|
|
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":"AAAA,OAAO,GAAG,MAAM,gBAAgB,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAY7E,MAAM,CAAC,MAAM,kBAAkB,GAAkC;IAC/D,IAAI,EAAE,IAAI;IACV,cAAc,EAAE,iBAAiB,CAAC,wBAAwB,CAAC;IAC3D,oBAAoB,EAAE,
|
|
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"}
|
package/dist/discovery/index.js
CHANGED
|
@@ -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;
|
|
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
|
-
|
|
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
|
-
|
|
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 >=
|
|
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":"AAAA,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEjE,OAAO,EACL,sBAAsB,EACtB,YAAY,EACZ,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,wBAAwB,EACxB,8BAA8B,GAC/B,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAG/D,SAAS,OAAO,CAAI,GAAQ;IAC1B,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC;IACxB,KAAK,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC9C,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAE,EAAE,GAAG,CAAC,CAAC,CAAE,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAWD,MAAM,CAAC,MAAM,qBAAqB,GAAmD;IACnF,qBAAqB,EAAE,IAAI;IAC3B,kBAAkB,EAAE,KAAK;IACzB,oBAAoB,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI;IACpC,UAAU,EAAE,
|
|
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
|
|
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.
|
package/dist/node.d.ts.map
CHANGED
|
@@ -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
|
-
|
|
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.
|