@serfab/cadre-core 0.12.0 → 1.0.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/README.md +23 -8
- package/dist/bootstrap-peer-store-file.js +2 -2
- package/dist/bootstrap-peer-store.d.ts +32 -12
- package/dist/bootstrap-peer-store.js +41 -15
- package/dist/bootstrap-peer-store.js.map +1 -1
- package/dist/cadre-node.d.ts +883 -102
- package/dist/cadre-node.js +1800 -209
- package/dist/cadre-node.js.map +1 -1
- package/dist/control-authorization.d.ts +2 -2
- package/dist/control-authorization.js +1 -0
- package/dist/control-authorization.js.map +1 -1
- package/dist/control-cohort.d.ts +13 -26
- package/dist/control-cohort.js +0 -26
- package/dist/control-cohort.js.map +1 -1
- package/dist/control-database.d.ts +318 -44
- package/dist/control-database.js +516 -74
- package/dist/control-database.js.map +1 -1
- package/dist/control-read-retry.d.ts +40 -11
- package/dist/control-read-retry.js +48 -15
- package/dist/control-read-retry.js.map +1 -1
- package/dist/control-retry.d.ts +58 -3
- package/dist/control-retry.js +58 -3
- package/dist/control-retry.js.map +1 -1
- package/dist/control-schema.d.ts +1 -1
- package/dist/control-schema.js +133 -21
- package/dist/control-schema.js.map +1 -1
- package/dist/control-write-retry.d.ts +80 -11
- package/dist/control-write-retry.js +168 -29
- package/dist/control-write-retry.js.map +1 -1
- package/dist/enrolled-machine-store-file.d.ts +13 -0
- package/dist/enrolled-machine-store-file.js +41 -0
- package/dist/enrolled-machine-store-file.js.map +1 -0
- package/dist/enrolled-machine-store.d.ts +81 -0
- package/dist/enrolled-machine-store.js +225 -0
- package/dist/enrolled-machine-store.js.map +1 -0
- package/dist/file-durable-slot.js +5 -3
- package/dist/file-durable-slot.js.map +1 -1
- package/dist/index.d.ts +17 -8
- package/dist/index.js +54 -9
- package/dist/index.js.map +1 -1
- package/dist/membership-connection-gater.d.ts +15 -1
- package/dist/membership-connection-gater.js +9 -3
- package/dist/membership-connection-gater.js.map +1 -1
- package/dist/node-local-snapshot.d.ts +21 -7
- package/dist/node-local-snapshot.js +30 -9
- package/dist/node-local-snapshot.js.map +1 -1
- package/dist/peer-dial.d.ts +143 -0
- package/dist/peer-dial.js +176 -0
- package/dist/peer-dial.js.map +1 -0
- package/dist/{strand-backfill.d.ts → peer-join-backfill.d.ts} +49 -20
- package/dist/{strand-backfill.js → peer-join-backfill.js} +133 -52
- package/dist/peer-join-backfill.js.map +1 -0
- package/dist/relay-addrs.d.ts +160 -49
- package/dist/relay-addrs.js +287 -60
- package/dist/relay-addrs.js.map +1 -1
- package/dist/relay-reservation.d.ts +71 -3
- package/dist/relay-reservation.js +116 -8
- package/dist/relay-reservation.js.map +1 -1
- package/dist/seed-bootstrap.d.ts +30 -1
- package/dist/seed-bootstrap.js +62 -17
- package/dist/seed-bootstrap.js.map +1 -1
- package/dist/storage-scope.d.ts +62 -0
- package/dist/storage-scope.js +75 -0
- package/dist/storage-scope.js.map +1 -0
- package/dist/strand-database.d.ts +41 -11
- package/dist/strand-database.js +48 -18
- package/dist/strand-database.js.map +1 -1
- package/dist/strand-first-sync-gate.d.ts +152 -0
- package/dist/strand-first-sync-gate.js +208 -0
- package/dist/strand-first-sync-gate.js.map +1 -0
- package/dist/strand-formation-manager.d.ts +99 -5
- package/dist/strand-formation-manager.js +119 -8
- package/dist/strand-formation-manager.js.map +1 -1
- package/dist/strand-formation-protocol.d.ts +97 -3
- package/dist/strand-formation-protocol.js +108 -2
- package/dist/strand-formation-protocol.js.map +1 -1
- package/dist/strand-instance-manager.d.ts +389 -19
- package/dist/strand-instance-manager.js +678 -65
- package/dist/strand-instance-manager.js.map +1 -1
- package/dist/strand-member-key.d.ts +20 -12
- package/dist/strand-member-key.js +20 -12
- package/dist/strand-member-key.js.map +1 -1
- package/dist/strand-member-registry.js +3 -0
- package/dist/strand-member-registry.js.map +1 -1
- package/dist/strand-membership-reconciler.d.ts +361 -0
- package/dist/strand-membership-reconciler.js +548 -0
- package/dist/strand-membership-reconciler.js.map +1 -0
- package/dist/strand-membership-writer.d.ts +143 -11
- package/dist/strand-membership-writer.js +419 -135
- package/dist/strand-membership-writer.js.map +1 -1
- package/dist/strand-network-config.d.ts +116 -0
- package/dist/strand-network-config.js +192 -0
- package/dist/strand-network-config.js.map +1 -0
- package/dist/strand-revocation-enforcer.d.ts +392 -0
- package/dist/strand-revocation-enforcer.js +533 -0
- package/dist/strand-revocation-enforcer.js.map +1 -0
- package/dist/strand-solicitation.d.ts +17 -1
- package/dist/strand-solicitation.js +13 -2
- package/dist/strand-solicitation.js.map +1 -1
- package/dist/strand-wake-protocol.d.ts +11 -7
- package/dist/strand-wake-protocol.js +20 -52
- package/dist/strand-wake-protocol.js.map +1 -1
- package/dist/strand-watcher.js +12 -1
- package/dist/strand-watcher.js.map +1 -1
- package/dist/timed-step.d.ts +12 -0
- package/dist/timed-step.js +28 -0
- package/dist/timed-step.js.map +1 -0
- package/dist/timeout-scheduler.d.ts +19 -0
- package/dist/timeout-scheduler.js +22 -0
- package/dist/timeout-scheduler.js.map +1 -0
- package/dist/types.d.ts +472 -46
- package/dist/types.js +7 -1
- package/dist/types.js.map +1 -1
- package/package.json +16 -8
- package/src/bootstrap-peer-store-file.ts +2 -2
- package/src/bootstrap-peer-store.ts +69 -27
- package/src/cadre-node.ts +1926 -228
- package/src/control-authorization.ts +2 -1
- package/src/control-cohort.ts +122 -130
- package/src/control-database.ts +586 -74
- package/src/control-read-retry.ts +202 -167
- package/src/control-retry.ts +297 -190
- package/src/control-schema.ts +133 -21
- package/src/control-write-retry.ts +525 -383
- package/src/enrolled-machine-store-file.ts +43 -0
- package/src/enrolled-machine-store.ts +280 -0
- package/src/file-durable-slot.ts +5 -3
- package/src/index.ts +134 -15
- package/src/membership-connection-gater.ts +9 -3
- package/src/node-local-snapshot.ts +38 -9
- package/src/peer-addr-book.ts +251 -250
- package/src/peer-dial.ts +215 -0
- package/src/{strand-backfill.ts → peer-join-backfill.ts} +478 -389
- package/src/relay-addrs.ts +458 -218
- package/src/relay-reservation.ts +951 -828
- package/src/seed-bootstrap.ts +76 -18
- package/src/storage-scope.ts +78 -0
- package/src/strand-database.ts +61 -21
- package/src/strand-first-sync-gate.ts +258 -0
- package/src/strand-formation-manager.ts +162 -8
- package/src/strand-formation-protocol.ts +850 -692
- package/src/strand-instance-manager.ts +877 -74
- package/src/strand-member-key.ts +20 -12
- package/src/strand-member-registry.ts +3 -0
- package/src/strand-membership-reconciler.ts +680 -0
- package/src/strand-membership-writer.ts +550 -190
- package/src/strand-network-config.ts +250 -0
- package/src/strand-revocation-enforcer.ts +653 -0
- package/src/strand-solicitation.ts +499 -471
- package/src/strand-wake-protocol.ts +21 -66
- package/src/strand-watcher.ts +325 -314
- package/src/timed-step.ts +28 -0
- package/src/timeout-scheduler.ts +28 -0
- package/src/types.ts +487 -52
- package/dist/strand-backfill.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"strand-membership-writer.js","sourceRoot":"","sources":["../src/strand-membership-writer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"strand-membership-writer.js","sourceRoot":"","sources":["../src/strand-membership-writer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Derive the per-STRAND-node view of the machine's one `NetworkConfig`.
|
|
3
|
+
*
|
|
4
|
+
* A cadre machine runs one **control** libp2p node plus one more libp2p node per
|
|
5
|
+
* strand, and every one of them is built from the SAME operator-written
|
|
6
|
+
* `NetworkConfig` block. Two of its fields describe a single endpoint on the host
|
|
7
|
+
* and therefore cannot be inherited literally by a second node on that host:
|
|
8
|
+
*
|
|
9
|
+
* - **`listenAddrs` with a fixed port.** `cadre-cli`'s example config ships
|
|
10
|
+
* `/ip4/0.0.0.0/tcp/4001`. The control node binds it first; every strand node
|
|
11
|
+
* then tries to bind the same port and fails with `EADDRINUSE`, so a machine
|
|
12
|
+
* configured with a fixed port could not start any strand at all.
|
|
13
|
+
* - **`announceAddrs` / `appendAnnounceAddrs`.** Any concrete announce entry names
|
|
14
|
+
* a port, and that port is the CONTROL node's. A strand node advertising it
|
|
15
|
+
* sends peers to the control node — and `announceAddrs` REPLACES the advertised
|
|
16
|
+
* set (see `announce-addrs.ts`), so that wrong address would be the ONLY thing
|
|
17
|
+
* the strand node publishes.
|
|
18
|
+
*
|
|
19
|
+
* The reachability model this rests on: **a strand node is not separately dialable
|
|
20
|
+
* at a published fixed address.** It is reached through (a) its ephemeral direct
|
|
21
|
+
* listener plus the addresses peers observe for it, and (b) circuit relay —
|
|
22
|
+
* `network.relayAddrs` resolves to ONE bare `/p2p-circuit` SEARCH listen entry PER
|
|
23
|
+
* relay, and the strand runtime (`strand-instance-manager.ts`) runs one
|
|
24
|
+
* reservation supervisor per relay over the dial addrs this module returns beside
|
|
25
|
+
* them ({@link StrandNodeAddrs.relayAddrs}). The same route the control node takes,
|
|
26
|
+
* for the same reason the configured `<relay>/p2p-circuit` shape was retired
|
|
27
|
+
* everywhere (`relay-addrs.ts`): a configured listener loses its address on a relay
|
|
28
|
+
* restart, on either side hanging up, and on libp2p's own reservation refresh, and
|
|
29
|
+
* recovers from none of them. One search entry per relay rather than one for all,
|
|
30
|
+
* because a search listener registers exactly ONE pending reservation and libp2p
|
|
31
|
+
* fills a pending reservation with exactly one relay — so N relays need N listeners,
|
|
32
|
+
* each with a supervisor that owns it.
|
|
33
|
+
*
|
|
34
|
+
* A hand-written `<relay>/p2p-circuit` entry in `listenAddrs` counts as a relay
|
|
35
|
+
* (its dial prefix is supervised like a `relayAddrs` entry) — the control node
|
|
36
|
+
* rejects that entry outright, so in production it never reaches here, but a
|
|
37
|
+
* strand built straight from such a config must not get an unsupervised configured
|
|
38
|
+
* listener either. A hand-written BARE `/p2p-circuit` (the browser shape,
|
|
39
|
+
* `reference-app-web`) passes through unchanged when no relay is named, and is
|
|
40
|
+
* absorbed by the per-relay entries when one is.
|
|
41
|
+
*
|
|
42
|
+
* Everything else in `NetworkConfig` — `transports`, `connectionGater`,
|
|
43
|
+
* `enableRelay` — is inherited by the caller; this module only owns the two
|
|
44
|
+
* host-endpoint fields above and the relay listen shape. One caveat on
|
|
45
|
+
* `connectionGater`: an OPEN strand's node gets it unchanged, while a CLOSED strand's
|
|
46
|
+
* node composes revoked-peer denial onto it in `strand-instance-manager.ts` (every
|
|
47
|
+
* supplied hook still honored — see `strand-revocation-enforcer.ts`).
|
|
48
|
+
*
|
|
49
|
+
* It does carry one non-address option out with them: the WebSocket transport switch
|
|
50
|
+
* a `/ws` listen entry implies (`relay-addrs.ts` → `resolveTransportOptions`). That is
|
|
51
|
+
* DERIVED from the listen entries rather than inherited, so it has to be computed
|
|
52
|
+
* wherever they are, and a strand node whose listen entries reached libp2p without it
|
|
53
|
+
* would bind no WebSocket listener and report nothing.
|
|
54
|
+
*/
|
|
55
|
+
import type { NetworkConfig } from './types.js';
|
|
56
|
+
/**
|
|
57
|
+
* The address-shaped `createLibp2pNode` options a strand node gets, ready to spread
|
|
58
|
+
* into the rest of its options.
|
|
59
|
+
*
|
|
60
|
+
* There is deliberately no announce field here: a strand node announces NOTHING the
|
|
61
|
+
* operator configured, only what libp2p derives for it (its own listeners, observed
|
|
62
|
+
* addresses, and any `/p2p-circuit` address a relay reservation earns).
|
|
63
|
+
*
|
|
64
|
+
* NOTE: accepted tradeoff — a hosted deployment that wants a strand node reachable
|
|
65
|
+
* at its own published public port has no way to say so; the announce config is
|
|
66
|
+
* dropped for strand nodes wholesale rather than per-strand. Nothing needs that
|
|
67
|
+
* today, and the alternative is a per-strand network-config surface. Revisit if a
|
|
68
|
+
* hosted or reverse-proxy deployment ever needs direct-dialable strand nodes.
|
|
69
|
+
*/
|
|
70
|
+
export interface StrandNodeAddrs {
|
|
71
|
+
/**
|
|
72
|
+
* Listen entries for this strand node, or `undefined` when the operator
|
|
73
|
+
* configured neither `listenAddrs` nor `relayAddrs` — in which case the caller
|
|
74
|
+
* omits the option and inherits `@optimystic/db-p2p`'s own default. Carries one
|
|
75
|
+
* bare `/p2p-circuit` entry per entry of {@link relayAddrs}, deliberately NOT
|
|
76
|
+
* deduplicated: each one is its own listener with its own pending reservation.
|
|
77
|
+
*/
|
|
78
|
+
listenAddrs?: string[];
|
|
79
|
+
/**
|
|
80
|
+
* The WebSocket transport switch those listen entries imply, present only when one
|
|
81
|
+
* of them names WebSocket (`relay-addrs.ts` → `resolveTransportOptions`). Not an
|
|
82
|
+
* address — it is deliberately `0` and nothing binds it — but it lives here because
|
|
83
|
+
* it is derived from, and must travel with, the listen entries above. Without it a
|
|
84
|
+
* `/ws` strand listen entry binds nothing and libp2p reports nothing.
|
|
85
|
+
*/
|
|
86
|
+
wsPort?: number;
|
|
87
|
+
/**
|
|
88
|
+
* The relays this strand node reserves through, as DIRECT dial addrs
|
|
89
|
+
* (`<host>/p2p/<relayPeerId>`, no `/p2p-circuit`), one per relay, in config order,
|
|
90
|
+
* deduplicated by relay peer id — the union of `network.relayAddrs` and any
|
|
91
|
+
* hand-written `<relay>/p2p-circuit` entry in `network.listenAddrs`. Present only
|
|
92
|
+
* when at least one relay is named.
|
|
93
|
+
*
|
|
94
|
+
* NOT a `createLibp2pNode` option: the caller (`strand-instance-manager.ts`)
|
|
95
|
+
* destructures it off before spreading the rest, and starts one
|
|
96
|
+
* `superviseRelayReservation` per entry over the node it built.
|
|
97
|
+
*/
|
|
98
|
+
relayAddrs?: string[];
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* The strand-node view of `network`: the operator's direct listen entries with every
|
|
102
|
+
* fixed port rewritten to an ephemeral one, one bare `/p2p-circuit` search entry per
|
|
103
|
+
* relay, the relay dial addrs those entries are supervised against, and no announce
|
|
104
|
+
* fields.
|
|
105
|
+
*
|
|
106
|
+
* Validation is fail-fast exactly as it is for the control node — `relayCircuitAddrs`
|
|
107
|
+
* throws here on a malformed `relayAddrs` entry.
|
|
108
|
+
*
|
|
109
|
+
* NOTE: announce entries are no longer validated on this path at all; the CONTROL
|
|
110
|
+
* node's own build (`cadre-node.ts`) is the only thing that parses them, and it runs
|
|
111
|
+
* before any strand starts, so a typo still refuses node start today. That is an
|
|
112
|
+
* ORDERING guarantee, not a structural one. Revisit if a strand node is ever built
|
|
113
|
+
* before the control node's libp2p options are resolved — a malformed announce entry
|
|
114
|
+
* would then go unreported until the control node's own build.
|
|
115
|
+
*/
|
|
116
|
+
export declare function strandNodeAddrs(network: NetworkConfig | undefined): StrandNodeAddrs;
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Derive the per-STRAND-node view of the machine's one `NetworkConfig`.
|
|
3
|
+
*
|
|
4
|
+
* A cadre machine runs one **control** libp2p node plus one more libp2p node per
|
|
5
|
+
* strand, and every one of them is built from the SAME operator-written
|
|
6
|
+
* `NetworkConfig` block. Two of its fields describe a single endpoint on the host
|
|
7
|
+
* and therefore cannot be inherited literally by a second node on that host:
|
|
8
|
+
*
|
|
9
|
+
* - **`listenAddrs` with a fixed port.** `cadre-cli`'s example config ships
|
|
10
|
+
* `/ip4/0.0.0.0/tcp/4001`. The control node binds it first; every strand node
|
|
11
|
+
* then tries to bind the same port and fails with `EADDRINUSE`, so a machine
|
|
12
|
+
* configured with a fixed port could not start any strand at all.
|
|
13
|
+
* - **`announceAddrs` / `appendAnnounceAddrs`.** Any concrete announce entry names
|
|
14
|
+
* a port, and that port is the CONTROL node's. A strand node advertising it
|
|
15
|
+
* sends peers to the control node — and `announceAddrs` REPLACES the advertised
|
|
16
|
+
* set (see `announce-addrs.ts`), so that wrong address would be the ONLY thing
|
|
17
|
+
* the strand node publishes.
|
|
18
|
+
*
|
|
19
|
+
* The reachability model this rests on: **a strand node is not separately dialable
|
|
20
|
+
* at a published fixed address.** It is reached through (a) its ephemeral direct
|
|
21
|
+
* listener plus the addresses peers observe for it, and (b) circuit relay —
|
|
22
|
+
* `network.relayAddrs` resolves to ONE bare `/p2p-circuit` SEARCH listen entry PER
|
|
23
|
+
* relay, and the strand runtime (`strand-instance-manager.ts`) runs one
|
|
24
|
+
* reservation supervisor per relay over the dial addrs this module returns beside
|
|
25
|
+
* them ({@link StrandNodeAddrs.relayAddrs}). The same route the control node takes,
|
|
26
|
+
* for the same reason the configured `<relay>/p2p-circuit` shape was retired
|
|
27
|
+
* everywhere (`relay-addrs.ts`): a configured listener loses its address on a relay
|
|
28
|
+
* restart, on either side hanging up, and on libp2p's own reservation refresh, and
|
|
29
|
+
* recovers from none of them. One search entry per relay rather than one for all,
|
|
30
|
+
* because a search listener registers exactly ONE pending reservation and libp2p
|
|
31
|
+
* fills a pending reservation with exactly one relay — so N relays need N listeners,
|
|
32
|
+
* each with a supervisor that owns it.
|
|
33
|
+
*
|
|
34
|
+
* A hand-written `<relay>/p2p-circuit` entry in `listenAddrs` counts as a relay
|
|
35
|
+
* (its dial prefix is supervised like a `relayAddrs` entry) — the control node
|
|
36
|
+
* rejects that entry outright, so in production it never reaches here, but a
|
|
37
|
+
* strand built straight from such a config must not get an unsupervised configured
|
|
38
|
+
* listener either. A hand-written BARE `/p2p-circuit` (the browser shape,
|
|
39
|
+
* `reference-app-web`) passes through unchanged when no relay is named, and is
|
|
40
|
+
* absorbed by the per-relay entries when one is.
|
|
41
|
+
*
|
|
42
|
+
* Everything else in `NetworkConfig` — `transports`, `connectionGater`,
|
|
43
|
+
* `enableRelay` — is inherited by the caller; this module only owns the two
|
|
44
|
+
* host-endpoint fields above and the relay listen shape. One caveat on
|
|
45
|
+
* `connectionGater`: an OPEN strand's node gets it unchanged, while a CLOSED strand's
|
|
46
|
+
* node composes revoked-peer denial onto it in `strand-instance-manager.ts` (every
|
|
47
|
+
* supplied hook still honored — see `strand-revocation-enforcer.ts`).
|
|
48
|
+
*
|
|
49
|
+
* It does carry one non-address option out with them: the WebSocket transport switch
|
|
50
|
+
* a `/ws` listen entry implies (`relay-addrs.ts` → `resolveTransportOptions`). That is
|
|
51
|
+
* DERIVED from the listen entries rather than inherited, so it has to be computed
|
|
52
|
+
* wherever they are, and a strand node whose listen entries reached libp2p without it
|
|
53
|
+
* would bind no WebSocket listener and report nothing.
|
|
54
|
+
*/
|
|
55
|
+
import { multiaddr } from '@multiformats/multiaddr';
|
|
56
|
+
import { DEFAULT_DIRECT_LISTEN_ADDR, RELAY_SEARCH_LISTEN_ADDR, isConfiguredCircuitListenAddr, relayCircuitAddrs, resolveTransportOptions } from './relay-addrs.js';
|
|
57
|
+
import { extractCircuitRelayTargets } from './delegate-admission.js';
|
|
58
|
+
/**
|
|
59
|
+
* The strand-node view of `network`: the operator's direct listen entries with every
|
|
60
|
+
* fixed port rewritten to an ephemeral one, one bare `/p2p-circuit` search entry per
|
|
61
|
+
* relay, the relay dial addrs those entries are supervised against, and no announce
|
|
62
|
+
* fields.
|
|
63
|
+
*
|
|
64
|
+
* Validation is fail-fast exactly as it is for the control node — `relayCircuitAddrs`
|
|
65
|
+
* throws here on a malformed `relayAddrs` entry.
|
|
66
|
+
*
|
|
67
|
+
* NOTE: announce entries are no longer validated on this path at all; the CONTROL
|
|
68
|
+
* node's own build (`cadre-node.ts`) is the only thing that parses them, and it runs
|
|
69
|
+
* before any strand starts, so a typo still refuses node start today. That is an
|
|
70
|
+
* ORDERING guarantee, not a structural one. Revisit if a strand node is ever built
|
|
71
|
+
* before the control node's libp2p options are resolved — a malformed announce entry
|
|
72
|
+
* would then go unreported until the control node's own build.
|
|
73
|
+
*/
|
|
74
|
+
export function strandNodeAddrs(network) {
|
|
75
|
+
const relayAddrs = strandRelayAddrs(network);
|
|
76
|
+
const configured = network?.listenAddrs;
|
|
77
|
+
if (!configured && relayAddrs.length === 0) {
|
|
78
|
+
return {};
|
|
79
|
+
}
|
|
80
|
+
// An explicitly empty `listenAddrs` (the React Native "cannot listen" case) stays
|
|
81
|
+
// empty — rewriting must never resurrect a direct listener that was opted out of.
|
|
82
|
+
// Naming a relay with no `listenAddrs` keeps the direct listener the control node
|
|
83
|
+
// keeps in that case (`relay-addrs.ts`), so a relay ADDS reachability rather than
|
|
84
|
+
// replacing it.
|
|
85
|
+
const direct = configured ?? [DEFAULT_DIRECT_LISTEN_ADDR];
|
|
86
|
+
// Every circuit entry — the configured shape (now a relay in `relayAddrs`) and a
|
|
87
|
+
// hand-written bare search entry alike — is replaced by the per-relay search entries
|
|
88
|
+
// once a relay is named; with none, the operator's entries pass through as written.
|
|
89
|
+
const kept = relayAddrs.length > 0 ? direct.filter((addr) => !isCircuitListenAddr(addr)) : direct;
|
|
90
|
+
// The search entries are appended AFTER the dedupe on purpose: they are identical
|
|
91
|
+
// strings, and each one must survive as its own listener (see the module doc).
|
|
92
|
+
//
|
|
93
|
+
// NOTE: every bare entry also makes libp2p start its own relay discovery whenever
|
|
94
|
+
// that listener's slot is empty (launch, and every loss). Measured on a node with
|
|
95
|
+
// no peer router: one peer-store scan plus a random walk that fails at once
|
|
96
|
+
// (`NoPeerRoutersError`) per loss event — no dial churn. If strand nodes ever get
|
|
97
|
+
// a peer router (a DHT), that walk turns into real dials on every relay loss;
|
|
98
|
+
// cap or disable `circuitRelayTransport`'s discovery then.
|
|
99
|
+
const listenAddrs = [
|
|
100
|
+
...dedupe(kept.map(ephemeralPortListenAddr)),
|
|
101
|
+
...relayAddrs.map(() => RELAY_SEARCH_LISTEN_ADDR)
|
|
102
|
+
];
|
|
103
|
+
// Classified AFTER the ephemeral rewrite, so the check reads what this strand node
|
|
104
|
+
// will actually bind. Zeroing a port cannot change an entry's transport — only the
|
|
105
|
+
// `tcp`/`udp` component's value moves — so `/ip4/0.0.0.0/tcp/4002/ws` still resolves
|
|
106
|
+
// to WebSocket as `/ip4/0.0.0.0/tcp/0/ws`; a bare `/p2p-circuit` is `'circuit'`.
|
|
107
|
+
return {
|
|
108
|
+
listenAddrs,
|
|
109
|
+
...resolveTransportOptions(network, listenAddrs),
|
|
110
|
+
...(relayAddrs.length > 0 && { relayAddrs })
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* The relays a strand node built from `network` reserves through, as direct dial
|
|
115
|
+
* addrs: every `relayAddrs` entry (validated — a malformed one throws, naming the
|
|
116
|
+
* field) plus the relay named by any hand-written `<relay>/p2p-circuit` listen entry,
|
|
117
|
+
* deduplicated by relay PEER ID with the first spelling winning — two spellings of one
|
|
118
|
+
* relay would otherwise get two supervisors fighting over one reservation slot.
|
|
119
|
+
*/
|
|
120
|
+
function strandRelayAddrs(network) {
|
|
121
|
+
const configured = relayCircuitAddrs(network?.relayAddrs ?? []);
|
|
122
|
+
const handWritten = (network?.listenAddrs ?? []).filter(isConfiguredCircuitListenAddr);
|
|
123
|
+
return extractCircuitRelayTargets([...configured, ...handWritten]).map((relay) => relay.relayAddr);
|
|
124
|
+
}
|
|
125
|
+
/** Any `/p2p-circuit` listen entry — bare or configured; an unparsable entry is not one. */
|
|
126
|
+
function isCircuitListenAddr(listenAddr) {
|
|
127
|
+
return listenAddr === RELAY_SEARCH_LISTEN_ADDR || isConfiguredCircuitListenAddr(listenAddr);
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* One listen entry with its fixed direct port rewritten to `0`, so the OS assigns a
|
|
131
|
+
* free one per node. Interface and transport choices are preserved — `/ws`, a
|
|
132
|
+
* specific-interface bind, a `/udp/…/quic-v1` stack — since only the port is
|
|
133
|
+
* contended.
|
|
134
|
+
*
|
|
135
|
+
* Passed through UNCHANGED when there is nothing to rewrite, so the operator's exact
|
|
136
|
+
* string survives rather than being round-tripped through the multiaddr normalizer:
|
|
137
|
+
*
|
|
138
|
+
* - a circuit entry (`…/p2p-circuit`), whose embedded port belongs to the RELAY and
|
|
139
|
+
* is not a local bind at all;
|
|
140
|
+
* - a port that is already `0`, or an entry that names no port;
|
|
141
|
+
* - an unparsable entry — libp2p reports a bad listen addr itself, and this helper
|
|
142
|
+
* only ever narrows a port.
|
|
143
|
+
*/
|
|
144
|
+
function ephemeralPortListenAddr(listenAddr) {
|
|
145
|
+
let components;
|
|
146
|
+
try {
|
|
147
|
+
components = multiaddr(listenAddr).getComponents();
|
|
148
|
+
}
|
|
149
|
+
catch {
|
|
150
|
+
return listenAddr;
|
|
151
|
+
}
|
|
152
|
+
if (components.some((c) => c.name === 'p2p-circuit')) {
|
|
153
|
+
return listenAddr;
|
|
154
|
+
}
|
|
155
|
+
if (!components.some(isFixedPort)) {
|
|
156
|
+
return listenAddr;
|
|
157
|
+
}
|
|
158
|
+
return multiaddr(components.map(withEphemeralPort)).toString();
|
|
159
|
+
}
|
|
160
|
+
/** A `tcp`/`udp` component naming a port the OS did not choose. */
|
|
161
|
+
function isFixedPort(component) {
|
|
162
|
+
return (component.name === 'tcp' || component.name === 'udp')
|
|
163
|
+
&& component.value !== undefined
|
|
164
|
+
&& component.value !== '0';
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* `component` with its port zeroed, or unchanged when it is not a fixed port.
|
|
168
|
+
*
|
|
169
|
+
* Rebuilt field-by-field rather than spread: a parsed component may carry a `bytes`
|
|
170
|
+
* cache, and `componentsToBytes` PREFERS that cache over `value` — a spread would
|
|
171
|
+
* re-encode the old port.
|
|
172
|
+
*/
|
|
173
|
+
function withEphemeralPort(component) {
|
|
174
|
+
return isFixedPort(component)
|
|
175
|
+
? { code: component.code, name: component.name, value: '0' }
|
|
176
|
+
: component;
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Exact-string dedupe, first occurrence wins — matching `relay-addrs.ts`. Entries
|
|
180
|
+
* that differed only by port collapse into one after the rewrite, and libp2p would
|
|
181
|
+
* otherwise try to bind the same ephemeral-port entry twice.
|
|
182
|
+
*
|
|
183
|
+
* NOTE: an operator who writes two fixed ports on the same interface and transport
|
|
184
|
+
* (`/ip4/0.0.0.0/tcp/4001` and `…/tcp/4002`) gets ONE strand listener, not two, since
|
|
185
|
+
* the two entries are identical once zeroed. Intended — the ports were the only thing
|
|
186
|
+
* distinguishing them and neither survives. Revisit if a deployment ever needs a
|
|
187
|
+
* strand node to hold a fixed count of direct listeners.
|
|
188
|
+
*/
|
|
189
|
+
function dedupe(addrs) {
|
|
190
|
+
return [...new Set(addrs)];
|
|
191
|
+
}
|
|
192
|
+
//# sourceMappingURL=strand-network-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"strand-network-config.js","sourceRoot":"","sources":["../src/strand-network-config.ts"],"names":[],"mappings":"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"}
|