@optimystic/db-p2p 0.24.0 → 0.24.2

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.
Files changed (60) hide show
  1. package/dist/src/cluster/service.d.ts +8 -0
  2. package/dist/src/cluster/service.d.ts.map +1 -1
  3. package/dist/src/cluster/service.js +16 -4
  4. package/dist/src/cluster/service.js.map +1 -1
  5. package/dist/src/cohort-topic/host.js +34 -11
  6. package/dist/src/cohort-topic/host.js.map +1 -1
  7. package/dist/src/cohort-topic/stream-util.d.ts +25 -11
  8. package/dist/src/cohort-topic/stream-util.d.ts.map +1 -1
  9. package/dist/src/cohort-topic/stream-util.js +31 -19
  10. package/dist/src/cohort-topic/stream-util.js.map +1 -1
  11. package/dist/src/libp2p-key-network.d.ts +68 -0
  12. package/dist/src/libp2p-key-network.d.ts.map +1 -1
  13. package/dist/src/libp2p-key-network.js +123 -14
  14. package/dist/src/libp2p-key-network.js.map +1 -1
  15. package/dist/src/libp2p-node-base.d.ts.map +1 -1
  16. package/dist/src/libp2p-node-base.js +8 -5
  17. package/dist/src/libp2p-node-base.js.map +1 -1
  18. package/dist/src/logger.d.ts +2 -2
  19. package/dist/src/logger.js +2 -2
  20. package/dist/src/matchmaking/query-transport.js +3 -3
  21. package/dist/src/matchmaking/query-transport.js.map +1 -1
  22. package/dist/src/peer-address-book.d.ts +69 -0
  23. package/dist/src/peer-address-book.d.ts.map +1 -1
  24. package/dist/src/peer-address-book.js +110 -15
  25. package/dist/src/peer-address-book.js.map +1 -1
  26. package/dist/src/reactivity/notify-transport.d.ts +4 -4
  27. package/dist/src/reactivity/notify-transport.js +6 -6
  28. package/dist/src/reactivity/notify-transport.js.map +1 -1
  29. package/dist/src/reactivity/push-state-gossip.js +2 -2
  30. package/dist/src/reactivity/push-state-gossip.js.map +1 -1
  31. package/dist/src/reactivity/recover-transport.d.ts +6 -2
  32. package/dist/src/reactivity/recover-transport.d.ts.map +1 -1
  33. package/dist/src/reactivity/recover-transport.js +7 -3
  34. package/dist/src/reactivity/recover-transport.js.map +1 -1
  35. package/dist/src/repo/service.d.ts +6 -0
  36. package/dist/src/repo/service.d.ts.map +1 -1
  37. package/dist/src/repo/service.js +12 -2
  38. package/dist/src/repo/service.js.map +1 -1
  39. package/dist/src/routing/libp2p-known-peers.d.ts.map +1 -1
  40. package/dist/src/routing/libp2p-known-peers.js +5 -0
  41. package/dist/src/routing/libp2p-known-peers.js.map +1 -1
  42. package/dist/src/testing/cohort-topic-mesh-harness.d.ts +13 -6
  43. package/dist/src/testing/cohort-topic-mesh-harness.d.ts.map +1 -1
  44. package/dist/src/testing/cohort-topic-mesh-harness.js +15 -6
  45. package/dist/src/testing/cohort-topic-mesh-harness.js.map +1 -1
  46. package/package.json +3 -3
  47. package/src/cluster/service.ts +305 -293
  48. package/src/cohort-topic/host.ts +2932 -2901
  49. package/src/cohort-topic/stream-util.ts +147 -135
  50. package/src/libp2p-key-network.ts +1235 -1120
  51. package/src/libp2p-node-base.ts +1678 -1675
  52. package/src/logger.ts +27 -27
  53. package/src/matchmaking/query-transport.ts +492 -492
  54. package/src/peer-address-book.ts +266 -149
  55. package/src/reactivity/notify-transport.ts +144 -144
  56. package/src/reactivity/push-state-gossip.ts +291 -291
  57. package/src/reactivity/recover-transport.ts +412 -408
  58. package/src/repo/service.ts +323 -313
  59. package/src/routing/libp2p-known-peers.ts +31 -26
  60. package/src/testing/cohort-topic-mesh-harness.ts +673 -663
