@optimystic/db-p2p 0.10.0 → 0.11.1
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 +35 -0
- package/dist/src/libp2p-key-network.d.ts +26 -0
- package/dist/src/libp2p-key-network.d.ts.map +1 -1
- package/dist/src/libp2p-key-network.js +40 -2
- package/dist/src/libp2p-key-network.js.map +1 -1
- package/dist/src/libp2p-node-base.d.ts +10 -0
- package/dist/src/libp2p-node-base.d.ts.map +1 -1
- package/dist/src/libp2p-node-base.js +2 -3
- package/dist/src/libp2p-node-base.js.map +1 -1
- package/dist/src/storage/restoration-coordinator-v2.d.ts +5 -1
- package/dist/src/storage/restoration-coordinator-v2.d.ts.map +1 -1
- package/dist/src/storage/restoration-coordinator-v2.js +19 -4
- package/dist/src/storage/restoration-coordinator-v2.js.map +1 -1
- package/package.json +2 -2
- package/src/libp2p-key-network.ts +55 -2
- package/src/libp2p-node-base.ts +14 -3
- package/src/storage/restoration-coordinator-v2.ts +19 -5
package/README.md
CHANGED
|
@@ -483,6 +483,41 @@ const node = await createLibp2pNode({
|
|
|
483
483
|
});
|
|
484
484
|
```
|
|
485
485
|
|
|
486
|
+
#### Solo / bootstrap / mobile nodes (no remote peers)
|
|
487
|
+
|
|
488
|
+
A node can operate fully on its own — no bootstrap peers, no listen addresses, no
|
|
489
|
+
connectivity to other peers. This is the common shape for a mobile app on first
|
|
490
|
+
launch or for a local-only sanity test.
|
|
491
|
+
|
|
492
|
+
```typescript
|
|
493
|
+
const soloNode = await createLibp2pNode({
|
|
494
|
+
networkName: 'mynet',
|
|
495
|
+
bootstrapNodes: [], // no bootstrap
|
|
496
|
+
listenAddrs: [], // no incoming connections
|
|
497
|
+
transports: [webSockets()], // transports still required
|
|
498
|
+
clusterSize: 1,
|
|
499
|
+
});
|
|
500
|
+
```
|
|
501
|
+
|
|
502
|
+
In solo mode:
|
|
503
|
+
|
|
504
|
+
- The node is its own coordinator. `CoordinatorRepo` short-circuits to local
|
|
505
|
+
storage when the cluster size is ≤ 1, so `pend`/`commit` do not require
|
|
506
|
+
cluster consensus and do not attempt to dial self.
|
|
507
|
+
- Block restoration is skipped when the only discovered peer is self.
|
|
508
|
+
`RestorationCoordinator` will return `undefined` immediately rather than
|
|
509
|
+
attempt to dial self (which would hang on a node with no listen addrs).
|
|
510
|
+
- If an operation fails for some other reason, `findCoordinator` surfaces a
|
|
511
|
+
distinguishable `FindCoordinatorError` with `code ===
|
|
512
|
+
FIND_COORDINATOR_ERROR_CODES.SELF_COORDINATION_EXHAUSTED` rather than the
|
|
513
|
+
generic "all candidates excluded". The aggregate error thrown by
|
|
514
|
+
`NetworkTransactor` preserves the ORIGINAL first-attempt cause so callers can
|
|
515
|
+
diagnose the real problem.
|
|
516
|
+
|
|
517
|
+
Once remote peers become reachable, the node transitions out of solo mode
|
|
518
|
+
automatically as FRET discovers them. Persisted network state (HWM, FRET
|
|
519
|
+
table) carries across restarts when an `options.persistence` is supplied.
|
|
520
|
+
|
|
486
521
|
#### Custom transports (including React Native)
|
|
487
522
|
|
|
488
523
|
By default, `createLibp2pNode()` uses TCP + circuit-relay transport.
|
|
@@ -3,6 +3,32 @@ import type { ClusterPeers, FindCoordinatorOptions, IKeyNetwork, IPeerNetwork }
|
|
|
3
3
|
import type { SerializedTable } from 'p2p-fret';
|
|
4
4
|
import type { IPeerReputation } from './reputation/types.js';
|
|
5
5
|
export type NetworkMode = 'forming' | 'joining';
|
|
6
|
+
/**
|
|
7
|
+
* Error codes surfaced by {@link Libp2pKeyPeerNetwork.findCoordinator}. Callers
|
|
8
|
+
* (notably the batch-retry logic in `NetworkTransactor`) can inspect `.code`
|
|
9
|
+
* to distinguish between "transient — try again with different excludes" and
|
|
10
|
+
* "terminal — stop retrying".
|
|
11
|
+
*/
|
|
12
|
+
export declare const FIND_COORDINATOR_ERROR_CODES: {
|
|
13
|
+
/**
|
|
14
|
+
* Last-resort self-coordination was blocked by the self-coordination guard
|
|
15
|
+
* (e.g. partition detected, suspicious shrinkage). Retrying is unlikely to help.
|
|
16
|
+
*/
|
|
17
|
+
readonly SELF_COORDINATION_BLOCKED: "SELF_COORDINATION_BLOCKED";
|
|
18
|
+
/**
|
|
19
|
+
* Self-coordination was already attempted and self is now excluded. On a solo
|
|
20
|
+
* or bootstrap node with no other peers, this means retries are exhausted and
|
|
21
|
+
* the original error from the prior attempt should be surfaced instead.
|
|
22
|
+
*/
|
|
23
|
+
readonly SELF_COORDINATION_EXHAUSTED: "SELF_COORDINATION_EXHAUSTED";
|
|
24
|
+
/** No peer (including self) is an eligible coordinator. */
|
|
25
|
+
readonly NO_COORDINATOR_AVAILABLE: "NO_COORDINATOR_AVAILABLE";
|
|
26
|
+
};
|
|
27
|
+
export type FindCoordinatorErrorCode = typeof FIND_COORDINATOR_ERROR_CODES[keyof typeof FIND_COORDINATOR_ERROR_CODES];
|
|
28
|
+
export declare class FindCoordinatorError extends Error {
|
|
29
|
+
readonly code: FindCoordinatorErrorCode;
|
|
30
|
+
constructor(code: FindCoordinatorErrorCode, message: string);
|
|
31
|
+
}
|
|
6
32
|
export interface PersistedNetworkState {
|
|
7
33
|
version: 1;
|
|
8
34
|
networkHighWaterMark: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"libp2p-key-network.d.ts","sourceRoot":"","sources":["../../src/libp2p-key-network.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"libp2p-key-network.d.ts","sourceRoot":"","sources":["../../src/libp2p-key-network.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,35 @@ import { peerIdFromString } from '@libp2p/peer-id';
|
|
|
3
3
|
import { multiaddr } from '@multiformats/multiaddr';
|
|
4
4
|
import { hashKey } from 'p2p-fret';
|
|
5
5
|
import { createLogger, verbose } from './logger.js';
|
|
6
|
+
/**
|
|
7
|
+
* Error codes surfaced by {@link Libp2pKeyPeerNetwork.findCoordinator}. Callers
|
|
8
|
+
* (notably the batch-retry logic in `NetworkTransactor`) can inspect `.code`
|
|
9
|
+
* to distinguish between "transient — try again with different excludes" and
|
|
10
|
+
* "terminal — stop retrying".
|
|
11
|
+
*/
|
|
12
|
+
export const FIND_COORDINATOR_ERROR_CODES = {
|
|
13
|
+
/**
|
|
14
|
+
* Last-resort self-coordination was blocked by the self-coordination guard
|
|
15
|
+
* (e.g. partition detected, suspicious shrinkage). Retrying is unlikely to help.
|
|
16
|
+
*/
|
|
17
|
+
SELF_COORDINATION_BLOCKED: 'SELF_COORDINATION_BLOCKED',
|
|
18
|
+
/**
|
|
19
|
+
* Self-coordination was already attempted and self is now excluded. On a solo
|
|
20
|
+
* or bootstrap node with no other peers, this means retries are exhausted and
|
|
21
|
+
* the original error from the prior attempt should be surfaced instead.
|
|
22
|
+
*/
|
|
23
|
+
SELF_COORDINATION_EXHAUSTED: 'SELF_COORDINATION_EXHAUSTED',
|
|
24
|
+
/** No peer (including self) is an eligible coordinator. */
|
|
25
|
+
NO_COORDINATOR_AVAILABLE: 'NO_COORDINATOR_AVAILABLE'
|
|
26
|
+
};
|
|
27
|
+
export class FindCoordinatorError extends Error {
|
|
28
|
+
code;
|
|
29
|
+
constructor(code, message) {
|
|
30
|
+
super(message);
|
|
31
|
+
this.name = 'FindCoordinatorError';
|
|
32
|
+
this.code = code;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
6
35
|
export class Libp2pKeyPeerNetwork {
|
|
7
36
|
libp2p;
|
|
8
37
|
clusterSize;
|
|
@@ -294,7 +323,7 @@ export class Libp2pKeyPeerNetwork {
|
|
|
294
323
|
const decision = this.shouldAllowSelfCoordination();
|
|
295
324
|
if (!decision.allow) {
|
|
296
325
|
this.log('findCoordinator:self-coord-blocked key=%s reason=%s', keyStr, decision.reason);
|
|
297
|
-
throw new
|
|
326
|
+
throw new FindCoordinatorError(FIND_COORDINATOR_ERROR_CODES.SELF_COORDINATION_BLOCKED, `Self-coordination blocked: ${decision.reason}. No coordinator available for key.`);
|
|
298
327
|
}
|
|
299
328
|
if (decision.warn) {
|
|
300
329
|
this.log('findCoordinator:self-selected-warn key=%s coordinator=%s reason=%s', keyStr, self.toString().substring(0, 12), decision.reason);
|
|
@@ -305,8 +334,17 @@ export class Libp2pKeyPeerNetwork {
|
|
|
305
334
|
this.log('findCoordinator:done key=%s ms=%d source=%s', keyStr, Date.now() - t0, 'self');
|
|
306
335
|
return self;
|
|
307
336
|
}
|
|
337
|
+
// Self is excluded. On a solo/bootstrap node (HWM<=1 and no other connected/FRET peers),
|
|
338
|
+
// this means the caller already tried self and the retry has nowhere to go — surface a
|
|
339
|
+
// distinct error so retry logic stops and the original first-attempt cause is preserved.
|
|
340
|
+
const isSoloBootstrap = this.networkHighWaterMark <= 1;
|
|
341
|
+
if (isSoloBootstrap) {
|
|
342
|
+
this.log('findCoordinator:self-exhausted-solo key=%s self=%s', keyStr, self.toString().substring(0, 12));
|
|
343
|
+
throw new FindCoordinatorError(FIND_COORDINATOR_ERROR_CODES.SELF_COORDINATION_EXHAUSTED, 'Self-coordination exhausted on solo/bootstrap node (self already attempted). ' +
|
|
344
|
+
'The original first-attempt error describes the actual failure cause.');
|
|
345
|
+
}
|
|
308
346
|
this.log('findCoordinator:all-excluded key=%s self=%s', keyStr, self.toString().substring(0, 12));
|
|
309
|
-
throw new
|
|
347
|
+
throw new FindCoordinatorError(FIND_COORDINATOR_ERROR_CODES.NO_COORDINATOR_AVAILABLE, 'No coordinator available for key (all candidates excluded)');
|
|
310
348
|
}
|
|
311
349
|
getConnectedAddrsByPeer() {
|
|
312
350
|
const conns = this.libp2p.getConnections();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"libp2p-key-network.js","sourceRoot":"","sources":["../../src/libp2p-key-network.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"libp2p-key-network.js","sourceRoot":"","sources":["../../src/libp2p-key-network.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { createLibp2p, type Libp2p } from 'libp2p';
|
|
2
|
+
import type { PrivateKey } from '@libp2p/interface';
|
|
2
3
|
import type { IRawStorage } from './storage/i-raw-storage.js';
|
|
3
4
|
import { type NetworkStatePersistence } from './libp2p-key-network.js';
|
|
4
5
|
import type { ITransactionValidator } from '@optimystic/db-core';
|
|
@@ -53,6 +54,15 @@ export type NodeOptions = {
|
|
|
53
54
|
dispute?: Partial<DisputeConfig>;
|
|
54
55
|
/** Optional persistent store for 2PC transaction state (enables crash recovery) */
|
|
55
56
|
transactionStateStore?: ITransactionStateStore;
|
|
57
|
+
/**
|
|
58
|
+
* Optional Ed25519 private key for this node. When provided, the libp2p
|
|
59
|
+
* node uses this identity instead of generating a fresh keypair. Use this
|
|
60
|
+
* to persist peer identity across process restarts.
|
|
61
|
+
*
|
|
62
|
+
* Accepts a libp2p `PrivateKey` (as returned by `generateKeyPair('Ed25519')`
|
|
63
|
+
* or `privateKeyFromProtobuf(...)` from `@libp2p/crypto/keys`).
|
|
64
|
+
*/
|
|
65
|
+
privateKey?: PrivateKey;
|
|
56
66
|
};
|
|
57
67
|
export declare function createLibp2pNodeBase(options: NodeOptions, defaults: {
|
|
58
68
|
listenAddrs: string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"libp2p-node-base.d.ts","sourceRoot":"","sources":["../../src/libp2p-node-base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,KAAK,MAAM,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"libp2p-node-base.d.ts","sourceRoot":"","sources":["../../src/libp2p-node-base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,KAAK,MAAM,EAAE,MAAM,QAAQ,CAAC;AAUnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAMpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAG9D,OAAO,EAA0C,KAAK,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAE/G,OAAO,KAAK,EAAmB,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAClF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AASrF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAUzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,KAAK,UAAU,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClE,MAAM,MAAM,gBAAgB,GAAG,WAAW,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC;AAErE,4DAA4D;AAC5D,MAAM,MAAM,kBAAkB,GAAG,WAAW,GAAG,CAAC,MAAM,WAAW,CAAC,CAAC;AAEnE,MAAM,MAAM,WAAW,GAAG;IACzB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,6HAA6H;IAC7H,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE;QACf,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,sBAAsB,CAAC,EAAE,MAAM,CAAC;KAChC,CAAC;IAEF,yCAAyC;IACzC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,kCAAkC;IAClC,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAE9B;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,sCAAsC;IACtC,SAAS,CAAC,EAAE;QACX,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,OAAO,CAAC,EAAE,oBAAoB,CAAC;KAC/B,CAAC;IAEF,kDAAkD;IAClD,SAAS,CAAC,EAAE,qBAAqB,CAAC;IAElC,+EAA+E;IAC/E,WAAW,CAAC,EAAE,uBAAuB,CAAC;IAEtC,qCAAqC;IACrC,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAEjC,mFAAmF;IACnF,qBAAqB,CAAC,EAAE,sBAAsB,CAAC;IAE/C;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;CACxB,CAAC;AASF,wBAAsB,oBAAoB,CACzC,OAAO,EAAE,WAAW,EACpB,QAAQ,EAAE;IACT,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,UAAU,EAAE,gBAAgB,CAAC;CAC7B,GACC,OAAO,CAAC,MAAM,CAAC,CAoWjB"}
|
|
@@ -71,8 +71,7 @@ export async function createLibp2pNodeBase(options, defaults) {
|
|
|
71
71
|
return await target.commit(request, options);
|
|
72
72
|
}
|
|
73
73
|
};
|
|
74
|
-
|
|
75
|
-
const nodePrivateKey = await generateKeyPair('Ed25519');
|
|
74
|
+
const nodePrivateKey = options.privateKey ?? await generateKeyPair('Ed25519');
|
|
76
75
|
const listenAddrs = options.listenAddrs ?? defaults.listenAddrs;
|
|
77
76
|
const transports = options.transports ?? defaults.transports;
|
|
78
77
|
const libp2pOptions = {
|
|
@@ -279,7 +278,7 @@ export async function createLibp2pNodeBase(options, defaults) {
|
|
|
279
278
|
fretAdapter.setArachnodeInfo(arachnodeInfo);
|
|
280
279
|
log?.('Announced Arachnode membership: Ring %d', arachnodeInfo.ringDepth);
|
|
281
280
|
// Setup restoration coordinator with FRET adapter
|
|
282
|
-
const restorationCoordinatorV2 = new RestorationCoordinator(fretAdapter, { connect: (pid, protocol) => node.dialProtocol(pid, [protocol]) }, `/optimystic/${options.networkName}
|
|
281
|
+
const restorationCoordinatorV2 = new RestorationCoordinator(fretAdapter, { connect: (pid, protocol) => node.dialProtocol(pid, [protocol]) }, `/optimystic/${options.networkName}`, node.peerId.toString());
|
|
283
282
|
// Update restore callback to use new coordinator
|
|
284
283
|
const newRestoreCallback = async (blockId, rev) => {
|
|
285
284
|
return await restorationCoordinatorV2.restore(blockId, rev);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"libp2p-node-base.js","sourceRoot":"","sources":["../../src/libp2p-node-base.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"libp2p-node-base.js","sourceRoot":"","sources":["../../src/libp2p-node-base.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,8 +15,12 @@ export declare class RestorationCoordinator {
|
|
|
15
15
|
private readonly fretAdapter;
|
|
16
16
|
private readonly peerNetwork;
|
|
17
17
|
private readonly protocolPrefix;
|
|
18
|
+
/** Optional self peer id — used to skip dialing self on solo/bootstrap nodes. */
|
|
19
|
+
private readonly selfPeerId?;
|
|
18
20
|
private readonly metrics;
|
|
19
|
-
constructor(fretAdapter: ArachnodeFretAdapter, peerNetwork: IPeerNetwork, protocolPrefix: string
|
|
21
|
+
constructor(fretAdapter: ArachnodeFretAdapter, peerNetwork: IPeerNetwork, protocolPrefix: string,
|
|
22
|
+
/** Optional self peer id — used to skip dialing self on solo/bootstrap nodes. */
|
|
23
|
+
selfPeerId?: string | undefined);
|
|
20
24
|
private readonly log;
|
|
21
25
|
/**
|
|
22
26
|
* Restore a block by querying discovered storage rings.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"restoration-coordinator-v2.d.ts","sourceRoot":"","sources":["../../../src/storage/restoration-coordinator-v2.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAGnD,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAGxE;;;;;;;;GAQG;AACH,qBAAa,sBAAsB;IASjC,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,cAAc;
|
|
1
|
+
{"version":3,"file":"restoration-coordinator-v2.d.ts","sourceRoot":"","sources":["../../../src/storage/restoration-coordinator-v2.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAGnD,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAGxE;;;;;;;;GAQG;AACH,qBAAa,sBAAsB;IASjC,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,iFAAiF;IACjF,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;IAZ7B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAKtB;gBAGgB,WAAW,EAAE,oBAAoB,EACjC,WAAW,EAAE,YAAY,EACzB,cAAc,EAAE,MAAM;IACvC,iFAAiF;IAChE,UAAU,CAAC,EAAE,MAAM,YAAA;IAGrC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAsC;IAE1D;;OAEG;IACG,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;IAkDhF;;OAEG;IACH,qBAAqB,IAAI,eAAe;IAMxC;;OAEG;YACW,cAAc;IAM5B;;OAEG;IACH,OAAO,CAAC,cAAc;IAKtB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAczB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAmB1B;;OAEG;YACW,SAAS;IAiBvB;;OAEG;IACH,OAAO,CAAC,aAAa;IAerB;;OAEG;IACH,UAAU,IAAI;QACb,aAAa,EAAE,MAAM,CAAC;QACtB,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACnC,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACnC,iBAAiB,EAAE,MAAM,CAAC;KAC1B;CAGD"}
|
|
@@ -15,16 +15,20 @@ export class RestorationCoordinator {
|
|
|
15
15
|
fretAdapter;
|
|
16
16
|
peerNetwork;
|
|
17
17
|
protocolPrefix;
|
|
18
|
+
selfPeerId;
|
|
18
19
|
metrics = {
|
|
19
20
|
totalRequests: 0,
|
|
20
21
|
successByRing: new Map(),
|
|
21
22
|
failureByRing: new Map(),
|
|
22
23
|
averageDurationMs: 0
|
|
23
24
|
};
|
|
24
|
-
constructor(fretAdapter, peerNetwork, protocolPrefix
|
|
25
|
+
constructor(fretAdapter, peerNetwork, protocolPrefix,
|
|
26
|
+
/** Optional self peer id — used to skip dialing self on solo/bootstrap nodes. */
|
|
27
|
+
selfPeerId) {
|
|
25
28
|
this.fretAdapter = fretAdapter;
|
|
26
29
|
this.peerNetwork = peerNetwork;
|
|
27
30
|
this.protocolPrefix = protocolPrefix;
|
|
31
|
+
this.selfPeerId = selfPeerId;
|
|
28
32
|
}
|
|
29
33
|
log = createLogger('storage:restoration');
|
|
30
34
|
/**
|
|
@@ -36,7 +40,17 @@ export class RestorationCoordinator {
|
|
|
36
40
|
// 1. Try my transaction ring peers first
|
|
37
41
|
const myPeers = await this.getMyRingPeers(blockId);
|
|
38
42
|
const myRingDepth = this.getMyRingDepth();
|
|
39
|
-
|
|
43
|
+
// Avoid dialing self: on a solo/bootstrap node with no listenAddrs, dialing self
|
|
44
|
+
// either hangs or fails noisily. Filter self out of the ring-peer list so the loop
|
|
45
|
+
// below can no-op cleanly when self is the only candidate.
|
|
46
|
+
const nonSelfMyPeers = this.selfPeerId
|
|
47
|
+
? myPeers.filter(p => p !== this.selfPeerId)
|
|
48
|
+
: myPeers;
|
|
49
|
+
if (nonSelfMyPeers.length === 0 && myRingDepth <= 0) {
|
|
50
|
+
this.log('restore:solo-node-skip blockId=%s', blockId);
|
|
51
|
+
return undefined;
|
|
52
|
+
}
|
|
53
|
+
for (const peerId of nonSelfMyPeers) {
|
|
40
54
|
const archive = await this.queryPeer(peerId, blockId, rev);
|
|
41
55
|
if (archive) {
|
|
42
56
|
this.recordSuccess(myRingDepth, blockId, Date.now() - startTime);
|
|
@@ -46,8 +60,9 @@ export class RestorationCoordinator {
|
|
|
46
60
|
// 2. Try inner storage rings (broader coverage)
|
|
47
61
|
for (let ringDepth = myRingDepth - 1; ringDepth >= 0; ringDepth--) {
|
|
48
62
|
const storagePeers = this.fretAdapter.findPeersAtRing(ringDepth);
|
|
49
|
-
// Filter to peers responsible for this block's partition
|
|
50
|
-
const responsiblePeers = this.filterByPartition(storagePeers, blockId, ringDepth)
|
|
63
|
+
// Filter to peers responsible for this block's partition (skip self — cannot dial self).
|
|
64
|
+
const responsiblePeers = this.filterByPartition(storagePeers, blockId, ringDepth)
|
|
65
|
+
.filter(p => !this.selfPeerId || p !== this.selfPeerId);
|
|
51
66
|
for (const peerIdStr of responsiblePeers) {
|
|
52
67
|
const archive = await this.queryPeer(peerIdStr, blockId, rev);
|
|
53
68
|
if (archive) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"restoration-coordinator-v2.js","sourceRoot":"","sources":["../../../src/storage/restoration-coordinator-v2.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAG/C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C;;;;;;;;GAQG;AACH,MAAM,OAAO,sBAAsB;IAShB;IACA;IACA;
|
|
1
|
+
{"version":3,"file":"restoration-coordinator-v2.js","sourceRoot":"","sources":["../../../src/storage/restoration-coordinator-v2.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@optimystic/db-p2p",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.11.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "P2P database functionality for Optimystic",
|
|
6
6
|
"main": "dist/src/index.js",
|
|
@@ -74,7 +74,7 @@
|
|
|
74
74
|
"@libp2p/tcp": "^11.0.10",
|
|
75
75
|
"@libp2p/websockets": "^10.1.3",
|
|
76
76
|
"@multiformats/multiaddr": "^13.0.1",
|
|
77
|
-
"@optimystic/db-core": "^0.
|
|
77
|
+
"@optimystic/db-core": "^0.11.1",
|
|
78
78
|
"async-mutex": "^0.5.0",
|
|
79
79
|
"debug": "^4.4.3",
|
|
80
80
|
"it-all": "^3.0.9",
|
|
@@ -12,6 +12,40 @@ interface WithFretService { services?: { fret?: FretService } }
|
|
|
12
12
|
|
|
13
13
|
export type NetworkMode = 'forming' | 'joining';
|
|
14
14
|
|
|
15
|
+
/**
|
|
16
|
+
* Error codes surfaced by {@link Libp2pKeyPeerNetwork.findCoordinator}. Callers
|
|
17
|
+
* (notably the batch-retry logic in `NetworkTransactor`) can inspect `.code`
|
|
18
|
+
* to distinguish between "transient — try again with different excludes" and
|
|
19
|
+
* "terminal — stop retrying".
|
|
20
|
+
*/
|
|
21
|
+
export const FIND_COORDINATOR_ERROR_CODES = {
|
|
22
|
+
/**
|
|
23
|
+
* Last-resort self-coordination was blocked by the self-coordination guard
|
|
24
|
+
* (e.g. partition detected, suspicious shrinkage). Retrying is unlikely to help.
|
|
25
|
+
*/
|
|
26
|
+
SELF_COORDINATION_BLOCKED: 'SELF_COORDINATION_BLOCKED',
|
|
27
|
+
/**
|
|
28
|
+
* Self-coordination was already attempted and self is now excluded. On a solo
|
|
29
|
+
* or bootstrap node with no other peers, this means retries are exhausted and
|
|
30
|
+
* the original error from the prior attempt should be surfaced instead.
|
|
31
|
+
*/
|
|
32
|
+
SELF_COORDINATION_EXHAUSTED: 'SELF_COORDINATION_EXHAUSTED',
|
|
33
|
+
/** No peer (including self) is an eligible coordinator. */
|
|
34
|
+
NO_COORDINATOR_AVAILABLE: 'NO_COORDINATOR_AVAILABLE'
|
|
35
|
+
} as const;
|
|
36
|
+
|
|
37
|
+
export type FindCoordinatorErrorCode =
|
|
38
|
+
typeof FIND_COORDINATOR_ERROR_CODES[keyof typeof FIND_COORDINATOR_ERROR_CODES];
|
|
39
|
+
|
|
40
|
+
export class FindCoordinatorError extends Error {
|
|
41
|
+
readonly code: FindCoordinatorErrorCode;
|
|
42
|
+
constructor(code: FindCoordinatorErrorCode, message: string) {
|
|
43
|
+
super(message);
|
|
44
|
+
this.name = 'FindCoordinatorError';
|
|
45
|
+
this.code = code;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
15
49
|
export interface PersistedNetworkState {
|
|
16
50
|
version: 1;
|
|
17
51
|
networkHighWaterMark: number;
|
|
@@ -359,7 +393,10 @@ export class Libp2pKeyPeerNetwork implements IKeyNetwork, IPeerNetwork {
|
|
|
359
393
|
const decision = this.shouldAllowSelfCoordination();
|
|
360
394
|
if (!decision.allow) {
|
|
361
395
|
this.log('findCoordinator:self-coord-blocked key=%s reason=%s', keyStr, decision.reason);
|
|
362
|
-
throw new
|
|
396
|
+
throw new FindCoordinatorError(
|
|
397
|
+
FIND_COORDINATOR_ERROR_CODES.SELF_COORDINATION_BLOCKED,
|
|
398
|
+
`Self-coordination blocked: ${decision.reason}. No coordinator available for key.`
|
|
399
|
+
);
|
|
363
400
|
}
|
|
364
401
|
if (decision.warn) {
|
|
365
402
|
this.log('findCoordinator:self-selected-warn key=%s coordinator=%s reason=%s',
|
|
@@ -372,8 +409,24 @@ export class Libp2pKeyPeerNetwork implements IKeyNetwork, IPeerNetwork {
|
|
|
372
409
|
return self
|
|
373
410
|
}
|
|
374
411
|
|
|
412
|
+
// Self is excluded. On a solo/bootstrap node (HWM<=1 and no other connected/FRET peers),
|
|
413
|
+
// this means the caller already tried self and the retry has nowhere to go — surface a
|
|
414
|
+
// distinct error so retry logic stops and the original first-attempt cause is preserved.
|
|
415
|
+
const isSoloBootstrap = this.networkHighWaterMark <= 1;
|
|
416
|
+
if (isSoloBootstrap) {
|
|
417
|
+
this.log('findCoordinator:self-exhausted-solo key=%s self=%s', keyStr, self.toString().substring(0, 12))
|
|
418
|
+
throw new FindCoordinatorError(
|
|
419
|
+
FIND_COORDINATOR_ERROR_CODES.SELF_COORDINATION_EXHAUSTED,
|
|
420
|
+
'Self-coordination exhausted on solo/bootstrap node (self already attempted). ' +
|
|
421
|
+
'The original first-attempt error describes the actual failure cause.'
|
|
422
|
+
);
|
|
423
|
+
}
|
|
424
|
+
|
|
375
425
|
this.log('findCoordinator:all-excluded key=%s self=%s', keyStr, self.toString().substring(0, 12))
|
|
376
|
-
throw new
|
|
426
|
+
throw new FindCoordinatorError(
|
|
427
|
+
FIND_COORDINATOR_ERROR_CODES.NO_COORDINATOR_AVAILABLE,
|
|
428
|
+
'No coordinator available for key (all candidates excluded)'
|
|
429
|
+
);
|
|
377
430
|
}
|
|
378
431
|
|
|
379
432
|
private getConnectedAddrsByPeer(): Record<string, string[]> {
|
package/src/libp2p-node-base.ts
CHANGED
|
@@ -8,6 +8,7 @@ import { bootstrap } from '@libp2p/bootstrap';
|
|
|
8
8
|
import { circuitRelayServer } from '@libp2p/circuit-relay-v2';
|
|
9
9
|
import { peerIdFromString } from '@libp2p/peer-id';
|
|
10
10
|
import { generateKeyPair } from '@libp2p/crypto/keys';
|
|
11
|
+
import type { PrivateKey } from '@libp2p/interface';
|
|
11
12
|
import { clusterService } from './cluster/service.js';
|
|
12
13
|
import { repoService } from './repo/service.js';
|
|
13
14
|
import { StorageRepo } from './storage/storage-repo.js';
|
|
@@ -97,6 +98,16 @@ export type NodeOptions = {
|
|
|
97
98
|
|
|
98
99
|
/** Optional persistent store for 2PC transaction state (enables crash recovery) */
|
|
99
100
|
transactionStateStore?: ITransactionStateStore;
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* Optional Ed25519 private key for this node. When provided, the libp2p
|
|
104
|
+
* node uses this identity instead of generating a fresh keypair. Use this
|
|
105
|
+
* to persist peer identity across process restarts.
|
|
106
|
+
*
|
|
107
|
+
* Accepts a libp2p `PrivateKey` (as returned by `generateKeyPair('Ed25519')`
|
|
108
|
+
* or `privateKeyFromProtobuf(...)` from `@libp2p/crypto/keys`).
|
|
109
|
+
*/
|
|
110
|
+
privateKey?: PrivateKey;
|
|
100
111
|
};
|
|
101
112
|
|
|
102
113
|
function resolveStorage(provider: RawStorageProvider | undefined): IRawStorage {
|
|
@@ -156,8 +167,7 @@ export async function createLibp2pNodeBase(
|
|
|
156
167
|
}
|
|
157
168
|
};
|
|
158
169
|
|
|
159
|
-
|
|
160
|
-
const nodePrivateKey = await generateKeyPair('Ed25519');
|
|
170
|
+
const nodePrivateKey = options.privateKey ?? await generateKeyPair('Ed25519');
|
|
161
171
|
|
|
162
172
|
const listenAddrs = options.listenAddrs ?? defaults.listenAddrs;
|
|
163
173
|
const transports = options.transports ?? defaults.transports;
|
|
@@ -383,7 +393,8 @@ export async function createLibp2pNodeBase(
|
|
|
383
393
|
const restorationCoordinatorV2 = new RestorationCoordinator(
|
|
384
394
|
fretAdapter,
|
|
385
395
|
{ connect: (pid, protocol) => node.dialProtocol(pid as Parameters<typeof node.dialProtocol>[0], [protocol]) },
|
|
386
|
-
`/optimystic/${options.networkName}
|
|
396
|
+
`/optimystic/${options.networkName}`,
|
|
397
|
+
node.peerId.toString()
|
|
387
398
|
);
|
|
388
399
|
|
|
389
400
|
// Update restore callback to use new coordinator
|
|
@@ -27,7 +27,9 @@ export class RestorationCoordinator {
|
|
|
27
27
|
constructor(
|
|
28
28
|
private readonly fretAdapter: ArachnodeFretAdapter,
|
|
29
29
|
private readonly peerNetwork: IPeerNetwork,
|
|
30
|
-
private readonly protocolPrefix: string
|
|
30
|
+
private readonly protocolPrefix: string,
|
|
31
|
+
/** Optional self peer id — used to skip dialing self on solo/bootstrap nodes. */
|
|
32
|
+
private readonly selfPeerId?: string
|
|
31
33
|
) {}
|
|
32
34
|
|
|
33
35
|
private readonly log = createLogger('storage:restoration')
|
|
@@ -43,7 +45,18 @@ export class RestorationCoordinator {
|
|
|
43
45
|
const myPeers = await this.getMyRingPeers(blockId);
|
|
44
46
|
const myRingDepth = this.getMyRingDepth();
|
|
45
47
|
|
|
46
|
-
|
|
48
|
+
// Avoid dialing self: on a solo/bootstrap node with no listenAddrs, dialing self
|
|
49
|
+
// either hangs or fails noisily. Filter self out of the ring-peer list so the loop
|
|
50
|
+
// below can no-op cleanly when self is the only candidate.
|
|
51
|
+
const nonSelfMyPeers = this.selfPeerId
|
|
52
|
+
? myPeers.filter(p => p !== this.selfPeerId)
|
|
53
|
+
: myPeers;
|
|
54
|
+
if (nonSelfMyPeers.length === 0 && myRingDepth <= 0) {
|
|
55
|
+
this.log('restore:solo-node-skip blockId=%s', blockId);
|
|
56
|
+
return undefined;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
for (const peerId of nonSelfMyPeers) {
|
|
47
60
|
const archive = await this.queryPeer(peerId, blockId, rev);
|
|
48
61
|
if (archive) {
|
|
49
62
|
this.recordSuccess(myRingDepth, blockId, Date.now() - startTime);
|
|
@@ -55,10 +68,11 @@ export class RestorationCoordinator {
|
|
|
55
68
|
for (let ringDepth = myRingDepth - 1; ringDepth >= 0; ringDepth--) {
|
|
56
69
|
const storagePeers = this.fretAdapter.findPeersAtRing(ringDepth);
|
|
57
70
|
|
|
58
|
-
// Filter to peers responsible for this block's partition
|
|
59
|
-
const responsiblePeers = this.filterByPartition(storagePeers, blockId, ringDepth)
|
|
71
|
+
// Filter to peers responsible for this block's partition (skip self — cannot dial self).
|
|
72
|
+
const responsiblePeers = this.filterByPartition(storagePeers, blockId, ringDepth)
|
|
73
|
+
.filter(p => !this.selfPeerId || p !== this.selfPeerId);
|
|
60
74
|
|
|
61
|
-
|
|
75
|
+
for (const peerIdStr of responsiblePeers) {
|
|
62
76
|
const archive = await this.queryPeer(peerIdStr, blockId, rev);
|
|
63
77
|
if (archive) {
|
|
64
78
|
this.recordSuccess(ringDepth, blockId, Date.now() - startTime);
|