@olane/o-node 0.7.12-alpha.16 → 0.7.12-alpha.18
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.
|
@@ -185,7 +185,7 @@ export class oReconnectionManager extends oObject {
|
|
|
185
185
|
this.logger.info(`Parent discovery attempt ${attempt} (elapsed: ${elapsedMinutes}m)`);
|
|
186
186
|
try {
|
|
187
187
|
// Query registry for parent by its known address
|
|
188
|
-
const response = await this.node.use(
|
|
188
|
+
const response = await this.node.use(oAddress.registry(), {
|
|
189
189
|
method: 'find_available_parent',
|
|
190
190
|
params: {
|
|
191
191
|
parentAddress: this.node.config.parent?.toString(),
|
package/dist/src/o-node.d.ts
CHANGED
|
@@ -45,7 +45,10 @@ export declare class oNode extends oToolBase {
|
|
|
45
45
|
configure(): Promise<Libp2pConfig>;
|
|
46
46
|
protected createNode(): Promise<Libp2p>;
|
|
47
47
|
connect(nextHopAddress: oNodeAddress, targetAddress: oNodeAddress): Promise<oNodeConnection>;
|
|
48
|
-
|
|
48
|
+
initConnectionManager(): Promise<void>;
|
|
49
|
+
initReconnectionManager(): Promise<void>;
|
|
50
|
+
hookInitializeFinished(): Promise<void>;
|
|
51
|
+
hookStartFinished(): Promise<void>;
|
|
49
52
|
initialize(): Promise<void>;
|
|
50
53
|
/**
|
|
51
54
|
* Override use() to wrap leader/registry requests with retry logic
|
package/dist/src/o-node.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"o-node.d.ts","sourceRoot":"","sources":["../../src/o-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,MAAM,EACN,YAAY,EACb,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAIL,QAAQ,EACR,QAAQ,EAER,oBAAoB,EACrB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,2CAA2C,CAAC;AAGnF,OAAO,EAAmB,SAAS,EAAE,MAAM,eAAe,CAAC;AAI3D,OAAO,EAAE,2BAA2B,EAAE,MAAM,8CAA8C,CAAC;AAC3F,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAEzE,qBAAa,KAAM,SAAQ,SAAS;IAC3B,MAAM,EAAG,MAAM,CAAC;IAChB,OAAO,EAAG,MAAM,CAAC;IACjB,OAAO,EAAG,YAAY,CAAC;IACvB,MAAM,EAAE,WAAW,CAAC;IACpB,iBAAiB,EAAG,sBAAsB,CAAC;IAC3C,gBAAgB,EAAG,qBAAqB,CAAC;IACzC,0BAA0B,CAAC,EAAE,2BAA2B,CAAC;IACzD,mBAAmB,CAAC,EAAE,oBAAoB,CAAC;IAC3C,oBAAoB,EAAG,oBAAoB,CAAC;IACnD,SAAS,CAAC,WAAW,EAAE,OAAO,CAAS;gBAE3B,MAAM,EAAE,WAAW;IAK/B,IAAI,MAAM,IAAI,YAAY,GAAG,IAAI,CAEhC;IAED,IAAI,aAAa,IAAI,YAAY,CAKhC;IAED,IAAI,YAAY,IAAI,MAAM,GAAG,IAAI,CAOhC;IAED,mBAAmB,IAAI,GAAG,EAAE;IAItB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IASvC,SAAS,CAAC,yBAAyB,IAAI,oBAAoB;IAQ3D,IAAI,aAAa,IAAI,YAAY,CAEhC;IAED,IAAI,gBAAgB,IAAI,cAAc,EAAE,CAEvC;IAED,IAAI,UAAU,IAAI,cAAc,EAAE,CAIjC;IAEK,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAsD3B,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"o-node.d.ts","sourceRoot":"","sources":["../../src/o-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,MAAM,EACN,YAAY,EACb,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAIL,QAAQ,EACR,QAAQ,EAER,oBAAoB,EACrB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,2CAA2C,CAAC;AAGnF,OAAO,EAAmB,SAAS,EAAE,MAAM,eAAe,CAAC;AAI3D,OAAO,EAAE,2BAA2B,EAAE,MAAM,8CAA8C,CAAC;AAC3F,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAEzE,qBAAa,KAAM,SAAQ,SAAS;IAC3B,MAAM,EAAG,MAAM,CAAC;IAChB,OAAO,EAAG,MAAM,CAAC;IACjB,OAAO,EAAG,YAAY,CAAC;IACvB,MAAM,EAAE,WAAW,CAAC;IACpB,iBAAiB,EAAG,sBAAsB,CAAC;IAC3C,gBAAgB,EAAG,qBAAqB,CAAC;IACzC,0BAA0B,CAAC,EAAE,2BAA2B,CAAC;IACzD,mBAAmB,CAAC,EAAE,oBAAoB,CAAC;IAC3C,oBAAoB,EAAG,oBAAoB,CAAC;IACnD,SAAS,CAAC,WAAW,EAAE,OAAO,CAAS;gBAE3B,MAAM,EAAE,WAAW;IAK/B,IAAI,MAAM,IAAI,YAAY,GAAG,IAAI,CAEhC;IAED,IAAI,aAAa,IAAI,YAAY,CAKhC;IAED,IAAI,YAAY,IAAI,MAAM,GAAG,IAAI,CAOhC;IAED,mBAAmB,IAAI,GAAG,EAAE;IAItB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IASvC,SAAS,CAAC,yBAAyB,IAAI,oBAAoB;IAQ3D,IAAI,aAAa,IAAI,YAAY,CAEhC;IAED,IAAI,gBAAgB,IAAI,cAAc,EAAE,CAEvC;IAED,IAAI,UAAU,IAAI,cAAc,EAAE,CAIjC;IAEK,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAsD3B,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAkC/B,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAwC/B,aAAa,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM;IAItC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAStB,mBAAmB,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC;IAG1D;;;OAGG;IACG,SAAS,IAAI,OAAO,CAAC,YAAY,CAAC;cAqHxB,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAMvC,OAAO,CACX,cAAc,EAAE,YAAY,EAC5B,aAAa,EAAE,YAAY,GAC1B,OAAO,CAAC,eAAe,CAAC;IA0BrB,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;IAMtC,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC;IAiBxC,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC;IAEvC,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAsBlC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAgEjC;;OAEG;IACG,GAAG,CACP,OAAO,EAAE,QAAQ,EACjB,IAAI,CAAC,EAAE;QACL,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE;YAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;SAAE,CAAC;QAChC,EAAE,CAAC,EAAE,MAAM,CAAC;KACb,GACA,OAAO,CAAC,GAAG,CAAC;IAST,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAc/B,UAAU,IAAI,YAAY,EAAE;IAI5B,UAAU,IAAI,YAAY,EAAE;IAI5B,WAAW,IAAI,YAAY,EAAE;IAI7B,WAAW,CAAC,YAAY,EAAE,YAAY,GAAG,IAAI;CAG9C"}
|
package/dist/src/o-node.js
CHANGED
|
@@ -116,6 +116,7 @@ export class oNode extends oToolBase {
|
|
|
116
116
|
this.parent.setTransports(this.leader?.libp2pTransports || []);
|
|
117
117
|
}
|
|
118
118
|
else {
|
|
119
|
+
this.logger.debug('Waiting for parent and reconnecting...');
|
|
119
120
|
await this.reconnectionManager?.waitForParentAndReconnect();
|
|
120
121
|
}
|
|
121
122
|
}
|
|
@@ -226,12 +227,28 @@ export class oNode extends oToolBase {
|
|
|
226
227
|
// ];
|
|
227
228
|
// // let's make sure we only allow communication through the parent transports
|
|
228
229
|
params.connectionGater = {
|
|
230
|
+
denyDialPeer: (peerId) => {
|
|
231
|
+
// we can call the leader
|
|
232
|
+
if (this.config.leader?.libp2pTransports.some((t) => t.toPeerId() === peerId.toString())) {
|
|
233
|
+
return false;
|
|
234
|
+
}
|
|
235
|
+
// we can call our parent
|
|
236
|
+
if (this.parentPeerId === peerId.toString()) {
|
|
237
|
+
return false;
|
|
238
|
+
}
|
|
239
|
+
// we can call our children
|
|
240
|
+
if (this.hierarchyManager.children.some((c) => c.libp2pTransports.some((t) => t.toPeerId() === peerId.toString()))) {
|
|
241
|
+
return false;
|
|
242
|
+
}
|
|
243
|
+
return true;
|
|
244
|
+
},
|
|
229
245
|
// who can call us?
|
|
230
246
|
denyInboundEncryptedConnection: (peerId, maConn) => {
|
|
231
247
|
// deny all inbound connections unless they are from a parent transport
|
|
232
248
|
if (this.parentPeerId === peerId.toString()) {
|
|
233
249
|
return false;
|
|
234
250
|
}
|
|
251
|
+
// allow connections from children (for ping)
|
|
235
252
|
if (this.hierarchyManager.children.some((c) => c.libp2pTransports.some((t) => t.toPeerId() === peerId.toString()))) {
|
|
236
253
|
return false;
|
|
237
254
|
}
|
|
@@ -282,7 +299,27 @@ export class oNode extends oToolBase {
|
|
|
282
299
|
}
|
|
283
300
|
return connection;
|
|
284
301
|
}
|
|
285
|
-
async
|
|
302
|
+
async initConnectionManager() {
|
|
303
|
+
this.connectionManager = new oNodeConnectionManager({
|
|
304
|
+
p2pNode: this.p2pNode,
|
|
305
|
+
});
|
|
306
|
+
}
|
|
307
|
+
async initReconnectionManager() {
|
|
308
|
+
// Initialize reconnection manager
|
|
309
|
+
if (this.config.reconnection?.enabled !== false) {
|
|
310
|
+
this.reconnectionManager = new oReconnectionManager(this, {
|
|
311
|
+
enabled: true,
|
|
312
|
+
maxAttempts: this.config.reconnection?.maxAttempts ?? 10,
|
|
313
|
+
baseDelayMs: this.config.reconnection?.baseDelayMs ?? 5000,
|
|
314
|
+
maxDelayMs: this.config.reconnection?.maxDelayMs ?? 60000,
|
|
315
|
+
useLeaderFallback: this.config.reconnection?.useLeaderFallback ?? true,
|
|
316
|
+
parentDiscoveryIntervalMs: this.config.reconnection?.parentDiscoveryIntervalMs ?? 10000,
|
|
317
|
+
parentDiscoveryMaxDelayMs: this.config.reconnection?.parentDiscoveryMaxDelayMs ?? 60000,
|
|
318
|
+
});
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
async hookInitializeFinished() { }
|
|
322
|
+
async hookStartFinished() {
|
|
286
323
|
// Initialize connection heartbeat manager
|
|
287
324
|
this.connectionHeartbeatManager = new oConnectionHeartbeatManager(this, {
|
|
288
325
|
enabled: this.config.connectionHeartbeat?.enabled ?? true,
|
|
@@ -308,13 +345,11 @@ export class oNode extends oToolBase {
|
|
|
308
345
|
await this.initializeRouter();
|
|
309
346
|
// need to wait until our libpp2 node is initialized before calling super.initialize
|
|
310
347
|
await super.initialize();
|
|
311
|
-
this.logger.debug('Node
|
|
348
|
+
this.logger.debug('Node initializedddd!', this.transports.map((t) => t.toString()));
|
|
312
349
|
this.address.setTransports(this.transports);
|
|
313
350
|
this.peerId = this.p2pNode.peerId;
|
|
314
351
|
// initialize connection manager
|
|
315
|
-
this.
|
|
316
|
-
p2pNode: this.p2pNode,
|
|
317
|
-
});
|
|
352
|
+
await this.initConnectionManager();
|
|
318
353
|
// Initialize leader request wrapper with circuit breaker
|
|
319
354
|
this.leaderRequestWrapper = new LeaderRequestWrapper({
|
|
320
355
|
enabled: this.config.leaderRetry?.enabled ?? true,
|
|
@@ -340,21 +375,9 @@ export class oNode extends oToolBase {
|
|
|
340
375
|
this.logger.debug('Adding leader resolver fallback...');
|
|
341
376
|
this.router.addResolver(new oLeaderResolverFallback(this.address));
|
|
342
377
|
}
|
|
343
|
-
//
|
|
344
|
-
|
|
345
|
-
this.
|
|
346
|
-
// Initialize reconnection manager
|
|
347
|
-
if (this.config.reconnection?.enabled !== false) {
|
|
348
|
-
this.reconnectionManager = new oReconnectionManager(this, {
|
|
349
|
-
enabled: true,
|
|
350
|
-
maxAttempts: this.config.reconnection?.maxAttempts ?? 10,
|
|
351
|
-
baseDelayMs: this.config.reconnection?.baseDelayMs ?? 5000,
|
|
352
|
-
maxDelayMs: this.config.reconnection?.maxDelayMs ?? 60000,
|
|
353
|
-
useLeaderFallback: this.config.reconnection?.useLeaderFallback ?? true,
|
|
354
|
-
parentDiscoveryIntervalMs: this.config.reconnection?.parentDiscoveryIntervalMs ?? 10000,
|
|
355
|
-
parentDiscoveryMaxDelayMs: this.config.reconnection?.parentDiscoveryMaxDelayMs ?? 60000,
|
|
356
|
-
});
|
|
357
|
-
}
|
|
378
|
+
// initialize reconnection manager
|
|
379
|
+
await this.initReconnectionManager();
|
|
380
|
+
await this.hookInitializeFinished();
|
|
358
381
|
}
|
|
359
382
|
/**
|
|
360
383
|
* Override use() to wrap leader/registry requests with retry logic
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@olane/o-node",
|
|
3
|
-
"version": "0.7.12-alpha.
|
|
3
|
+
"version": "0.7.12-alpha.18",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "dist/src/index.js",
|
|
6
6
|
"types": "dist/src/index.d.ts",
|
|
@@ -54,12 +54,12 @@
|
|
|
54
54
|
"typescript": "5.4.5"
|
|
55
55
|
},
|
|
56
56
|
"dependencies": {
|
|
57
|
-
"@olane/o-config": "0.7.12-alpha.
|
|
58
|
-
"@olane/o-core": "0.7.12-alpha.
|
|
59
|
-
"@olane/o-protocol": "0.7.12-alpha.
|
|
60
|
-
"@olane/o-tool": "0.7.12-alpha.
|
|
57
|
+
"@olane/o-config": "0.7.12-alpha.18",
|
|
58
|
+
"@olane/o-core": "0.7.12-alpha.18",
|
|
59
|
+
"@olane/o-protocol": "0.7.12-alpha.18",
|
|
60
|
+
"@olane/o-tool": "0.7.12-alpha.18",
|
|
61
61
|
"debug": "^4.4.1",
|
|
62
62
|
"dotenv": "^16.5.0"
|
|
63
63
|
},
|
|
64
|
-
"gitHead": "
|
|
64
|
+
"gitHead": "800caa15822914672538c443efc9e741fe3ee1f3"
|
|
65
65
|
}
|