@@ -1,19 +1,26 @@
1
1
  /**
2
2
  * Single-frame libp2p stream helpers, shared by cohort-topic, matchmaking, and reactivity.
3
3
  *
4
- * These protocols exchange a single self-delimiting cohort frame each way (the db-core wire codec
5
- * already length-prefixes the body), so request/response is one `send` + one bounded read. This
6
- * mirrors FRET's `rpc/maybe-act.ts` and reuses FRET's exported `readAllBounded`, keeping the stream
7
- * lifecycle (open send close-write read close) consistent across both protocol families.
4
+ * These protocols exchange a single varint-length-prefixed frame each way, via FRET's exported
5
+ * `sendFramed` / `readFramed` pair — the varint prefix is what delimits the frame on the wire
6
+ * (the db-core codec's own internal length prefix travels *inside* the framed body and plays no
7
+ * part in stream delimiting). Request/response is one framed send + one framed read, matching
8
+ * FRET's own four RPC protocols and the `it-length-prefixed` framing the rest of `db-p2p`
9
+ * (`protocol-client.ts`, the cluster/repo/sync/dispute services) already uses, keeping the stream
10
+ * lifecycle (open → send → close-write → read → close) consistent across all protocol families.
11
+ *
12
+ * NOTE: every `sendFramed` here discards its boolean result (`false` = "write accepted, transport
13
+ * buffer now full"), so these helpers apply no backpressure. Harmless while each protocol writes
14
+ * exactly one bounded frame per stream and then closes; if a caller ever writes repeatedly on one
15
+ * stream, honor the flag by awaiting the stream's `'drain'` event the way FRET's `rpcRequest` does.
8
16
  *
9
17
  * {@link openStream} deliberately duplicates FRET's `rpc/protocols.ts#openRpcStream` connection
10
- * selection, because FRET does not export that helper (its package `exports` map exposes only the
11
- * root entry, so there is no deep import either).
12
- * NOTE: if FRET ever exports `openRpcStream`, delete {@link openStream} and call it instead — the
13
- * divergence between the two copies is exactly what let the missing `runOnLimitedConnection` flag
14
- * hide here. Same applies to `libp2p-key-network.ts#connect`, which is a third copy.
18
+ * selection. FRET now exports `openRpcStream`, but the accepted tradeoff on
19
+ * {@link STREAM_OPTIONS} is why the local copy stays: FRET's helper pins `negotiateFully: false`,
20
+ * which this module deliberately does not set swapping would silently reverse that decision.
21
+ * Same applies to `libp2p-key-network.ts#connect`, which is a third copy.
15
22
  */
16
- import { readAllBounded } from "p2p-fret";
23
+ import { readFramed, sendFramed } from "p2p-fret";
17
24
  /** Default per-frame ceiling — matches FRET's 512 KiB maybe-act bound. */
18
25
  export const DEFAULT_STREAM_MAX_BYTES = 512 * 1024;
