@antseed/node 0.2.117 → 0.2.119
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/README.md +30 -0
- package/dist/discovery/display-name.d.ts +8 -0
- package/dist/discovery/display-name.d.ts.map +1 -0
- package/dist/discovery/display-name.js +17 -0
- package/dist/discovery/display-name.js.map +1 -0
- package/dist/discovery/domain-verification.d.ts.map +1 -1
- package/dist/discovery/domain-verification.js +2 -1
- package/dist/discovery/domain-verification.js.map +1 -1
- package/dist/discovery/github-verification.d.ts.map +1 -1
- package/dist/discovery/github-verification.js +5 -1
- package/dist/discovery/github-verification.js.map +1 -1
- package/dist/discovery/index.d.ts +1 -0
- package/dist/discovery/index.d.ts.map +1 -1
- package/dist/discovery/index.js +1 -0
- package/dist/discovery/index.js.map +1 -1
- package/dist/discovery/service-catalog.d.ts +2 -1
- package/dist/discovery/service-catalog.d.ts.map +1 -1
- package/dist/discovery/service-catalog.js +2 -0
- package/dist/discovery/service-catalog.js.map +1 -1
- package/dist/discovery/verifier-capabilities.d.ts +9 -0
- package/dist/discovery/verifier-capabilities.d.ts.map +1 -0
- package/dist/discovery/verifier-capabilities.js +35 -0
- package/dist/discovery/verifier-capabilities.js.map +1 -0
- package/dist/index.d.ts +20 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +19 -1
- package/dist/index.js.map +1 -1
- package/dist/node.d.ts +17 -3
- package/dist/node.d.ts.map +1 -1
- package/dist/node.js +117 -82
- package/dist/node.js.map +1 -1
- package/dist/p2p/identity.js +1 -1
- package/dist/p2p/identity.js.map +1 -1
- package/dist/payments/chain-config.d.ts +53 -0
- package/dist/payments/chain-config.d.ts.map +1 -1
- package/dist/payments/chain-config.js +43 -23
- package/dist/payments/chain-config.js.map +1 -1
- package/dist/payments/contract-stack.d.ts +53 -0
- package/dist/payments/contract-stack.d.ts.map +1 -0
- package/dist/payments/contract-stack.js +97 -0
- package/dist/payments/contract-stack.js.map +1 -0
- package/dist/payments/evm/ants-token-client.d.ts +7 -0
- package/dist/payments/evm/ants-token-client.d.ts.map +1 -1
- package/dist/payments/evm/ants-token-client.js +37 -1
- package/dist/payments/evm/ants-token-client.js.map +1 -1
- package/dist/payments/evm/emissions-client.d.ts +3 -0
- package/dist/payments/evm/emissions-client.d.ts.map +1 -1
- package/dist/payments/evm/emissions-client.js +13 -0
- package/dist/payments/evm/emissions-client.js.map +1 -1
- package/dist/payments/evm/emissions-gate-client.d.ts +51 -0
- package/dist/payments/evm/emissions-gate-client.d.ts.map +1 -0
- package/dist/payments/evm/emissions-gate-client.js +55 -0
- package/dist/payments/evm/emissions-gate-client.js.map +1 -0
- package/dist/payments/evm/multicall.d.ts +22 -0
- package/dist/payments/evm/multicall.d.ts.map +1 -0
- package/dist/payments/evm/multicall.js +73 -0
- package/dist/payments/evm/multicall.js.map +1 -0
- package/dist/payments/evm/points-policy-registry-client.d.ts +21 -0
- package/dist/payments/evm/points-policy-registry-client.d.ts.map +1 -0
- package/dist/payments/evm/points-policy-registry-client.js +34 -0
- package/dist/payments/evm/points-policy-registry-client.js.map +1 -0
- package/dist/payments/evm/position-init-client.d.ts +18 -0
- package/dist/payments/evm/position-init-client.d.ts.map +1 -0
- package/dist/payments/evm/position-init-client.js +19 -0
- package/dist/payments/evm/position-init-client.js.map +1 -0
- package/dist/payments/evm/registry-client.d.ts +17 -0
- package/dist/payments/evm/registry-client.d.ts.map +1 -0
- package/dist/payments/evm/registry-client.js +24 -0
- package/dist/payments/evm/registry-client.js.map +1 -0
- package/dist/payments/evm/seller-pools-client.d.ts +95 -0
- package/dist/payments/evm/seller-pools-client.d.ts.map +1 -0
- package/dist/payments/evm/seller-pools-client.js +193 -0
- package/dist/payments/evm/seller-pools-client.js.map +1 -0
- package/dist/payments/evm/seller-pools-rewards-client.d.ts +36 -0
- package/dist/payments/evm/seller-pools-rewards-client.d.ts.map +1 -0
- package/dist/payments/evm/seller-pools-rewards-client.js +126 -0
- package/dist/payments/evm/seller-pools-rewards-client.js.map +1 -0
- package/dist/payments/evm/seller-registry-client.d.ts +28 -0
- package/dist/payments/evm/seller-registry-client.d.ts.map +1 -0
- package/dist/payments/evm/seller-registry-client.js +60 -0
- package/dist/payments/evm/seller-registry-client.js.map +1 -0
- package/dist/payments/evm/seller-rewards-pool-client.d.ts +24 -0
- package/dist/payments/evm/seller-rewards-pool-client.d.ts.map +1 -0
- package/dist/payments/evm/seller-rewards-pool-client.js +27 -0
- package/dist/payments/evm/seller-rewards-pool-client.js.map +1 -0
- package/dist/payments/evm/trust-signals-client.d.ts +54 -0
- package/dist/payments/evm/trust-signals-client.d.ts.map +1 -0
- package/dist/payments/evm/trust-signals-client.js +162 -0
- package/dist/payments/evm/trust-signals-client.js.map +1 -0
- package/dist/payments/evm/usage-accounting-client.d.ts +49 -0
- package/dist/payments/evm/usage-accounting-client.d.ts.map +1 -0
- package/dist/payments/evm/usage-accounting-client.js +82 -0
- package/dist/payments/evm/usage-accounting-client.js.map +1 -0
- package/dist/payments/evm/usage-rewards-client.d.ts +43 -0
- package/dist/payments/evm/usage-rewards-client.d.ts.map +1 -0
- package/dist/payments/evm/usage-rewards-client.js +62 -0
- package/dist/payments/evm/usage-rewards-client.js.map +1 -0
- package/dist/payments/evm/wash-trading-registry-client.d.ts +105 -0
- package/dist/payments/evm/wash-trading-registry-client.d.ts.map +1 -0
- package/dist/payments/evm/wash-trading-registry-client.js +170 -0
- package/dist/payments/evm/wash-trading-registry-client.js.map +1 -0
- package/dist/payments/generated-contract-addresses.d.ts +59 -0
- package/dist/payments/generated-contract-addresses.d.ts.map +1 -0
- package/dist/payments/generated-contract-addresses.js +60 -0
- package/dist/payments/generated-contract-addresses.js.map +1 -0
- package/dist/payments/index.d.ts +28 -0
- package/dist/payments/index.d.ts.map +1 -1
- package/dist/payments/index.js +14 -0
- package/dist/payments/index.js.map +1 -1
- package/dist/payments/reward-claims.d.ts +28 -0
- package/dist/payments/reward-claims.d.ts.map +1 -0
- package/dist/payments/reward-claims.js +67 -0
- package/dist/payments/reward-claims.js.map +1 -0
- package/dist/payments/reward-preview.d.ts +19 -0
- package/dist/payments/reward-preview.d.ts.map +1 -0
- package/dist/payments/reward-preview.js +36 -0
- package/dist/payments/reward-preview.js.map +1 -0
- package/dist/payments/seller-payment-manager.d.ts +9 -0
- package/dist/payments/seller-payment-manager.d.ts.map +1 -1
- package/dist/payments/seller-payment-manager.js +45 -0
- package/dist/payments/seller-payment-manager.js.map +1 -1
- package/dist/reputation/identity-history.d.ts +75 -0
- package/dist/reputation/identity-history.d.ts.map +1 -0
- package/dist/reputation/identity-history.js +258 -0
- package/dist/reputation/identity-history.js.map +1 -0
- package/dist/reputation/model-reputation.d.ts +3 -2
- package/dist/reputation/model-reputation.d.ts.map +1 -1
- package/dist/reputation/model-reputation.js +2 -9
- package/dist/reputation/model-reputation.js.map +1 -1
- package/dist/reputation/public-json.d.ts +9 -0
- package/dist/reputation/public-json.d.ts.map +1 -0
- package/dist/reputation/public-json.js +98 -0
- package/dist/reputation/public-json.js.map +1 -0
- package/dist/reputation/sybil-risk.d.ts +35 -0
- package/dist/reputation/sybil-risk.d.ts.map +1 -0
- package/dist/reputation/sybil-risk.js +136 -0
- package/dist/reputation/sybil-risk.js.map +1 -0
- package/dist/reputation/trust-score.d.ts +83 -0
- package/dist/reputation/trust-score.d.ts.map +1 -0
- package/dist/reputation/trust-score.js +91 -0
- package/dist/reputation/trust-score.js.map +1 -0
- package/dist/routing/default-router.d.ts +0 -1
- package/dist/routing/default-router.d.ts.map +1 -1
- package/dist/routing/default-router.js +2 -12
- package/dist/routing/default-router.js.map +1 -1
- package/dist/routing/model-route-ranking.d.ts +0 -1
- package/dist/routing/model-route-ranking.d.ts.map +1 -1
- package/dist/routing/model-route-ranking.js.map +1 -1
- package/dist/seller-request-handler.d.ts.map +1 -1
- package/dist/seller-request-handler.js +12 -0
- package/dist/seller-request-handler.js.map +1 -1
- package/dist/types/peer.d.ts +27 -18
- package/dist/types/peer.d.ts.map +1 -1
- package/dist/verification/tee-status.d.ts +35 -0
- package/dist/verification/tee-status.d.ts.map +1 -0
- package/dist/verification/tee-status.js +21 -0
- package/dist/verification/tee-status.js.map +1 -0
- package/package.json +14 -6
- package/dist/reputation/on-chain-reputation.d.ts +0 -84
- package/dist/reputation/on-chain-reputation.d.ts.map +0 -1
- package/dist/reputation/on-chain-reputation.js +0 -290
- package/dist/reputation/on-chain-reputation.js.map +0 -1
package/dist/node.d.ts
CHANGED
|
@@ -73,8 +73,14 @@ export interface NodePaymentsConfig {
|
|
|
73
73
|
usdcAddress?: string;
|
|
74
74
|
/** ERC-8004 IdentityRegistry contract address */
|
|
75
75
|
identityRegistryAddress?: string;
|
|
76
|
-
/** AntseedStaking contract address */
|
|
76
|
+
/** AntseedSellerRegistry (or legacy AntseedStaking) contract address: seller → agent id. */
|
|
77
77
|
stakingAddress?: string;
|
|
78
|
+
/** AntseedSellerPools contract address (buyer trust score: pool staking power). */
|
|
79
|
+
sellerPoolsAddress?: string;
|
|
80
|
+
/** AntseedUsageAccounting contract address (buyer trust score: recognized usage per epoch). */
|
|
81
|
+
usageAccountingAddress?: string;
|
|
82
|
+
/** AntseedWashTradingRegistry contract address (buyer trust score: proven wash traders). */
|
|
83
|
+
washTradingRegistryAddress?: string;
|
|
78
84
|
/** Chain ID for EIP-712 domain. Default: 8453 (Base) */
|
|
79
85
|
chainId?: number;
|
|
80
86
|
/** Default maximum USDC per spending auth. Default: 500000 ($0.50) */
|
|
@@ -85,6 +91,8 @@ export interface NodePaymentsConfig {
|
|
|
85
91
|
minBudgetPerRequest?: string;
|
|
86
92
|
/** Minimum unsettled delta (base units) required before idle settle submits a tx. Default: "2000" (~$0.002). */
|
|
87
93
|
minSettleDelta?: string;
|
|
94
|
+
/** Serve channels whose buyer already requested close on-chain, risking uncollectible work. Default: false. */
|
|
95
|
+
serveWhileClosePending?: boolean;
|
|
88
96
|
/** Optional seller-side slack for estimate-only reserve preflight checks. Unset disables estimate-only rejection. */
|
|
89
97
|
reserveEstimateOverdraftUsdc?: string;
|
|
90
98
|
/** Maximum USDC the buyer authorizes per single request (base units). Default: "500000" ($0.50). */
|
|
@@ -219,6 +227,8 @@ export declare class AntseedNode extends EventEmitter {
|
|
|
219
227
|
private _buyerFreeUsageManager;
|
|
220
228
|
private _sellerFreeUsageManager;
|
|
221
229
|
private _stakingClient;
|
|
230
|
+
/** Batched reader for the on-chain inputs of the buyer trust score. */
|
|
231
|
+
private _trustSignalsClient;
|
|
222
232
|
private _sellerAddressResolver;
|
|
223
233
|
private _identityClient;
|
|
224
234
|
private _paymentMuxes;
|
|
@@ -257,6 +267,7 @@ export declare class AntseedNode extends EventEmitter {
|
|
|
257
267
|
private _partialPeerEnrichmentChain;
|
|
258
268
|
/** Serializes non-blocking external claim verification for discovered peers. */
|
|
259
269
|
private _externalVerificationChain;
|
|
270
|
+
private _identityHistoryCollector;
|
|
260
271
|
private _externalVerificationCache;
|
|
261
272
|
private _externalVerificationInFlight;
|
|
262
273
|
constructor(config: NodeConfig);
|
|
@@ -350,7 +361,9 @@ export declare class AntseedNode extends EventEmitter {
|
|
|
350
361
|
* enriches its results, so volume / last-settled / ghost counts are
|
|
351
362
|
* available when chain RPC is configured.
|
|
352
363
|
*/
|
|
353
|
-
findPeer(peerId: string
|
|
364
|
+
findPeer(peerId: string, options?: {
|
|
365
|
+
awaitExternalVerification?: boolean;
|
|
366
|
+
}): Promise<PeerInfo | null>;
|
|
354
367
|
/**
|
|
355
368
|
* Verify claimed on-chain stats against actual contract data, and
|
|
356
369
|
* populate volume / last-settled which are never announced by sellers.
|
|
@@ -364,7 +377,8 @@ export declare class AntseedNode extends EventEmitter {
|
|
|
364
377
|
* configured — callers can safely invoke this regardless.
|
|
365
378
|
*/
|
|
366
379
|
private _enrichPeersWithOnChainStats;
|
|
367
|
-
|
|
380
|
+
/** Recompute the trust score and the display-only sybil heuristic. */
|
|
381
|
+
private _applyTrust;
|
|
368
382
|
/**
|
|
369
383
|
* Eagerly open a connection to a peer and wire up the mux.
|
|
370
384
|
* 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
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { EventEmitter } from "node:events";
|
|
2
2
|
import { homedir } from "node:os";
|
|
3
3
|
import { join } from "node:path";
|
|
4
|
+
import { IDENTITY_HISTORY_TTL_MS, IdentityHistoryCollector } from './reputation/identity-history.js';
|
|
5
|
+
import { computeTrustScore } from './reputation/trust-score.js';
|
|
6
|
+
import { TrustSignalsClient } from './payments/evm/trust-signals-client.js';
|
|
4
7
|
import { loadOrCreateIdentity } from "./p2p/identity.js";
|
|
5
8
|
import { peerIdToAddress } from "./types/peer.js";
|
|
6
9
|
import { MeteringStorage } from "./metering/storage.js";
|
|
@@ -31,6 +34,7 @@ import { signUtf8 } from "./p2p/identity.js";
|
|
|
31
34
|
import { BalanceManager, DepositsClient, ChannelsClient, FreeUsageClient, BuyerFreeUsageManager, SellerFreeUsageManager, StakingClient, ChannelStore, CHANNEL_KIND, CHANNEL_ROLE, CHANNEL_STATUS, } from "./payments/index.js";
|
|
32
35
|
import { debugLog, debugWarn } from "./utils/debug.js";
|
|
33
36
|
import { parsePublicAddress } from "./discovery/public-address.js";
|
|
37
|
+
import { sanitizePeerDisplayName } from "./discovery/display-name.js";
|
|
34
38
|
import { BuyerPaymentManager } from "./payments/buyer-payment-manager.js";
|
|
35
39
|
import { BuyerPaymentNegotiator } from "./payments/buyer-payment-negotiator.js";
|
|
36
40
|
import { RpcHealthMonitor } from "./payments/rpc-health.js";
|
|
@@ -40,8 +44,16 @@ import { SellerPaymentManager } from "./payments/seller-payment-manager.js";
|
|
|
40
44
|
import { IdentityClient } from "./payments/evm/identity-client.js";
|
|
41
45
|
import { SellerRequestHandler } from "./seller-request-handler.js";
|
|
42
46
|
import { BuyerRequestHandler, } from "./buyer-request-handler.js";
|
|
43
|
-
import { buildSybilContext,
|
|
47
|
+
import { buildSybilContext, computeOnChainSybilRisk, } from "./reputation/sybil-risk.js";
|
|
44
48
|
import { buyerFault } from "./errors.js";
|
|
49
|
+
/** Store the trust score on the peer; leaves the fields untouched when the peer is unscored. */
|
|
50
|
+
function applyTrust(peer) {
|
|
51
|
+
const trust = computeTrustScore(peer);
|
|
52
|
+
if (!trust)
|
|
53
|
+
return;
|
|
54
|
+
peer.trust = trust;
|
|
55
|
+
peer.onChainReputationScore = trust.score;
|
|
56
|
+
}
|
|
45
57
|
const EMPTY_BUYER_USAGE = {
|
|
46
58
|
totalRequests: 0,
|
|
47
59
|
totalInputTokens: '0',
|
|
@@ -52,7 +64,7 @@ const EMPTY_BUYER_USAGE = {
|
|
|
52
64
|
channels: [],
|
|
53
65
|
services: [],
|
|
54
66
|
};
|
|
55
|
-
const EXTERNAL_VERIFICATION_RESULT_TTL_MS =
|
|
67
|
+
const EXTERNAL_VERIFICATION_RESULT_TTL_MS = IDENTITY_HISTORY_TTL_MS;
|
|
56
68
|
/** How long one relayer gets exclusive first refusal on a sweep offer before
|
|
57
69
|
* it passes to the next candidate. The relayer replies 'submitted' right
|
|
58
70
|
* after its local checks + one Base RPC simulation (~1-2s on healthy RPCs),
|
|
@@ -88,6 +100,8 @@ export class AntseedNode extends EventEmitter {
|
|
|
88
100
|
_buyerFreeUsageManager = null;
|
|
89
101
|
_sellerFreeUsageManager = null;
|
|
90
102
|
_stakingClient = null;
|
|
103
|
+
/** Batched reader for the on-chain inputs of the buyer trust score. */
|
|
104
|
+
_trustSignalsClient = null;
|
|
91
105
|
_sellerAddressResolver = null;
|
|
92
106
|
_identityClient = null;
|
|
93
107
|
_paymentMuxes = new Map();
|
|
@@ -126,6 +140,7 @@ export class AntseedNode extends EventEmitter {
|
|
|
126
140
|
_partialPeerEnrichmentChain = Promise.resolve();
|
|
127
141
|
/** Serializes non-blocking external claim verification for discovered peers. */
|
|
128
142
|
_externalVerificationChain = Promise.resolve();
|
|
143
|
+
_identityHistoryCollector;
|
|
129
144
|
_externalVerificationCache = new Map();
|
|
130
145
|
_externalVerificationInFlight = new Set();
|
|
131
146
|
constructor(config) {
|
|
@@ -387,6 +402,7 @@ export class AntseedNode extends EventEmitter {
|
|
|
387
402
|
this._buyerFreeUsageManager = null;
|
|
388
403
|
this._sellerFreeUsageManager = null;
|
|
389
404
|
this._stakingClient = null;
|
|
405
|
+
this._trustSignalsClient = null;
|
|
390
406
|
this._identityClient = null;
|
|
391
407
|
this._sellerAddressResolver = null;
|
|
392
408
|
this._buyerPaymentManager = null;
|
|
@@ -482,12 +498,12 @@ export class AntseedNode extends EventEmitter {
|
|
|
482
498
|
});
|
|
483
499
|
}
|
|
484
500
|
_queuePartialPeerEnrichment(peers) {
|
|
485
|
-
if (peers.length === 0 || !this.
|
|
501
|
+
if (peers.length === 0 || !this._trustSignalsClient) {
|
|
486
502
|
return;
|
|
487
503
|
}
|
|
488
|
-
const peersToEnrich = peers
|
|
504
|
+
const peersToEnrich = peers;
|
|
489
505
|
this._partialPeerEnrichmentChain = this._partialPeerEnrichmentChain.then(async () => {
|
|
490
|
-
if (!this._started || !this.
|
|
506
|
+
if (!this._started || !this._trustSignalsClient) {
|
|
491
507
|
return;
|
|
492
508
|
}
|
|
493
509
|
await this._enrichPeersWithOnChainStats(peersToEnrich);
|
|
@@ -522,6 +538,8 @@ export class AntseedNode extends EventEmitter {
|
|
|
522
538
|
const queued = [];
|
|
523
539
|
const nowMs = Date.now();
|
|
524
540
|
for (const peer of peers) {
|
|
541
|
+
if (this._externalVerificationInFlight.size >= 512)
|
|
542
|
+
break;
|
|
525
543
|
const claimsKey = this._externalVerificationClaimsKey(peer);
|
|
526
544
|
if (!claimsKey)
|
|
527
545
|
continue;
|
|
@@ -535,7 +553,7 @@ export class AntseedNode extends EventEmitter {
|
|
|
535
553
|
continue;
|
|
536
554
|
}
|
|
537
555
|
this._externalVerificationInFlight.add(cacheKey);
|
|
538
|
-
queued.push(
|
|
556
|
+
queued.push(peer);
|
|
539
557
|
}
|
|
540
558
|
if (queued.length === 0)
|
|
541
559
|
return;
|
|
@@ -594,17 +612,19 @@ export class AntseedNode extends EventEmitter {
|
|
|
594
612
|
domains,
|
|
595
613
|
github,
|
|
596
614
|
};
|
|
615
|
+
this._identityHistoryCollector ??= new IdentityHistoryCollector();
|
|
616
|
+
results.identityHistory = await this._identityHistoryCollector.collect(results);
|
|
617
|
+
if (this._externalVerificationCache.size >= 512) {
|
|
618
|
+
this._externalVerificationCache.delete(this._externalVerificationCache.keys().next().value);
|
|
619
|
+
}
|
|
597
620
|
this._externalVerificationCache.set(peer.peerId, {
|
|
598
621
|
claimsKey,
|
|
599
622
|
checkedAtMs,
|
|
600
623
|
results,
|
|
601
624
|
});
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
: 0;
|
|
606
|
-
verifiedPeer.onChainReputationScore = computeOnChainScoreWithRisk(verifiedPeer, risk) ?? verifiedPeer.onChainReputationScore;
|
|
607
|
-
return verifiedPeer;
|
|
625
|
+
peer.verificationResults = results;
|
|
626
|
+
applyTrust(peer);
|
|
627
|
+
return peer;
|
|
608
628
|
}
|
|
609
629
|
catch (err) {
|
|
610
630
|
debugWarn(`[Node] External verification failed for ${peer.peerId.slice(0, 12)}...: ${err instanceof Error ? err.message : err}`);
|
|
@@ -635,7 +655,7 @@ export class AntseedNode extends EventEmitter {
|
|
|
635
655
|
* enriches its results, so volume / last-settled / ghost counts are
|
|
636
656
|
* available when chain RPC is configured.
|
|
637
657
|
*/
|
|
638
|
-
async findPeer(peerId) {
|
|
658
|
+
async findPeer(peerId, options) {
|
|
639
659
|
if (!this._peerLookup) {
|
|
640
660
|
throw buyerFault("Node not started or not in buyer mode", "node-not-started");
|
|
641
661
|
}
|
|
@@ -659,7 +679,12 @@ export class AntseedNode extends EventEmitter {
|
|
|
659
679
|
const best = results.reduce((acc, r) => r.metadata.timestamp > acc.metadata.timestamp ? r : acc);
|
|
660
680
|
const peer = this._lookupResultToPeerInfo(best);
|
|
661
681
|
this._attachCachedExternalVerificationResults([peer]);
|
|
662
|
-
this.
|
|
682
|
+
if (options?.awaitExternalVerification && !peer.verificationResults && this._externalVerificationClaimsKey(peer)) {
|
|
683
|
+
await this._verifyExternalClaimsForPeer(peer);
|
|
684
|
+
}
|
|
685
|
+
else {
|
|
686
|
+
this._queueExternalVerification([peer]);
|
|
687
|
+
}
|
|
663
688
|
await this._enrichPeersWithOnChainStats([peer]);
|
|
664
689
|
return peer;
|
|
665
690
|
}
|
|
@@ -676,81 +701,81 @@ export class AntseedNode extends EventEmitter {
|
|
|
676
701
|
* configured — callers can safely invoke this regardless.
|
|
677
702
|
*/
|
|
678
703
|
async _enrichPeersWithOnChainStats(peers) {
|
|
679
|
-
|
|
704
|
+
const client = this._trustSignalsClient;
|
|
705
|
+
if (!client || peers.length === 0) {
|
|
680
706
|
return;
|
|
681
707
|
}
|
|
682
|
-
const channelsClient = this._channelsClient;
|
|
683
|
-
const stakingClient = this._stakingClient;
|
|
684
708
|
const resolver = this._sellerAddressResolver;
|
|
685
|
-
|
|
686
|
-
//
|
|
687
|
-
//
|
|
688
|
-
|
|
689
|
-
const ON_CHAIN_STATS_TTL_MS = 60_000;
|
|
709
|
+
// Every stale peer is read in one batched pass (two Multicall3 round
|
|
710
|
+
// trips), so the refresh interval bounds RPC usage per discovery cycle
|
|
711
|
+
// instead of the peer count.
|
|
712
|
+
const ON_CHAIN_STATS_TTL_MS = 120_000;
|
|
690
713
|
const nowMs = Date.now();
|
|
691
|
-
const queue = peers.slice();
|
|
692
714
|
const peersWithCompleteStats = new Set();
|
|
693
|
-
const
|
|
694
|
-
|
|
695
|
-
|
|
715
|
+
const stale = [];
|
|
716
|
+
for (const p of peers) {
|
|
717
|
+
if (typeof p.onChainStatsFetchedAt === 'number' && nowMs - p.onChainStatsFetchedAt < ON_CHAIN_STATS_TTL_MS) {
|
|
696
718
|
peersWithCompleteStats.add(p);
|
|
697
|
-
|
|
719
|
+
continue;
|
|
698
720
|
}
|
|
699
721
|
try {
|
|
700
|
-
const
|
|
722
|
+
const address = resolver
|
|
701
723
|
? await resolver.resolveSellerAddress(p.peerId, p.metadata)
|
|
702
724
|
: peerIdToAddress(p.peerId);
|
|
703
|
-
|
|
704
|
-
stakingClient.getAgentId(evmAddress),
|
|
705
|
-
stakingClient.getStake(evmAddress).catch(() => null),
|
|
706
|
-
stakingClient.getStakedAt(evmAddress).catch(() => null),
|
|
707
|
-
]);
|
|
708
|
-
const stats = await channelsClient.getAgentStats(agentId);
|
|
709
|
-
if (stake === null || stakedAt === null) {
|
|
710
|
-
return;
|
|
711
|
-
}
|
|
712
|
-
p.onChainAgentId = agentId;
|
|
713
|
-
p.onChainStakeUsdcMicros = stake <= BigInt(Number.MAX_SAFE_INTEGER)
|
|
714
|
-
? Number(stake)
|
|
715
|
-
: Number.MAX_SAFE_INTEGER;
|
|
716
|
-
p.onChainChannelCount = stats.channelCount;
|
|
717
|
-
p.onChainGhostCount = stats.ghostCount;
|
|
718
|
-
// totalVolumeUsdc is base-6 USDC. Clamp to safe-int range before
|
|
719
|
-
// narrowing to Number — ~9M USDC fits Number.MAX_SAFE_INTEGER.
|
|
720
|
-
const volumeMicros = stats.totalVolumeUsdc;
|
|
721
|
-
p.onChainTotalVolumeUsdcMicros = volumeMicros <= BigInt(Number.MAX_SAFE_INTEGER)
|
|
722
|
-
? Number(volumeMicros)
|
|
723
|
-
: Number.MAX_SAFE_INTEGER;
|
|
724
|
-
p.onChainLastSettledAtSec = stats.lastSettledAt;
|
|
725
|
-
// Some migrated/facade staking accounts return zero for `stakedAt`,
|
|
726
|
-
// and transient RPC failures used to be coerced to zero as well. A
|
|
727
|
-
// zero read must not erase a previously verified positive timestamp.
|
|
728
|
-
if (typeof stakedAt === 'number' && Number.isFinite(stakedAt) && stakedAt > 0) {
|
|
729
|
-
p.onChainStakedAtSec = stakedAt;
|
|
730
|
-
}
|
|
731
|
-
p.onChainStatsFetchedAt = Date.now();
|
|
732
|
-
peersWithCompleteStats.add(p);
|
|
725
|
+
stale.push({ peer: p, address });
|
|
733
726
|
}
|
|
734
727
|
catch {
|
|
735
|
-
//
|
|
736
|
-
// snapshot, or leave a newly discovered peer unenriched.
|
|
728
|
+
// Unresolvable seller address: leave the previous snapshot in place.
|
|
737
729
|
}
|
|
738
|
-
};
|
|
739
|
-
const workers = [];
|
|
740
|
-
for (let i = 0; i < Math.min(DISCOVERY_RPC_CONCURRENCY, queue.length); i++) {
|
|
741
|
-
workers.push((async () => {
|
|
742
|
-
for (;;) {
|
|
743
|
-
const next = queue.shift();
|
|
744
|
-
if (!next)
|
|
745
|
-
return;
|
|
746
|
-
await verifyOne(next);
|
|
747
|
-
}
|
|
748
|
-
})());
|
|
749
730
|
}
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
731
|
+
if (stale.length === 0) {
|
|
732
|
+
this._applyTrust(peers, peersWithCompleteStats);
|
|
733
|
+
return;
|
|
734
|
+
}
|
|
735
|
+
let signals;
|
|
736
|
+
try {
|
|
737
|
+
signals = await client.read(stale.map((entry) => entry.address));
|
|
738
|
+
}
|
|
739
|
+
catch (err) {
|
|
740
|
+
debugWarn(`[Node] On-chain trust signal read failed: ${err instanceof Error ? err.message : err}`);
|
|
741
|
+
this._applyTrust(peers, peersWithCompleteStats);
|
|
742
|
+
return;
|
|
743
|
+
}
|
|
744
|
+
for (const { peer: p, address } of stale) {
|
|
745
|
+
const read = signals.get(address);
|
|
746
|
+
// A peer without an agent id (or a failed batch entry) keeps its
|
|
747
|
+
// previous complete snapshot, or stays unenriched when newly discovered.
|
|
748
|
+
if (!read)
|
|
749
|
+
continue;
|
|
750
|
+
p.onChainAgentId = read.agentId;
|
|
751
|
+
if (read.channelCount !== undefined)
|
|
752
|
+
p.onChainChannelCount = read.channelCount;
|
|
753
|
+
if (read.ghostCount !== undefined)
|
|
754
|
+
p.onChainGhostCount = read.ghostCount;
|
|
755
|
+
if (read.totalVolumeUsdcMicros !== undefined)
|
|
756
|
+
p.onChainTotalVolumeUsdcMicros = read.totalVolumeUsdcMicros;
|
|
757
|
+
if (read.lastSettledAtSec !== undefined)
|
|
758
|
+
p.onChainLastSettledAtSec = read.lastSettledAtSec;
|
|
759
|
+
if (read.usageEpoch !== undefined) {
|
|
760
|
+
p.onChainUsageEpoch = read.usageEpoch;
|
|
761
|
+
p.onChainUsageShareBps = read.usageShareBps;
|
|
762
|
+
p.onChainUsageLastEpochUsdcMicros = read.usageLastEpochUsdcMicros;
|
|
763
|
+
}
|
|
764
|
+
if (read.poolStakeAnts !== undefined)
|
|
765
|
+
p.onChainPoolStakeAnts = read.poolStakeAnts;
|
|
766
|
+
if (read.poolPowerShareBps !== undefined)
|
|
767
|
+
p.onChainPoolPowerShareBps = read.poolPowerShareBps;
|
|
768
|
+
if (read.washFlagged !== undefined)
|
|
769
|
+
p.onChainWashFlagged = read.washFlagged;
|
|
770
|
+
if (read.washShareBps !== undefined)
|
|
771
|
+
p.onChainWashShareBps = read.washShareBps;
|
|
772
|
+
p.onChainStatsFetchedAt = Date.now();
|
|
773
|
+
peersWithCompleteStats.add(p);
|
|
774
|
+
}
|
|
775
|
+
this._applyTrust(peers, peersWithCompleteStats);
|
|
776
|
+
}
|
|
777
|
+
/** Recompute the trust score and the display-only sybil heuristic. */
|
|
778
|
+
_applyTrust(peers, peersToUpdate) {
|
|
754
779
|
if (peers.length === 0)
|
|
755
780
|
return;
|
|
756
781
|
const ctx = peers.length >= 2
|
|
@@ -759,16 +784,12 @@ export class AntseedNode extends EventEmitter {
|
|
|
759
784
|
for (const p of peers) {
|
|
760
785
|
if (peersToUpdate && !peersToUpdate.has(p))
|
|
761
786
|
continue;
|
|
762
|
-
|
|
763
|
-
if (trust === null)
|
|
764
|
-
continue;
|
|
765
|
-
p.onChainTrustScore = trust;
|
|
766
|
-
if (ctx) {
|
|
787
|
+
if (ctx && typeof p.onChainChannelCount === 'number') {
|
|
767
788
|
const sybil = computeOnChainSybilRisk(p, ctx);
|
|
768
789
|
p.onChainSybilRisk = sybil.risk;
|
|
769
790
|
p.onChainSybilFlags = sybil.flags;
|
|
770
791
|
}
|
|
771
|
-
|
|
792
|
+
applyTrust(p);
|
|
772
793
|
}
|
|
773
794
|
}
|
|
774
795
|
/**
|
|
@@ -1620,6 +1641,16 @@ export class AntseedNode extends EventEmitter {
|
|
|
1620
1641
|
});
|
|
1621
1642
|
debugLog(`[Node] StakingClient initialized (contract=${payments.stakingAddress.slice(0, 10)}...)`);
|
|
1622
1643
|
}
|
|
1644
|
+
if (this._channelsClient && payments.stakingAddress && payments.channelsAddress) {
|
|
1645
|
+
this._trustSignalsClient = new TrustSignalsClient(this._channelsClient.provider, {
|
|
1646
|
+
sellerRegistry: payments.stakingAddress,
|
|
1647
|
+
channels: payments.channelsAddress,
|
|
1648
|
+
...(payments.sellerPoolsAddress ? { sellerPools: payments.sellerPoolsAddress } : {}),
|
|
1649
|
+
...(payments.usageAccountingAddress ? { usageAccounting: payments.usageAccountingAddress } : {}),
|
|
1650
|
+
...(payments.washTradingRegistryAddress ? { washTradingRegistry: payments.washTradingRegistryAddress } : {}),
|
|
1651
|
+
});
|
|
1652
|
+
debugLog(`[Node] TrustSignalsClient initialized (pools=${Boolean(payments.sellerPoolsAddress)} usage=${Boolean(payments.usageAccountingAddress)} wash=${Boolean(payments.washTradingRegistryAddress)})`);
|
|
1653
|
+
}
|
|
1623
1654
|
// Initialize IdentityClient (ERC-8004 IdentityRegistry)
|
|
1624
1655
|
if (payments.rpcUrl && payments.identityRegistryAddress) {
|
|
1625
1656
|
this._identityClient = new IdentityClient({
|
|
@@ -1641,6 +1672,9 @@ export class AntseedNode extends EventEmitter {
|
|
|
1641
1672
|
dataDir: paymentsDir,
|
|
1642
1673
|
...(payments.minBudgetPerRequest ? { minBudgetPerRequest: payments.minBudgetPerRequest } : {}),
|
|
1643
1674
|
...(payments.minSettleDelta ? { minSettleDelta: payments.minSettleDelta } : {}),
|
|
1675
|
+
...(payments.serveWhileClosePending !== undefined
|
|
1676
|
+
? { serveWhileClosePending: payments.serveWhileClosePending }
|
|
1677
|
+
: {}),
|
|
1644
1678
|
};
|
|
1645
1679
|
this._sellerPaymentManager = new SellerPaymentManager(this._identity, sellerConfig, this._channelStore);
|
|
1646
1680
|
debugLog(`[Node] SellerPaymentManager initialized`);
|
|
@@ -1943,6 +1977,7 @@ export class AntseedNode extends EventEmitter {
|
|
|
1943
1977
|
return `${result.host}:${result.port}`;
|
|
1944
1978
|
}
|
|
1945
1979
|
_lookupResultToPeerInfo(result) {
|
|
1980
|
+
const displayName = sanitizePeerDisplayName(result.metadata.displayName);
|
|
1946
1981
|
const providers = result.metadata.providers.map((p) => p.provider);
|
|
1947
1982
|
const firstProvider = result.metadata.providers[0];
|
|
1948
1983
|
const providerPricingEntries = {};
|
|
@@ -2027,7 +2062,7 @@ export class AntseedNode extends EventEmitter {
|
|
|
2027
2062
|
const hasProviderServiceCapabilities = Object.keys(providerServiceCapabilityEntries).length > 0;
|
|
2028
2063
|
return {
|
|
2029
2064
|
peerId: result.metadata.peerId,
|
|
2030
|
-
displayName
|
|
2065
|
+
displayName,
|
|
2031
2066
|
// `metadata.timestamp` is signed by the seller and can reflect the
|
|
2032
2067
|
// seller's wall clock, not this buyer's. Freshness validation in
|
|
2033
2068
|
// PeerLookup already handles seller/buyer clock skew using the HTTP Date
|