@toon-protocol/connector 3.33.0 → 3.34.0
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/config/child-expander.d.ts +11 -0
- package/dist/config/child-expander.d.ts.map +1 -0
- package/dist/config/child-expander.js +131 -0
- package/dist/config/child-expander.js.map +1 -0
- package/dist/config/config-loader.d.ts +7 -0
- package/dist/config/config-loader.d.ts.map +1 -1
- package/dist/config/config-loader.js +280 -4
- package/dist/config/config-loader.js.map +1 -1
- package/dist/config/types.d.ts +39 -0
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js.map +1 -1
- package/dist/core/connector-node.d.ts +14 -0
- package/dist/core/connector-node.d.ts.map +1 -1
- package/dist/core/connector-node.js +173 -3
- package/dist/core/connector-node.js.map +1 -1
- package/dist/discovery/bootstrap-cache.d.ts +20 -0
- package/dist/discovery/bootstrap-cache.d.ts.map +1 -0
- package/dist/discovery/bootstrap-cache.js +69 -0
- package/dist/discovery/bootstrap-cache.js.map +1 -0
- package/dist/discovery/bootstrap-manifest.d.ts +23 -0
- package/dist/discovery/bootstrap-manifest.d.ts.map +1 -0
- package/dist/discovery/bootstrap-manifest.js +119 -0
- package/dist/discovery/bootstrap-manifest.js.map +1 -0
- package/dist/discovery/bootstrap-seeds.d.ts +7 -0
- package/dist/discovery/bootstrap-seeds.d.ts.map +1 -0
- package/dist/discovery/bootstrap-seeds.js +10 -0
- package/dist/discovery/bootstrap-seeds.js.map +1 -0
- package/dist/discovery/bootstrap-service.d.ts +64 -0
- package/dist/discovery/bootstrap-service.d.ts.map +1 -0
- package/dist/discovery/bootstrap-service.js +320 -0
- package/dist/discovery/bootstrap-service.js.map +1 -0
- package/dist/discovery/discovered-node-registry.d.ts +46 -0
- package/dist/discovery/discovered-node-registry.d.ts.map +1 -0
- package/dist/discovery/discovered-node-registry.js +185 -0
- package/dist/discovery/discovered-node-registry.js.map +1 -0
- package/dist/discovery/ilp-peer-info-event.d.ts +20 -0
- package/dist/discovery/ilp-peer-info-event.d.ts.map +1 -1
- package/dist/discovery/ilp-peer-info-event.js +76 -1
- package/dist/discovery/ilp-peer-info-event.js.map +1 -1
- package/dist/discovery/index.d.ts +18 -3
- package/dist/discovery/index.d.ts.map +1 -1
- package/dist/discovery/index.js +39 -1
- package/dist/discovery/index.js.map +1 -1
- package/dist/discovery/nostr-relay-client.d.ts +13 -0
- package/dist/discovery/nostr-relay-client.d.ts.map +1 -0
- package/dist/discovery/nostr-relay-client.js +17 -0
- package/dist/discovery/nostr-relay-client.js.map +1 -0
- package/dist/discovery/relay-probe.d.ts +5 -0
- package/dist/discovery/relay-probe.d.ts.map +1 -0
- package/dist/discovery/relay-probe.js +85 -0
- package/dist/discovery/relay-probe.js.map +1 -0
- package/dist/discovery/route-learning-service.d.ts +55 -0
- package/dist/discovery/route-learning-service.d.ts.map +1 -0
- package/dist/discovery/route-learning-service.js +238 -0
- package/dist/discovery/route-learning-service.js.map +1 -0
- package/dist/discovery/self-announce-builder.d.ts +8 -3
- package/dist/discovery/self-announce-builder.d.ts.map +1 -1
- package/dist/discovery/self-announce-builder.js +124 -5
- package/dist/discovery/self-announce-builder.js.map +1 -1
- package/dist/http/admin-api-inventory.d.ts.map +1 -1
- package/dist/http/admin-api-inventory.js +22 -0
- package/dist/http/admin-api-inventory.js.map +1 -1
- package/dist/http/admin-api.d.ts +3 -0
- package/dist/http/admin-api.d.ts.map +1 -1
- package/dist/http/admin-api.js +24 -1
- package/dist/http/admin-api.js.map +1 -1
- package/dist/http/admin-server.d.ts +2 -0
- package/dist/http/admin-server.d.ts.map +1 -1
- package/dist/http/admin-server.js +4 -1
- package/dist/http/admin-server.js.map +1 -1
- package/dist/lib.d.ts +25 -1
- package/dist/lib.d.ts.map +1 -1
- package/dist/lib.js +46 -2
- package/dist/lib.js.map +1 -1
- package/dist/observability/metrics-registry.d.ts +7 -0
- package/dist/observability/metrics-registry.d.ts.map +1 -1
- package/dist/observability/metrics-registry.js +24 -0
- package/dist/observability/metrics-registry.js.map +1 -1
- package/dist/routing/link-state-db.d.ts +27 -0
- package/dist/routing/link-state-db.d.ts.map +1 -0
- package/dist/routing/link-state-db.js +81 -0
- package/dist/routing/link-state-db.js.map +1 -0
- package/dist/routing/path-computation.d.ts +13 -0
- package/dist/routing/path-computation.d.ts.map +1 -0
- package/dist/routing/path-computation.js +97 -0
- package/dist/routing/path-computation.js.map +1 -0
- package/dist/routing/routing-table.d.ts +5 -0
- package/dist/routing/routing-table.d.ts.map +1 -1
- package/dist/routing/routing-table.js +35 -0
- package/dist/routing/routing-table.js.map +1 -1
- package/package.json +1 -1
package/dist/config/types.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { ProviderConfig } from '../settlement/provider/payment-channel-provider';
|
|
2
|
+
import type { IlpCapabilityEntry } from '../discovery/ilp-peer-info-event';
|
|
2
3
|
export type ChainProviderConfigEntry = ProviderConfig & {
|
|
3
4
|
chainId: string;
|
|
4
5
|
};
|
|
@@ -28,6 +29,14 @@ export interface RouteTermination {
|
|
|
28
29
|
asset?: Partial<Record<TerminationChain, string>>;
|
|
29
30
|
requireRequestBinding?: boolean;
|
|
30
31
|
}
|
|
32
|
+
export interface ChildConfig {
|
|
33
|
+
name: string;
|
|
34
|
+
upstream?: string;
|
|
35
|
+
peerId?: string;
|
|
36
|
+
price?: string;
|
|
37
|
+
capability?: string;
|
|
38
|
+
schema?: string;
|
|
39
|
+
}
|
|
31
40
|
export interface RouteConfig extends Partial<RouteTermination> {
|
|
32
41
|
prefix: string;
|
|
33
42
|
nextHop: string;
|
|
@@ -43,6 +52,8 @@ export interface ConnectorConfig {
|
|
|
43
52
|
logLevel?: 'debug' | 'info' | 'warn' | 'error';
|
|
44
53
|
peers: PeerConfig[];
|
|
45
54
|
routes: RouteConfig[];
|
|
55
|
+
apex?: string;
|
|
56
|
+
children?: ChildConfig[];
|
|
46
57
|
settlement?: SettlementConfig;
|
|
47
58
|
chainProviders?: ChainProviderConfigEntry[];
|
|
48
59
|
environment: Environment;
|
|
@@ -59,6 +70,32 @@ export interface ConnectorConfig {
|
|
|
59
70
|
btpAuthToken?: string;
|
|
60
71
|
localDelivery?: LocalDeliveryConfig;
|
|
61
72
|
selfAnnounce?: SelfAnnounceConfig;
|
|
73
|
+
routeLearning?: RouteLearningConfig;
|
|
74
|
+
bootstrap?: BootstrapConfig;
|
|
75
|
+
peeringPolicy?: PeeringPolicyConfig;
|
|
76
|
+
}
|
|
77
|
+
export interface PeeringPolicyConfig {
|
|
78
|
+
maxFundedChannels?: number;
|
|
79
|
+
autoRegister?: boolean;
|
|
80
|
+
}
|
|
81
|
+
export interface RouteLearningConfig {
|
|
82
|
+
enabled: boolean;
|
|
83
|
+
relayUrls?: string[];
|
|
84
|
+
refreshIntervalSecs?: number;
|
|
85
|
+
maxRoutes?: number;
|
|
86
|
+
}
|
|
87
|
+
export interface BootstrapSeedEntry {
|
|
88
|
+
relayUrl: string;
|
|
89
|
+
pubkey?: string;
|
|
90
|
+
}
|
|
91
|
+
export interface BootstrapConfig {
|
|
92
|
+
enabled: boolean;
|
|
93
|
+
registryUrl?: string;
|
|
94
|
+
curatorPubkey?: string;
|
|
95
|
+
seeds?: BootstrapSeedEntry[];
|
|
96
|
+
cachePath?: string;
|
|
97
|
+
sampleSize?: number;
|
|
98
|
+
refreshIntervalSecs?: number;
|
|
62
99
|
}
|
|
63
100
|
export interface SelfAnnounceConfig {
|
|
64
101
|
enabled: boolean;
|
|
@@ -70,10 +107,12 @@ export interface SelfAnnounceConfig {
|
|
|
70
107
|
relayUrl?: string;
|
|
71
108
|
assetCode?: string;
|
|
72
109
|
assetScale?: number;
|
|
110
|
+
aggregate?: boolean;
|
|
73
111
|
routes?: {
|
|
74
112
|
publish?: string;
|
|
75
113
|
store?: string;
|
|
76
114
|
};
|
|
115
|
+
capabilities?: IlpCapabilityEntry[];
|
|
77
116
|
}
|
|
78
117
|
export interface CreditLimitConfig {
|
|
79
118
|
defaultLimit?: bigint;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAwCA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iDAAiD,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"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"}
|
package/dist/config/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,8 @@ import { PaymentChannelSDK } from '../settlement/payment-channel-sdk';
|
|
|
11
11
|
import { ChannelManager } from '../settlement/channel-manager';
|
|
12
12
|
import { AccountManager } from '../settlement/account-manager';
|
|
13
13
|
import { ChainProviderRegistry } from '../settlement/provider/chain-provider-registry';
|
|
14
|
+
import { type DiscoveredNode } from '../discovery/discovered-node-registry';
|
|
15
|
+
import { BootstrapService } from '../discovery/bootstrap-service';
|
|
14
16
|
export declare class ConnectorNode implements HealthStatusProvider {
|
|
15
17
|
private readonly _config;
|
|
16
18
|
private readonly _logger;
|
|
@@ -49,6 +51,10 @@ export declare class ConnectorNode implements HealthStatusProvider {
|
|
|
49
51
|
private readonly _mnemonicOverride?;
|
|
50
52
|
private readonly _mnemonicAccountIndex?;
|
|
51
53
|
private _selfAnnounceService;
|
|
54
|
+
private _routeLearningService;
|
|
55
|
+
private _discoveredNodeRegistry;
|
|
56
|
+
private readonly _runtimePeerUrls;
|
|
57
|
+
private _bootstrapService;
|
|
52
58
|
get defaultSettlementTokenId(): string;
|
|
53
59
|
constructor(config: ConnectorConfig | string, logger: Logger, opts?: {
|
|
54
60
|
transportHealthIntervalMs?: number;
|
|
@@ -64,7 +70,9 @@ export declare class ConnectorNode implements HealthStatusProvider {
|
|
|
64
70
|
private _decodeExecutionCondition;
|
|
65
71
|
private _applyMnemonicSigningMode;
|
|
66
72
|
private _resolveNostrSecretKey;
|
|
73
|
+
private _startBootstrap;
|
|
67
74
|
private _startSelfAnnounce;
|
|
75
|
+
private _startRouteLearning;
|
|
68
76
|
private _resolveAnnounceTokenNetworks;
|
|
69
77
|
private _publishAnnouncement;
|
|
70
78
|
start(): Promise<void>;
|
|
@@ -74,6 +82,7 @@ export declare class ConnectorNode implements HealthStatusProvider {
|
|
|
74
82
|
get routeTerminationRegistry(): RouteTerminationRegistry;
|
|
75
83
|
get btpClientManager(): BTPClientManager;
|
|
76
84
|
get transportProvider(): TransportProvider | null;
|
|
85
|
+
get bootstrapService(): BootstrapService | null;
|
|
77
86
|
private _createTransportProvider;
|
|
78
87
|
get paymentChannelSDK(): PaymentChannelSDK | null;
|
|
79
88
|
get chainRegistry(): ChainProviderRegistry | null;
|
|
@@ -85,8 +94,13 @@ export declare class ConnectorNode implements HealthStatusProvider {
|
|
|
85
94
|
registerPeer(config: PeerRegistrationRequest): Promise<PeerInfo>;
|
|
86
95
|
removePeer(peerId: string, removeRoutes?: boolean): Promise<RemovePeerResult>;
|
|
87
96
|
listPeers(): PeerInfo[];
|
|
97
|
+
getDiscoveredNodes(): DiscoveredNode[];
|
|
98
|
+
private _getFundedPeerRefs;
|
|
99
|
+
private _countFundedChannels;
|
|
100
|
+
private _checkFundedChannelCap;
|
|
88
101
|
getBalance(peerId: string, tokenId?: string): Promise<PeerAccountBalance>;
|
|
89
102
|
listRoutes(): RouteInfo[];
|
|
103
|
+
private _selfPrefixesWithApex;
|
|
90
104
|
addRoute(route: RouteInfo): void;
|
|
91
105
|
removeRoute(prefix: string): void;
|
|
92
106
|
private _openRegistryStore;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connector-node.d.ts","sourceRoot":"","sources":["../../src/core/connector-node.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAMxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAI7D,OAAO,EACL,iBAAiB,EAIjB,gBAAgB,EAChB,eAAe,EAGhB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,eAAe,EAEf,oBAAoB,EACpB,gBAAgB,EAChB,uBAAuB,EACvB,QAAQ,EACR,kBAAkB,EAClB,SAAS,EACT,gBAAgB,EAChB,cAAc,EAMf,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAErE,OAAO,EAAE,iBAAiB,EAA2B,MAAM,cAAc,CAAC;AAE1E,OAAO,EAAE,cAAc,EAA+B,MAAM,mBAAmB,CAAC;AAiBhF,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAW/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,gDAAgD,CAAC;
|
|
1
|
+
{"version":3,"file":"connector-node.d.ts","sourceRoot":"","sources":["../../src/core/connector-node.ts"],"names":[],"mappings":"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"}
|
|
@@ -47,6 +47,14 @@ const nip59_claim_wrapper_1 = require("../settlement/privacy/nip59-claim-wrapper
|
|
|
47
47
|
const mnemonic_keys_1 = require("../wallet/mnemonic-keys");
|
|
48
48
|
const self_announce_service_1 = require("../discovery/self-announce-service");
|
|
49
49
|
const self_announce_publish_1 = require("../discovery/self-announce-publish");
|
|
50
|
+
const route_learning_service_1 = require("../discovery/route-learning-service");
|
|
51
|
+
const discovered_node_registry_1 = require("../discovery/discovered-node-registry");
|
|
52
|
+
const self_announce_builder_1 = require("../discovery/self-announce-builder");
|
|
53
|
+
const nostr_relay_client_1 = require("../discovery/nostr-relay-client");
|
|
54
|
+
const nostr_tools_1 = require("nostr-tools");
|
|
55
|
+
const bootstrap_service_1 = require("../discovery/bootstrap-service");
|
|
56
|
+
const bootstrap_cache_1 = require("../discovery/bootstrap-cache");
|
|
57
|
+
const relay_probe_1 = require("../discovery/relay-probe");
|
|
50
58
|
const utils_1 = require("@noble/hashes/utils");
|
|
51
59
|
const SELF_ANNOUNCE_PREPARE_TIMEOUT_MS = 30_000;
|
|
52
60
|
const dns_1 = require("dns");
|
|
@@ -89,6 +97,10 @@ class ConnectorNode {
|
|
|
89
97
|
_mnemonicOverride;
|
|
90
98
|
_mnemonicAccountIndex;
|
|
91
99
|
_selfAnnounceService = null;
|
|
100
|
+
_routeLearningService = null;
|
|
101
|
+
_discoveredNodeRegistry = null;
|
|
102
|
+
_runtimePeerUrls = new Map();
|
|
103
|
+
_bootstrapService = null;
|
|
92
104
|
get defaultSettlementTokenId() {
|
|
93
105
|
return this._defaultSettlementTokenId;
|
|
94
106
|
}
|
|
@@ -358,6 +370,37 @@ class ConnectorNode {
|
|
|
358
370
|
}
|
|
359
371
|
return null;
|
|
360
372
|
}
|
|
373
|
+
_startBootstrap() {
|
|
374
|
+
const bootstrap = this._config.bootstrap;
|
|
375
|
+
if (!bootstrap?.enabled) {
|
|
376
|
+
return;
|
|
377
|
+
}
|
|
378
|
+
try {
|
|
379
|
+
const cachePath = bootstrap.cachePath ?? `./data/bootstrap-cache-${this._config.nodeId}.json`;
|
|
380
|
+
const service = new bootstrap_service_1.BootstrapService({
|
|
381
|
+
config: bootstrap,
|
|
382
|
+
relayProbe: (0, relay_probe_1.createKind10032RelayProbe)(this._logger),
|
|
383
|
+
cacheStore: new bootstrap_cache_1.FileBootstrapCacheStore(cachePath, this._logger),
|
|
384
|
+
logger: this._logger,
|
|
385
|
+
});
|
|
386
|
+
service.onRelaysResolved((relayUrls) => {
|
|
387
|
+
this._logger.info({
|
|
388
|
+
event: 'bootstrap_relays_available',
|
|
389
|
+
relayUrls,
|
|
390
|
+
selfAnnounceHasRelayHint: Boolean(this._config.selfAnnounce?.relayUrl),
|
|
391
|
+
}, 'Bootstrap discovered verified relays');
|
|
392
|
+
});
|
|
393
|
+
service.start();
|
|
394
|
+
this._bootstrapService = service;
|
|
395
|
+
}
|
|
396
|
+
catch (err) {
|
|
397
|
+
this._bootstrapService = null;
|
|
398
|
+
this._logger.warn({
|
|
399
|
+
event: 'bootstrap_start_failed',
|
|
400
|
+
err: err instanceof Error ? err.message : String(err),
|
|
401
|
+
}, 'Failed to start cold-start bootstrap service; continuing without it');
|
|
402
|
+
}
|
|
403
|
+
}
|
|
361
404
|
_startSelfAnnounce() {
|
|
362
405
|
const selfAnnounce = this._config.selfAnnounce;
|
|
363
406
|
if (!selfAnnounce?.enabled) {
|
|
@@ -387,6 +430,41 @@ class ConnectorNode {
|
|
|
387
430
|
}, 'Failed to start self-announce service; continuing without it');
|
|
388
431
|
}
|
|
389
432
|
}
|
|
433
|
+
_startRouteLearning() {
|
|
434
|
+
const routeLearning = this._config.routeLearning;
|
|
435
|
+
if (!routeLearning?.enabled) {
|
|
436
|
+
return;
|
|
437
|
+
}
|
|
438
|
+
const secretKey = this._resolveNostrSecretKey();
|
|
439
|
+
const ownPubkey = secretKey ? (0, nostr_tools_1.getPublicKey)(secretKey) : undefined;
|
|
440
|
+
try {
|
|
441
|
+
this._discoveredNodeRegistry = new discovered_node_registry_1.DiscoveredNodeRegistry({
|
|
442
|
+
getFundedPeers: () => this._getFundedPeerRefs(),
|
|
443
|
+
...(ownPubkey ? { ownPubkey } : {}),
|
|
444
|
+
logger: this._logger,
|
|
445
|
+
});
|
|
446
|
+
this._ilpMetrics.setDiscoveredNodeCountsProvider(() => this._discoveredNodeRegistry?.counts() ?? { discovered: 0, funded: 0 });
|
|
447
|
+
this._routeLearningService = new route_learning_service_1.RouteLearningService({
|
|
448
|
+
config: this._config,
|
|
449
|
+
routeLearning,
|
|
450
|
+
routingTable: this._routingTable,
|
|
451
|
+
relayClient: (0, nostr_relay_client_1.createNostrRelayClient)(),
|
|
452
|
+
getDirectPeerIds: () => this._btpClientManager.getPeerIds(),
|
|
453
|
+
...(ownPubkey ? { ownPubkey } : {}),
|
|
454
|
+
discoveredNodes: this._discoveredNodeRegistry,
|
|
455
|
+
logger: this._logger,
|
|
456
|
+
});
|
|
457
|
+
this._routeLearningService.start();
|
|
458
|
+
}
|
|
459
|
+
catch (err) {
|
|
460
|
+
this._routeLearningService = null;
|
|
461
|
+
this._discoveredNodeRegistry = null;
|
|
462
|
+
this._logger.warn({
|
|
463
|
+
event: 'route_learning_start_failed',
|
|
464
|
+
err: err instanceof Error ? err.message : String(err),
|
|
465
|
+
}, 'Failed to start route-learning service; continuing without it');
|
|
466
|
+
}
|
|
467
|
+
}
|
|
390
468
|
async _resolveAnnounceTokenNetworks() {
|
|
391
469
|
const out = {};
|
|
392
470
|
const providers = this._chainRegistry?.getAllProviders() ?? [];
|
|
@@ -980,6 +1058,8 @@ class ConnectorNode {
|
|
|
980
1058
|
httpPeerEgress: this._httpPeerClientManager,
|
|
981
1059
|
setPeerProtocol: (peerId, protocol) => this._packetHandler.setPeerProtocol(peerId, protocol),
|
|
982
1060
|
routeTerminationRegistry: this._routeTerminationRegistry,
|
|
1061
|
+
getDiscoveredNodes: () => this.getDiscoveredNodes(),
|
|
1062
|
+
checkFundedChannelCap: (peerId) => this._checkFundedChannelCap(peerId),
|
|
983
1063
|
});
|
|
984
1064
|
await this._adminServer.start();
|
|
985
1065
|
this._logger.info({
|
|
@@ -1052,7 +1132,9 @@ class ConnectorNode {
|
|
|
1052
1132
|
await Promise.allSettled(channelCreationPromises);
|
|
1053
1133
|
this._logger.info({ event: 'payment_channels_initialized' }, 'Payment channel creation completed');
|
|
1054
1134
|
}
|
|
1135
|
+
this._startBootstrap();
|
|
1055
1136
|
this._startSelfAnnounce();
|
|
1137
|
+
this._startRouteLearning();
|
|
1056
1138
|
this._updateHealthStatus();
|
|
1057
1139
|
this._logger.info({
|
|
1058
1140
|
event: 'connector_ready',
|
|
@@ -1105,6 +1187,15 @@ class ConnectorNode {
|
|
|
1105
1187
|
this._selfAnnounceService.stop();
|
|
1106
1188
|
this._selfAnnounceService = null;
|
|
1107
1189
|
}
|
|
1190
|
+
if (this._routeLearningService) {
|
|
1191
|
+
this._routeLearningService.stop();
|
|
1192
|
+
this._routeLearningService = null;
|
|
1193
|
+
}
|
|
1194
|
+
this._discoveredNodeRegistry = null;
|
|
1195
|
+
if (this._bootstrapService) {
|
|
1196
|
+
this._bootstrapService.stop();
|
|
1197
|
+
this._bootstrapService = null;
|
|
1198
|
+
}
|
|
1108
1199
|
if (this._settlementMonitor) {
|
|
1109
1200
|
await this._settlementMonitor.stop();
|
|
1110
1201
|
this._logger.info({ event: 'settlement_monitor_stopped' }, 'Settlement monitor stopped');
|
|
@@ -1224,6 +1315,9 @@ class ConnectorNode {
|
|
|
1224
1315
|
get transportProvider() {
|
|
1225
1316
|
return this._transportProviderReady ? this._transportProvider : null;
|
|
1226
1317
|
}
|
|
1318
|
+
get bootstrapService() {
|
|
1319
|
+
return this._bootstrapService;
|
|
1320
|
+
}
|
|
1227
1321
|
_createTransportProvider(_cfg) {
|
|
1228
1322
|
const externalUrl = `ws://localhost:${this._config.btpServerPort}`;
|
|
1229
1323
|
this._logger.debug({ event: 'direct_transport_external_url_synthesized', externalUrl }, 'DirectTransportProvider externalUrl synthesized from btpServerPort (local placeholder)');
|
|
@@ -1395,9 +1489,19 @@ class ConnectorNode {
|
|
|
1395
1489
|
throw new Error(settlementError);
|
|
1396
1490
|
}
|
|
1397
1491
|
}
|
|
1398
|
-
|
|
1492
|
+
if (config.settlement) {
|
|
1493
|
+
const capError = this._checkFundedChannelCap(config.id);
|
|
1494
|
+
if (capError) {
|
|
1495
|
+
throw new Error(capError);
|
|
1496
|
+
}
|
|
1497
|
+
}
|
|
1498
|
+
const childBinding = this._config.children?.find((c) => c.peerId === config.id);
|
|
1499
|
+
if (childBinding && config.relation !== undefined && config.relation !== 'child') {
|
|
1500
|
+
throw new Error(`Peer '${config.id}' is bound as child '${childBinding.name}' in config; relation must be 'child' (got '${config.relation}')`);
|
|
1501
|
+
}
|
|
1502
|
+
const localPrefixes = this._selfPrefixesWithApex();
|
|
1399
1503
|
let effectiveRoutes = config.routes;
|
|
1400
|
-
if (!effectiveRoutes || effectiveRoutes.length === 0) {
|
|
1504
|
+
if ((!effectiveRoutes || effectiveRoutes.length === 0) && !childBinding) {
|
|
1401
1505
|
const autoRoute = (0, relation_route_validator_1.deriveDefaultChildRoute)(config.relation, localPrefixes, config.id);
|
|
1402
1506
|
if (autoRoute) {
|
|
1403
1507
|
effectiveRoutes = [autoRoute];
|
|
@@ -1436,6 +1540,7 @@ class ConnectorNode {
|
|
|
1436
1540
|
transport: config.transport,
|
|
1437
1541
|
};
|
|
1438
1542
|
await this._btpClientManager.addPeer(peer);
|
|
1543
|
+
this._runtimePeerUrls.set(config.id, config.url);
|
|
1439
1544
|
this._ilpMetrics.registerPeer(config.id);
|
|
1440
1545
|
this._logger.info({
|
|
1441
1546
|
event: 'peer_registered',
|
|
@@ -1508,6 +1613,7 @@ class ConnectorNode {
|
|
|
1508
1613
|
throw new Error(`Peer not found: ${peerId}`);
|
|
1509
1614
|
}
|
|
1510
1615
|
await this._btpClientManager.removePeer(peerId);
|
|
1616
|
+
this._runtimePeerUrls.delete(peerId);
|
|
1511
1617
|
this._ilpMetrics.unregisterPeer(peerId);
|
|
1512
1618
|
this._logger.info({ event: 'peer_removed', peerId }, `Removed peer: ${peerId}`);
|
|
1513
1619
|
if (this._settlementPeers.delete(peerId)) {
|
|
@@ -1552,6 +1658,62 @@ class ConnectorNode {
|
|
|
1552
1658
|
return peerInfo;
|
|
1553
1659
|
});
|
|
1554
1660
|
}
|
|
1661
|
+
getDiscoveredNodes() {
|
|
1662
|
+
return this._discoveredNodeRegistry ? this._discoveredNodeRegistry.list() : [];
|
|
1663
|
+
}
|
|
1664
|
+
_getFundedPeerRefs() {
|
|
1665
|
+
const refsById = new Map();
|
|
1666
|
+
for (const peerId of this._btpClientManager.getPeerIds()) {
|
|
1667
|
+
refsById.set(peerId, { peerId });
|
|
1668
|
+
}
|
|
1669
|
+
for (const peerId of this._httpPeerClientManager.getPeerIds()) {
|
|
1670
|
+
if (!refsById.has(peerId))
|
|
1671
|
+
refsById.set(peerId, { peerId });
|
|
1672
|
+
}
|
|
1673
|
+
for (const peer of this._config.peers) {
|
|
1674
|
+
const ref = refsById.get(peer.id);
|
|
1675
|
+
if (!ref)
|
|
1676
|
+
continue;
|
|
1677
|
+
const nostrPubkey = (0, self_announce_builder_1.nip59KeyToNostrPubkey)(peer.nip59PublicKey);
|
|
1678
|
+
if (nostrPubkey)
|
|
1679
|
+
ref.nostrPubkey = nostrPubkey;
|
|
1680
|
+
if (peer.url)
|
|
1681
|
+
ref.btpUrl = peer.url;
|
|
1682
|
+
}
|
|
1683
|
+
for (const [peerId, url] of this._runtimePeerUrls) {
|
|
1684
|
+
const ref = refsById.get(peerId);
|
|
1685
|
+
if (ref && ref.btpUrl === undefined)
|
|
1686
|
+
ref.btpUrl = url;
|
|
1687
|
+
}
|
|
1688
|
+
return Array.from(refsById.values());
|
|
1689
|
+
}
|
|
1690
|
+
_countFundedChannels() {
|
|
1691
|
+
const liveIds = new Set([
|
|
1692
|
+
...this._btpClientManager.getPeerIds(),
|
|
1693
|
+
...this._httpPeerClientManager.getPeerIds(),
|
|
1694
|
+
]);
|
|
1695
|
+
let count = 0;
|
|
1696
|
+
for (const peerId of this._settlementPeers.keys()) {
|
|
1697
|
+
if (liveIds.has(peerId))
|
|
1698
|
+
count++;
|
|
1699
|
+
}
|
|
1700
|
+
return count;
|
|
1701
|
+
}
|
|
1702
|
+
_checkFundedChannelCap(peerId) {
|
|
1703
|
+
const maxFundedChannels = this._config.peeringPolicy?.maxFundedChannels;
|
|
1704
|
+
if (maxFundedChannels === undefined)
|
|
1705
|
+
return null;
|
|
1706
|
+
if (this._settlementPeers.has(peerId))
|
|
1707
|
+
return null;
|
|
1708
|
+
const funded = this._countFundedChannels();
|
|
1709
|
+
if (funded < maxFundedChannels)
|
|
1710
|
+
return null;
|
|
1711
|
+
return (`Funded-channel cap reached: ${funded}/${maxFundedChannels} funded channels in use ` +
|
|
1712
|
+
`(peeringPolicy.maxFundedChannels). Registering '${peerId}' with settlement config would ` +
|
|
1713
|
+
`open another funded channel — remove a funded peer first (DELETE /admin/peers/:peerId) ` +
|
|
1714
|
+
`or raise the cap. Discovered nodes stay reachable through learned multi-hop routes ` +
|
|
1715
|
+
`without a funded channel.`);
|
|
1716
|
+
}
|
|
1555
1717
|
async getBalance(peerId, tokenId = this._defaultSettlementTokenId) {
|
|
1556
1718
|
if (!this._accountManager) {
|
|
1557
1719
|
throw new Error('Account management not enabled');
|
|
@@ -1577,6 +1739,14 @@ class ConnectorNode {
|
|
|
1577
1739
|
priority: r.priority ?? 0,
|
|
1578
1740
|
}));
|
|
1579
1741
|
}
|
|
1742
|
+
_selfPrefixesWithApex() {
|
|
1743
|
+
const localPrefixes = (0, relation_route_validator_1.deriveLocalPrefixes)(this._routingTable.getAllRoutes(), this._config.nodeId);
|
|
1744
|
+
const apex = this._config.apex;
|
|
1745
|
+
if (apex !== undefined && !localPrefixes.includes(apex)) {
|
|
1746
|
+
localPrefixes.push(apex);
|
|
1747
|
+
}
|
|
1748
|
+
return localPrefixes;
|
|
1749
|
+
}
|
|
1580
1750
|
addRoute(route) {
|
|
1581
1751
|
if (!(0, shared_1.isValidILPAddress)(route.prefix)) {
|
|
1582
1752
|
throw new Error(`Invalid ILP address prefix: ${route.prefix}`);
|
|
@@ -1589,7 +1759,7 @@ class ConnectorNode {
|
|
|
1589
1759
|
this._logger.warn({ event: 'route_nextHop_unknown', prefix: route.prefix, nextHop: route.nextHop }, `Adding route with unknown nextHop peer: ${route.nextHop}`);
|
|
1590
1760
|
}
|
|
1591
1761
|
const nextHopRelation = this._packetHandler.getPeerRelation(route.nextHop);
|
|
1592
|
-
const localPrefixes =
|
|
1762
|
+
const localPrefixes = this._selfPrefixesWithApex();
|
|
1593
1763
|
const relationValidation = (0, relation_route_validator_1.validateRelationRoute)(nextHopRelation, localPrefixes, [
|
|
1594
1764
|
route.prefix,
|
|
1595
1765
|
]);
|