19
26
  /**
@@ -52,7 +59,7 @@ async function openStream(node, peer, protocol) {
52
59
  * Open `protocol` to `peer`, send `frame`, and read the bounded reply frame.
53
60
  *
54
61
  * NOTE: takes no `AbortSignal`, so a caller cannot set its own deadline. Bounded today anyway —
55
- * `readAllBounded` self-times-out at 5s and `dialProtocol` falls back to libp2p's default dial
62
+ * `readFramed` self-times-out at 5s and `dialProtocol` falls back to libp2p's default dial
56
63
  * timeout (~30s) — so an unresponsive peer is slow, not hung. If a caller ever needs a tighter
57
64
  * deadline (`membership-source.fetch` walks candidate peers *sequentially*, so its worst case is
58
65
  * peers × dial-timeout), thread a signal through {@link openStream} the way
@@ -62,9 +69,9 @@ export async function requestResponse(node, peer, protocol, frame, maxBytes = DE
62
69
  let stream;
63
70
  try {
64
71
  stream = await openStream(node, peer, protocol);
65
- stream.send(frame);
72
+ sendFramed(stream, frame);
66
73
  await stream.close();
67
- return await readAllBounded(stream, maxBytes);
74
+ return await readFramed(stream, maxBytes);
68
75
  }
69
76
  finally {
70
77
  if (stream != null) {
@@ -82,7 +89,7 @@ export async function sendOneWay(node, peer, protocol, frame) {
82
89
  let stream;
83
90
  try {
84
91
  stream = await openStream(node, peer, protocol);
85
- stream.send(frame);
92
+ sendFramed(stream, frame);
86
93
  await stream.close();
87
94
  }
88
95
  finally {
@@ -96,16 +103,21 @@ export async function sendOneWay(node, peer, protocol, frame) {
96
103
  }
97
104
  }
98
105
  }
99
- /** Register a request/response handler for `protocol`: read one bounded frame, reply with one frame. */
106
+ /**
107
+ * Register a request/response handler for `protocol`: read one bounded frame, reply with one frame.
108
+ *
109
+ * A `handle` that returns `undefined` (a drop, a gate rejection, no serving engine) replies with an
110
+ * explicit **zero-length frame** rather than silence: `readFramed` treats end-of-stream as a
111
+ * truncation error, so "no reply" must travel in-band — the dialer's {@link requestResponse}
112
+ * resolves it as empty bytes, exactly what the old read-to-EOF returned for a silent close.
113
+ */
100
114
  export function handleRequestResponse(node, protocol, handle, maxBytes = DEFAULT_STREAM_MAX_BYTES) {
101
115
  void node.handle(protocol, (stream, connection) => {
102
116
  void (async () => {
103
117
  try {
104
- const frame = await readAllBounded(stream, maxBytes);
118
+ const frame = await readFramed(stream, maxBytes);
105
119
  const reply = await handle(frame, connection.remotePeer);
106
- if (reply !== undefined) {
107
- stream.send(reply);
108
- }
120
+ sendFramed(stream, reply ?? new Uint8Array(0));
109
121
  await stream.close();
110
122
  }
111
123
  catch {
@@ -1 +1 @@
1
- {"version":3,"file":"stream-util.js","sourceRoot":"","sources":["../../../src/cohort-topic/stream-util.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stream-util.js","sourceRoot":"","sources":["../../../src/cohort-topic/stream-util.ts"],"names":[],"mappings":"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"}
@@ -52,6 +52,30 @@ export declare class FindCoordinatorError extends Error {
52
52
  readonly code: FindCoordinatorErrorCode;
53
53
  constructor(code: FindCoordinatorErrorCode, message: string);
54
54
  }
55
+ /**
56
+ * `.code` on {@link SelfRelayOnlyAddressesError}. A stable string so it survives the
57
+ * `ClusterErrorEnvelope` round trip (`toClusterErrorEnvelope` carries `name` and `code`) and shows
58
+ * up as `code=SELF_RELAY_ONLY_ADDRESSES` on `ProtocolClient`'s `dial:fail` line instead of `none`.
59
+ */
60
+ export declare const SELF_RELAY_ONLY_ERROR_CODE = "SELF_RELAY_ONLY_ADDRESSES";
61
+ /**
62
+ * Thrown by {@link Libp2pKeyPeerNetwork.connect} when we hold addresses for a peer but EVERY one
63
+ * of them reaches it by relaying through this node.
64
+ *
65
+ * This is the steady state a relay reaches for its own reservation holders: the address such a
66
+ * client advertises is `/<our transport addr>/p2p/<our peer id>/p2p-circuit`, which is correct and
67
+ * useful to every node except us. Dialing it asks us to relay to the client through ourselves, so
68
+ * it can only fail — with an error text (`NoValidAddressesError`, or an `AggregateError` of
69
+ * `Can not dial self`, depending on whether the circuit transport is registered as a dialer here)
70
+ * that is indistinguishable from "nobody ever taught us an address". Retrying cannot help: once the
71
+ * client's connection drops, only the client can re-initiate. So we fail fast and distinctly,
72
+ * letting the caller's existing exclude-and-continue logic move to another cohort member instead of
73
+ * burning a dial timeout.
74
+ */
75
+ export declare class SelfRelayOnlyAddressesError extends Error {
76
+ readonly code = "SELF_RELAY_ONLY_ADDRESSES";
77
+ constructor(peer: string, protocol: string, addrCount: number);
78
+ }
55
79
  /** Snapshot format this build writes and is willing to read. Bump on any incompatible change. */
56
80
  export declare const PERSISTED_STATE_VERSION: 2;
57
81
  /**
@@ -216,6 +240,12 @@ export declare class Libp2pKeyPeerNetwork implements IKeyNetwork, IPeerNetwork {
216
240
  private readonly coordinatorCache;
217
241
  private static readonly MAX_CACHE_ENTRIES;
218
242
  private readonly log;
243
+ /**
244
+ * This instance's logger, in the shape `peer-address-book.ts` accepts. Declared once so the
245
+ * five address predicates that take a sink all report under the same peer-id-suffixed
246
+ * namespace, rather than five separately-written adapters drifting apart.
247
+ */
248
+ private readonly addressLog;
219
249
  private toCacheKey;
220
250
  /**
221
251
  * Set up connection event tracking to update high water mark and last connected time.
@@ -281,6 +311,15 @@ export declare class Libp2pKeyPeerNetwork implements IKeyNetwork, IPeerNetwork {
281
311
  * nor banned by reputation. Shared by all three places `findCoordinator` narrows a candidate
282
312
  * list — the FRET tier, the connected-peer fallback, and the retry-futility input — so the
283
313
  * futility test can never disagree with the tiers about who is pickable.
314
+ *
315
+ * NOTE: eligibility here is deliberately blind to self-dialability, so on a relay
316
+ * `findCoordinator` can still pick one of our own reservation holders and only then fail fast
317
+ * with `SelfRelayOnlyAddressesError`. The caller's exclude-and-continue walk
318
+ * (`db-core/utility/batch-coordinator.ts`) absorbs it, and each such pick now costs an
319
+ * instant refusal rather than a burned dial timeout, so it is a selection round-trip, not a
320
+ * stall — and the verdict is a live peerStore read that a stale eligibility filter would have
321
+ * to guess at. If a relay serving many reservation holders is ever measured spending real time
322
+ * walking through them, feed the verdict into the tiers instead of discovering it at dial.
284
323
  */
285
324
  private isSelectable;
286
325
  private persistState;
@@ -329,10 +368,39 @@ export declare class Libp2pKeyPeerNetwork implements IKeyNetwork, IPeerNetwork {
329
368
  * that don't populate `limits`.
330
369
  */
331
370
  private isLimitedConnection;
371
+ /**
372
+ * Open a stream to `peerId` on `protocol` — reusing a live connection when we hold one, and
373
+ * otherwise dialing.
374
+ *
375
+ * The cold path pays one `peerStore.get` before dialing, to separate two failures libp2p
376
+ * reports identically: "nobody ever taught us an address" and "every address we hold routes
377
+ * back through us" (see {@link SelfRelayOnlyAddressesError}). Only the second is diagnosed
378
+ * here; the first still dials, so an unknown peer produces libp2p's own `NoValidAddressesError`
379
+ * exactly as before. The warm path is deliberately kept clear of that read: it is only reached
380
+ * when a connection already exists, which is the case this method exists to make cheap.
381
+ */
332
382
  connect(peerId: PeerId, protocol: string, options?: AbortOptions): Promise<Stream>;
383
+ /**
384
+ * Throw {@link SelfRelayOnlyAddressesError} when every address we hold for `peerId` routes
385
+ * through us, so the caller skips a dial that cannot succeed.
386
+ *
387
+ * Holding NOTHING is left alone on purpose — that dial still happens and still fails with
388
+ * libp2p's `NoValidAddressesError`, because "we were never told an address" is a genuinely
389
+ * different condition with a genuinely different remedy (someone teaches us one; see
390
+ * `recordPeerAddresses`).
391
+ */
392
+ private assertNotSelfRelayOnly;
333
393
  private getFret;
334
394
  private getNeighborIdsForKey;
335
395
  findCoordinator(key: Uint8Array, _options?: Partial<FindCoordinatorOptions>): Promise<PeerId>;
396
+ /**
397
+ * Connection-derived addresses for the cluster record, keyed by peer id.
398
+ *
399
+ * Only OUTBOUND connections contribute — see {@link publishableConnectionAddr} for why an
400
+ * inbound connection's `remoteAddr` is an ephemeral source socket that no third party can
401
+ * reach. This is the only place `findCluster` derives addresses from connections, so the
402
+ * rule has exactly one site.
403
+ */
336
404
  private getConnectedAddrsByPeer;
337
405
  private parseMultiaddrs;
338
406
  findCluster(key: Uint8Array): Promise<ClusterPeers>;
@@ -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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"}
@@ -2,7 +2,7 @@ import { toString as u8ToString } from 'uint8arrays';
2
2
  import { peerIdFromString } from '@libp2p/peer-id';
3
3
  import { hashKey } from 'p2p-fret';
4
4
  import { createLogger, verbose } from './logger.js';
5
- import { mergePeerAddresses, validMultiaddrStrings } from './peer-address-book.js';
5
+ import { classifySelfDialability, mergePeerAddresses, publishableConnectionAddr, validMultiaddrStrings } from './peer-address-book.js';
6
6
  /**
7
7
  * Error codes surfaced by {@link Libp2pKeyPeerNetwork.findCoordinator}. Callers
8
8
  * (notably the batch-retry logic in `NetworkTransactor`) can inspect `.code`
@@ -43,6 +43,35 @@ export class FindCoordinatorError extends Error {
43
43
  this.code = code;
44
44
  }
45
45
  }
46
+ /**
47
+ * `.code` on {@link SelfRelayOnlyAddressesError}. A stable string so it survives the
48
+ * `ClusterErrorEnvelope` round trip (`toClusterErrorEnvelope` carries `name` and `code`) and shows
49
+ * up as `code=SELF_RELAY_ONLY_ADDRESSES` on `ProtocolClient`'s `dial:fail` line instead of `none`.
50
+ */
51
+ export const SELF_RELAY_ONLY_ERROR_CODE = 'SELF_RELAY_ONLY_ADDRESSES';
52
+ /**
53
+ * Thrown by {@link Libp2pKeyPeerNetwork.connect} when we hold addresses for a peer but EVERY one
54
+ * of them reaches it by relaying through this node.
55
+ *
56
+ * This is the steady state a relay reaches for its own reservation holders: the address such a
57
+ * client advertises is `/<our transport addr>/p2p/<our peer id>/p2p-circuit`, which is correct and
58
+ * useful to every node except us. Dialing it asks us to relay to the client through ourselves, so
59
+ * it can only fail — with an error text (`NoValidAddressesError`, or an `AggregateError` of
60
+ * `Can not dial self`, depending on whether the circuit transport is registered as a dialer here)
61
+ * that is indistinguishable from "nobody ever taught us an address". Retrying cannot help: once the
62
+ * client's connection drops, only the client can re-initiate. So we fail fast and distinctly,
63
+ * letting the caller's existing exclude-and-continue logic move to another cohort member instead of
64
+ * burning a dial timeout.
65
+ */
66
+ export class SelfRelayOnlyAddressesError extends Error {
67
+ code = SELF_RELAY_ONLY_ERROR_CODE;
68
+ constructor(peer, protocol, addrCount) {
69
+ super(`Peer ${peer} is reachable only through a circuit on THIS node: all ${addrCount} address(es) ` +
70
+ `we hold route back through us, so no dial for ${protocol} can succeed. ` +
71
+ `Only that peer can re-establish the connection.`);
72
+ this.name = 'SelfRelayOnlyAddressesError';
73
+ }
74
+ }
46
75
  /** Snapshot format this build writes and is willing to read. Bump on any incompatible change. */
47
76
  export const PERSISTED_STATE_VERSION = 2;
48
77
  export class Libp2pKeyPeerNetwork {
@@ -136,6 +165,12 @@ export class Libp2pKeyPeerNetwork {
136
165
  coordinatorCache = new Map();
137
166
  static MAX_CACHE_ENTRIES = 1000;
138
167
  log;
168
+ /**
169
+ * This instance's logger, in the shape `peer-address-book.ts` accepts. Declared once so the
170
+ * five address predicates that take a sink all report under the same peer-id-suffixed
171
+ * namespace, rather than five separately-written adapters drifting apart.
172
+ */
173
+ addressLog = (fmt, ...args) => this.log(fmt, ...args);
139
174
  toCacheKey(key) { return u8ToString(key, 'base64url'); }
140
175
  /**
141
176
  * Set up connection event tracking to update high water mark and last connected time.
@@ -272,6 +307,15 @@ export class Libp2pKeyPeerNetwork {
272
307
  * nor banned by reputation. Shared by all three places `findCoordinator` narrows a candidate
273
308
  * list — the FRET tier, the connected-peer fallback, and the retry-futility input — so the
274
309
  * futility test can never disagree with the tiers about who is pickable.
310
+ *
311
+ * NOTE: eligibility here is deliberately blind to self-dialability, so on a relay
312
+ * `findCoordinator` can still pick one of our own reservation holders and only then fail fast
313
+ * with `SelfRelayOnlyAddressesError`. The caller's exclude-and-continue walk
314
+ * (`db-core/utility/batch-coordinator.ts`) absorbs it, and each such pick now costs an
315
+ * instant refusal rather than a burned dial timeout, so it is a selection round-trip, not a
316
+ * stall — and the verdict is a live peerStore read that a stale eligibility filter would have
317
+ * to guess at. If a relay serving many reservation holders is ever measured spending real time
318
+ * walking through them, feed the verdict into the tiers instead of discovering it at dial.
275
319
  */
276
320
  isSelectable(id, excluded) {
277
321
  return !excluded.has(id) && !(this.reputation?.isBanned(id));
@@ -407,7 +451,7 @@ export class Libp2pKeyPeerNetwork {
407
451
  * protocol client dials through.
408
452
  */
409
453
  recordPeerAddresses(peerId, multiaddrs) {
410
- mergePeerAddresses(this.libp2p, peerId, multiaddrs, (fmt, ...args) => this.log(fmt, ...args));
454
+ mergePeerAddresses(this.libp2p, peerId, multiaddrs, this.addressLog);
411
455
  }
412
456
  getCachedCoordinator(key) {
413
457
  const k = this.toCacheKey(key);
@@ -430,7 +474,18 @@ export class Libp2pKeyPeerNetwork {
430
474
  const addr = c.remoteAddr?.toString?.();
431
475
  return addr != null && addr.includes('/p2p-circuit');
432
476
  }
433
- connect(peerId, protocol, options) {
477
+ /**
478
+ * Open a stream to `peerId` on `protocol` — reusing a live connection when we hold one, and
479
+ * otherwise dialing.
480
+ *
481
+ * The cold path pays one `peerStore.get` before dialing, to separate two failures libp2p
482
+ * reports identically: "nobody ever taught us an address" and "every address we hold routes
483
+ * back through us" (see {@link SelfRelayOnlyAddressesError}). Only the second is diagnosed
484
+ * here; the first still dials, so an unknown peer produces libp2p's own `NoValidAddressesError`
485
+ * exactly as before. The warm path is deliberately kept clear of that read: it is only reached
486
+ * when a connection already exists, which is the case this method exists to make cheap.
487
+ */
488
+ async connect(peerId, protocol, options) {
434
489
  const conns = this.libp2p.getConnections?.(peerId) ?? [];
435
490
  // Filter to only-open connections so a closing/closed entry that libp2p
436
491
  // hasn't yet evicted from its index doesn't get picked up here.
@@ -456,12 +511,38 @@ export class Libp2pKeyPeerNetwork {
456
511
  negotiateFully: false
457
512
  });
458
513
  }
514
+ await this.assertNotSelfRelayOnly(peerId, protocol, options);
459
515
  // Forward the caller's AbortSignal so a per-peer dial deadline (enforced
460
516
  // upstream by ProtocolClient.processMessage) can actually cancel a stuck
461
517
  // dial — without this, libp2p falls back to its built-in dial timeout
462
518
  // (default ~30s) and the caller's tighter deadline is decorative.
463
519
  const dialOptions = { runOnLimitedConnection: true, negotiateFully: false, signal: options?.signal };
464
- return this.libp2p.dialProtocol(peerId, [protocol], dialOptions);
520
+ return await this.libp2p.dialProtocol(peerId, [protocol], dialOptions);
521
+ }
522
+ /**
523
+ * Throw {@link SelfRelayOnlyAddressesError} when every address we hold for `peerId` routes
524
+ * through us, so the caller skips a dial that cannot succeed.
525
+ *
526
+ * Holding NOTHING is left alone on purpose — that dial still happens and still fails with
527
+ * libp2p's `NoValidAddressesError`, because "we were never told an address" is a genuinely
528
+ * different condition with a genuinely different remedy (someone teaches us one; see
529
+ * `recordPeerAddresses`).
530
+ */
531
+ async assertNotSelfRelayOnly(peerId, protocol, options) {
532
+ // NOTE: this costs one `peerStore.get` on EVERY cold dial, not only on relays, and libp2p's
533
+ // own dial queue reads the same record moments later — so a cold dial pays the peerStore
534
+ // twice. Unmeasured, and negligible against a dial's own cost; if cold-dial latency or
535
+ // peerStore contention ever shows up in a profile, hoist the verdict into the dial path
536
+ // rather than reading ahead of it.
537
+ const idStr = peerId.toString();
538
+ const held = (await this.getPeerStoreAddrsByPeer([idStr]))[idStr] ?? [];
539
+ // A caller that cancelled while we were reading the peerStore is owed ITS reason, not a
540
+ // verdict we computed from a snapshot it no longer cares about.
541
+ options?.signal?.throwIfAborted();
542
+ if (classifySelfDialability(held, this.libp2p.peerId.toString(), this.addressLog) !== 'self-relay-only')
543
+ return;
544
+ this.log('connect:self-relay-only peer=%s protocol=%s addrs=%d', idStr.substring(0, 12), protocol, held.length);
545
+ throw new SelfRelayOnlyAddressesError(idStr, protocol, held.length);
465
546
  }
466
547
  getFret() {
467
548
  const svc = this.libp2p.services?.fret;
@@ -684,19 +765,29 @@ export class Libp2pKeyPeerNetwork {
684
765
  this.log('findCoordinator:all-excluded key=%s self=%s', keyStr, self.toString().substring(0, 12));
685
766
  throw new FindCoordinatorError(FIND_COORDINATOR_ERROR_CODES.NO_COORDINATOR_AVAILABLE, 'No coordinator available for key (all candidates excluded)');
686
767
  }
768
+ /**
769
+ * Connection-derived addresses for the cluster record, keyed by peer id.
770
+ *
771
+ * Only OUTBOUND connections contribute — see {@link publishableConnectionAddr} for why an
772
+ * inbound connection's `remoteAddr` is an ephemeral source socket that no third party can
773
+ * reach. This is the only place `findCluster` derives addresses from connections, so the
774
+ * rule has exactly one site.
775
+ */
687
776
  getConnectedAddrsByPeer() {
688
777
  const conns = this.libp2p.getConnections();
689
778
  const byPeer = {};
690
779
  for (const c of conns) {
780
+ const addr = publishableConnectionAddr(c, this.addressLog);
781
+ if (addr === undefined)
782
+ continue;
691
783
  const id = c.remotePeer.toString();
692
- const addr = c.remoteAddr?.toString?.();
693
- if (addr)
694
- (byPeer[id] ??= []).push(addr);
784
+ const forPeer = byPeer[id] ??= [];
785
+ forPeer.push(addr);
695
786
  }
696
787
  return byPeer;
697
788
  }
698
789
  parseMultiaddrs(addrs) {
699
- return validMultiaddrStrings(addrs, (fmt, ...args) => this.log(fmt, ...args));
790
+ return validMultiaddrStrings(addrs, this.addressLog);
700
791
  }
701
792
  async findCluster(key) {
702
793
  const t0 = Date.now();
@@ -789,6 +880,13 @@ export class Libp2pKeyPeerNetwork {
789
880
  // reported symptom: clean membership logs on every node while every dial to the
790
881
  // addressless member died instantly and the write never completed.
791
882
  const addressless = [];
883
+ // The OTHER way a member can be undialable by us: we hold addresses, but every one of
884
+ // them is a circuit through this node — the steady state for our own reservation holders.
885
+ // Counted separately because the two have different remedies (be taught an address, vs.
886
+ // wait for the client to re-dial us) and libp2p's dial error cannot tell them apart.
887
+ // These addresses are still PUBLISHED: a cohort sibling reaching the member through our
888
+ // relay is the working path, and dropping them would break it.
889
+ const selfRelayOnly = [];
792
890
  for (const idStr of ids) {
793
891
  if (idStr === selfId) {
794
892
  const raw = this.libp2p.peerId.publicKey?.raw ?? new Uint8Array();
@@ -797,10 +895,12 @@ export class Libp2pKeyPeerNetwork {
797
895
  }
798
896
  const connectedStrings = connectedByPeer[idStr] ?? [];
799
897
  const peerStoreStrings = peerStoreAddrs[idStr] ?? [];
800
- // De-duplicate while preserving connected-first ordering. The
801
- // connected multiaddr is the one libp2p just used to reach this peer
802
- // and is the most reliable; peerStore addrs are the fallback for
803
- // cohort members we know-of but aren't currently connected to.
898
+ // De-duplicate while preserving connected-first ordering. A connected
899
+ // multiaddr that reaches this list is one we OUTBOUND-dialed, so it is the
900
+ // address libp2p just used to reach this peer and is the most reliable;
901
+ // peerStore addrs are the fallback for cohort members we know-of but aren't
902
+ // currently connected to — and the only source for a member that only ever
903
+ // dialed US (see `getConnectedAddrsByPeer`).
804
904
  const merged = Array.from(new Set([...connectedStrings, ...peerStoreStrings]));
805
905
  const parsed = this.parseMultiaddrs(merged);
806
906
  const remotePeerId = peerIdFromString(idStr);
@@ -811,8 +911,11 @@ export class Libp2pKeyPeerNetwork {
811
911
  // retry/exclude logic takes over — we intentionally do NOT drop
812
912
  // addressless members here, because shrinking the cohort below
813
913
  // `clusterSize` puts consensus supermajority out of reach.
814
- if (parsed.length === 0)
914
+ const dialability = classifySelfDialability(parsed, selfId, this.addressLog);
915
+ if (dialability === 'none')
815
916
  addressless.push(idStr.substring(0, 12));
917
+ else if (dialability === 'self-relay-only')
918
+ selfRelayOnly.push(idStr.substring(0, 12));
816
919
  peers[idStr] = { multiaddrs: parsed, publicKey: u8ToString(raw, 'base64url') };
817
920
  }
818
921
  // Unconditional (not gated on `verbose`): this is the one line that turns a silent
@@ -822,7 +925,13 @@ export class Libp2pKeyPeerNetwork {
822
925
  if (addressless.length > 0) {
823
926
  this.log('findCluster:addressless-members key=%s count=%d of=%d peers=%o', keyStr, addressless.length, Object.keys(peers).length, addressless);
824
927
  }
825
- this.log('findCluster:done key=%s ms=%d peers=%d addressless=%d', keyStr, Date.now() - t0, Object.keys(peers).length, addressless.length);
928
+ // Same reasoning, second condition: a non-zero count here means we DO hold addresses for
929
+ // these members and still cannot dial them, because the only route we know runs through
930
+ // our own relay. No amount of retrying changes that (see `SelfRelayOnlyAddressesError`).
931
+ if (selfRelayOnly.length > 0) {
932
+ this.log('findCluster:self-relay-only-members key=%s count=%d of=%d peers=%o', keyStr, selfRelayOnly.length, Object.keys(peers).length, selfRelayOnly);
933
+ }
934
+ this.log('findCluster:done key=%s ms=%d peers=%d addressless=%d selfRelayOnly=%d', keyStr, Date.now() - t0, Object.keys(peers).length, addressless.length, selfRelayOnly.length);
826
935
  return peers;
827
936
  }
828
937
  /**
@@ -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 +1 @@
1
- {"version":3,"file":"libp2p-node-base.d.ts","sourceRoot":"","sources":["../../src/libp2p-node-base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"libp2p-node-base.d.ts","sourceRoot":"","sources":["../../src/libp2p-node-base.ts"],"names":[],"mappings":"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"}