@serfab/cadre-core 1.4.0 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cadre-node.d.ts +38 -15
- package/dist/cadre-node.js +81 -29
- package/dist/cadre-node.js.map +1 -1
- package/dist/control-database.d.ts +24 -10
- package/dist/control-database.js +48 -16
- package/dist/control-database.js.map +1 -1
- package/dist/control-read-retry.d.ts +12 -0
- package/dist/control-read-retry.js +12 -0
- package/dist/control-read-retry.js.map +1 -1
- package/dist/control-write-retry.d.ts +5 -4
- package/dist/control-write-retry.js +24 -7
- package/dist/control-write-retry.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.js +5 -2
- package/dist/index.js.map +1 -1
- package/dist/link-budget.d.ts +224 -0
- package/dist/link-budget.js +239 -0
- package/dist/link-budget.js.map +1 -0
- package/dist/peer-dial.d.ts +36 -17
- package/dist/peer-dial.js +37 -17
- package/dist/peer-dial.js.map +1 -1
- package/dist/peer-join-backfill.d.ts +58 -4
- package/dist/peer-join-backfill.js +166 -20
- package/dist/peer-join-backfill.js.map +1 -1
- package/dist/relay-reservation.d.ts +59 -11
- package/dist/relay-reservation.js +169 -43
- package/dist/relay-reservation.js.map +1 -1
- package/dist/seed-bootstrap.js +2 -1
- package/dist/seed-bootstrap.js.map +1 -1
- package/dist/strand-first-sync-gate.d.ts +105 -22
- package/dist/strand-first-sync-gate.js +121 -27
- package/dist/strand-first-sync-gate.js.map +1 -1
- package/dist/strand-instance-manager.d.ts +27 -2
- package/dist/strand-instance-manager.js +60 -13
- package/dist/strand-instance-manager.js.map +1 -1
- package/dist/strand-membership-reconciler.d.ts +200 -45
- package/dist/strand-membership-reconciler.js +302 -86
- package/dist/strand-membership-reconciler.js.map +1 -1
- package/dist/strand-membership-writer.d.ts +3 -2
- package/dist/strand-membership-writer.js +67 -90
- package/dist/strand-membership-writer.js.map +1 -1
- package/dist/strand-network-config.d.ts +2 -2
- package/dist/strand-network-config.js +2 -2
- package/dist/types.d.ts +105 -9
- package/dist/types.js +20 -4
- package/dist/types.js.map +1 -1
- package/package.json +8 -8
- package/src/cadre-node.ts +7449 -7397
- package/src/control-database.ts +48 -16
- package/src/control-read-retry.ts +214 -202
- package/src/control-write-retry.ts +24 -7
- package/src/index.ts +582 -563
- package/src/link-budget.ts +264 -0
- package/src/peer-dial.ts +39 -17
- package/src/peer-join-backfill.ts +648 -478
- package/src/relay-reservation.ts +1119 -951
- package/src/seed-bootstrap.ts +2 -1
- package/src/strand-first-sync-gate.ts +352 -258
- package/src/strand-instance-manager.ts +1520 -1458
- package/src/strand-membership-reconciler.ts +334 -92
- package/src/strand-membership-writer.ts +1962 -1987
- package/src/strand-network-config.ts +2 -2
- package/src/types.ts +104 -8
package/dist/types.d.ts
CHANGED
|
@@ -284,7 +284,8 @@ export interface NetworkConfig {
|
|
|
284
284
|
*
|
|
285
285
|
* It buys a node that BOOTS, not a node that boots fast: `start()` still waits
|
|
286
286
|
* out that first attempt, which costs the drive's whole timeout
|
|
287
|
-
* (`DEFAULT_RELAY_RESERVE_TIMEOUT_MS`,
|
|
287
|
+
* (`DEFAULT_RELAY_RESERVE_TIMEOUT_MS`, four link round trips at
|
|
288
|
+
* {@link linkRoundTripMs} — 14 s at its default) against a relay that is unreachable
|
|
288
289
|
* rather than merely refusing (`relay-reservation.ts` polls to the deadline, in
|
|
289
290
|
* case libp2p's own discovery lands a reservation independently).
|
|
290
291
|
*
|
|
@@ -374,6 +375,59 @@ export interface NetworkConfig {
|
|
|
374
375
|
* see {@link DEFAULT_CONNECTION_MONITOR} for why.
|
|
375
376
|
*/
|
|
376
377
|
connectionMonitor?: Libp2pConnectionMonitorInit;
|
|
378
|
+
/**
|
|
379
|
+
* How long ONE cohort peer gets to answer ONE read-path request, in milliseconds, for the
|
|
380
|
+
* control node and every strand node — as {@link connectionMonitor} is, and for the same
|
|
381
|
+
* reason: the setting describes the LINK, and a phone's control node and its strand nodes
|
|
382
|
+
* ride the same one. Omitted takes {@link COHORT_READ_DEADLINE_MS} (5000 ms), chosen for two
|
|
383
|
+
* parties reaching each other only through a relay; Optimystic's own default is 1000 ms.
|
|
384
|
+
*
|
|
385
|
+
* Raise it for a link slower still, lower it for a deployment that is all LAN and wants a
|
|
386
|
+
* departed peer to stop holding up a read sooner. The cost of a larger value is that a peer
|
|
387
|
+
* which is truly gone holds a read of a block missing locally for that long before the read
|
|
388
|
+
* is declined and retried, and a joining machine's first sync runs several such consults —
|
|
389
|
+
* so a change here should be weighed against
|
|
390
|
+
* {@link CadreNodeConfig.strandFirstSync}'s budget. The measurement behind the default, and
|
|
391
|
+
* what it costs, are on {@link COHORT_READ_DEADLINE_MS}.
|
|
392
|
+
*
|
|
393
|
+
* Handed to db-p2p's `clusterPolicy.cohortQueryTimeoutMs` unchanged and NOT re-validated
|
|
394
|
+
* here. Optimystic refuses a value that is not a finite number above zero, or is above its
|
|
395
|
+
* `MAX_COHORT_QUERY_TIMEOUT_MS` (about 4.97 days — the ceiling exists because a unit mix-up
|
|
396
|
+
* is the one way to exceed it), by throwing where the libp2p node is built: inside
|
|
397
|
+
* `CadreNode.start()` for the control network, and inside `CadreNode.addStrand` for a strand.
|
|
398
|
+
* Fractional values are accepted — this is a duration, not a count of peers.
|
|
399
|
+
*/
|
|
400
|
+
cohortQueryTimeoutMs?: number;
|
|
401
|
+
/**
|
|
402
|
+
* The round trip this node assumes between itself and another machine, in milliseconds, for
|
|
403
|
+
* the control node and every strand node — as {@link cohortQueryTimeoutMs} is, and for the
|
|
404
|
+
* same reason: the setting describes the LINK, and a phone's control node and its strand
|
|
405
|
+
* nodes ride the same one. Omitted takes {@link DECLARED_LINK_ROUND_TRIP_MS} (3500 ms).
|
|
406
|
+
*
|
|
407
|
+
* This is NOT a timeout. It is the one stated assumption that cadre's own dial and
|
|
408
|
+
* reservation deadlines are DERIVED from, each by the number of round trips that operation
|
|
409
|
+
* was measured to cost: a peer-join catch-up's dial to one peer, its push response, one relay
|
|
410
|
+
* reservation drive, the control-cohort dial budgets, and libp2p's own `dialTimeout` and
|
|
411
|
+
* `inboundUpgradeTimeout` on every node. Reaching another machine through a relay costs a
|
|
412
|
+
* fixed number of exchanges, so a deadline written as milliseconds has a link speed above
|
|
413
|
+
* which it can never open a connection — which is the defect this declaration exists to make
|
|
414
|
+
* impossible to reintroduce one budget at a time. The counts, the measurement behind them,
|
|
415
|
+
* and what still fails at the supported link are in `link-budget.ts`.
|
|
416
|
+
*
|
|
417
|
+
* The default covers the slowest link sereus supports, a 3-second round trip through a relay.
|
|
418
|
+
* Raise it for a link slower still; the cost is the ordinary cost of longer deadlines, a peer
|
|
419
|
+
* that is genuinely gone holding each operation that much longer before it is abandoned and
|
|
420
|
+
* retried. Lower it only if EVERY machine of the party is that close: this node is also the
|
|
421
|
+
* listener for connections other machines open to it, and its `inboundUpgradeTimeout` comes
|
|
422
|
+
* from this value, so a node declaring a faster link than its peers discards their
|
|
423
|
+
* half-built connections — silently, from the dialer's side.
|
|
424
|
+
*
|
|
425
|
+
* Refused where the libp2p node is built — inside `CadreNode.start()` for the control
|
|
426
|
+
* network, inside `CadreNode.addStrand` for a strand — if it is not a finite number above
|
|
427
|
+
* zero, because every consumer multiplies it into a deadline where a zero means "give up at
|
|
428
|
+
* once" and a `NaN` means "never".
|
|
429
|
+
*/
|
|
430
|
+
linkRoundTripMs?: number;
|
|
377
431
|
/**
|
|
378
432
|
* Optional async resolver returning the multiaddrs to embed in invites
|
|
379
433
|
* (and other owner-address contexts). When unset, `libp2pNode.getMultiaddrs()`
|
|
@@ -485,6 +539,12 @@ export interface NetworkConfig {
|
|
|
485
539
|
* kept it (the same pair aborted at a 200ms stall only when the deadline was 300ms). An
|
|
486
540
|
* interval strictly above the deadline is what makes the 30 seconds real.
|
|
487
541
|
*
|
|
542
|
+
* WHAT THE LINK NEEDS OF IT. One ping opens a fresh stream and echoes over it: a protocol
|
|
543
|
+
* negotiation plus the echo, two link round trips by `link-budget.ts`'s counts (a `newStream`
|
|
544
|
+
* over a relayed circuit measured 3016 ms at 1500 ms one-way). At the slowest link sereus
|
|
545
|
+
* supports, a 3-second relayed round trip, that is about 6 s — well inside the 30 s deadline,
|
|
546
|
+
* which exists for the phone's CPU rather than the link.
|
|
547
|
+
*
|
|
488
548
|
* WHAT IT COSTS. A dead peer is reclaimed 30 to 65 seconds after it stops answering — the
|
|
489
549
|
* deadline, plus up to one interval of waiting for the ping that will fail — where
|
|
490
550
|
* libp2p's defaults took about 5 to 15 seconds. `db-p2p` caps a node at 16 connections,
|
|
@@ -555,11 +615,21 @@ export interface ControlNetworkConfig {
|
|
|
555
615
|
*
|
|
556
616
|
* The two `*ClusterPolicy` BUILDERS are the same objects with the block-repair
|
|
557
617
|
* corroboration yardstick declared from the machines enrolled in this party
|
|
558
|
-
* ({@link resolveRepairYardstick})
|
|
559
|
-
*
|
|
560
|
-
*
|
|
618
|
+
* ({@link resolveRepairYardstick}) and, if the host set one, its own per-peer read
|
|
619
|
+
* deadline in place of {@link COHORT_READ_DEADLINE_MS}. Both arrive in one named
|
|
620
|
+
* declarations object, because both are plain numbers meaning unrelated things;
|
|
621
|
+
* declaring neither returns the frozen base constant unchanged. A network picks the
|
|
622
|
+
* derived numbers up when its libp2p node is built, which for a strand is every wake
|
|
623
|
+
* from hibernation.
|
|
624
|
+
*/
|
|
625
|
+
export { MIN_CLUSTER_SIZE, COHORT_READ_DEADLINE_MS, CONTROL_REPLICATION_BREADTH, CONTROL_CLUSTER_POLICY, DEFAULT_STRAND_CLUSTER_SIZE, STRAND_CLUSTER_POLICY, resolveStrandClusterSize, resolveRepairYardstick, controlClusterPolicy, strandClusterPolicy } from '@serfab/quereus-plugin-sereus';
|
|
626
|
+
/**
|
|
627
|
+
* The declared link round trip every cadre-owned dial and reservation deadline is derived from,
|
|
628
|
+
* re-exported beside {@link NetworkConfig.linkRoundTripMs} so a host reading the setting finds
|
|
629
|
+
* the default it replaces. The counts, the measurement and the derivation live in
|
|
630
|
+
* `link-budget.ts`.
|
|
561
631
|
*/
|
|
562
|
-
export {
|
|
632
|
+
export { DECLARED_LINK_ROUND_TRIP_MS } from './link-budget.js';
|
|
563
633
|
/**
|
|
564
634
|
* Main configuration for a CadreNode
|
|
565
635
|
*/
|
|
@@ -680,10 +750,12 @@ export interface CadreNodeConfig {
|
|
|
680
750
|
* to a table it has never fetched creates a private copy of it that never merges.
|
|
681
751
|
* `timeoutMs` bounds how long {@link CadreNode.addStrand} waits before rejecting with
|
|
682
752
|
* `StrandAwaitingFirstSyncError` (retryable — the launch stays up and keeps probing);
|
|
683
|
-
* `pollIntervalMs` is the probe cadence. Omit for the defaults (`DEFAULT_STRAND_FIRST_SYNC_TIMEOUT_MS`,
|
|
684
|
-
*
|
|
685
|
-
*
|
|
686
|
-
*
|
|
753
|
+
* `pollIntervalMs` is the probe cadence. Omit for the defaults (`DEFAULT_STRAND_FIRST_SYNC_TIMEOUT_MS`,
|
|
754
|
+
* sized for a machine re-attaching through a relay on a slow link, the slowest attach
|
|
755
|
+
* measured; that constant's doc comment carries the number, the measurement behind it and
|
|
756
|
+
* what the budget costs, and is the only copy of them; `DEFAULT_STRAND_FIRST_SYNC_POLL_MS`,
|
|
757
|
+
* 500 ms). There is deliberately no way to disable the gate: a machine whose store already
|
|
758
|
+
* holds the Header is never gated, so nothing that works today is blocked by it.
|
|
687
759
|
*/
|
|
688
760
|
strandFirstSync?: StrandFirstSyncConfig;
|
|
689
761
|
/** Hibernation configuration */
|
|
@@ -1228,6 +1300,30 @@ export interface CadreNodeEvents {
|
|
|
1228
1300
|
'strand:revoked': {
|
|
1229
1301
|
strandId: string;
|
|
1230
1302
|
};
|
|
1303
|
+
/**
|
|
1304
|
+
* Emitted when this node holds a staged membership invitation for a CLOSED strand
|
|
1305
|
+
* that its own writes cannot redeem — the shape a REMOVED party hits when a manager
|
|
1306
|
+
* hands it a fresh invitation. Redeeming means writing this party's `Strand.Member`
|
|
1307
|
+
* row into the strand, and the machines that would carry that write are the ones the
|
|
1308
|
+
* remaining members refuse, so the attempt is made and fails. Two triggers, reported
|
|
1309
|
+
* at most once per re-arm of the membership loop (a further invitation staged while the
|
|
1310
|
+
* loop is still running does not reset the report):
|
|
1311
|
+
*
|
|
1312
|
+
* - CONFIRMED: the revoked-peer gate already flags this node as removed (the
|
|
1313
|
+
* `strand:revoked` case) and an invitation is staged.
|
|
1314
|
+
* - PROBABLE: `UNFINISHED_PASSES_BEFORE_ESCALATION` consecutive attempts left the
|
|
1315
|
+
* invitation staged. This one is a SUSPICION, not a verdict — the invitation's row
|
|
1316
|
+
* may simply not have replicated here yet on a slow strand — and the accompanying
|
|
1317
|
+
* warning names both causes.
|
|
1318
|
+
*
|
|
1319
|
+
* Nothing is stopped or torn down. A fresh invitation cannot re-admit a removed
|
|
1320
|
+
* party by itself: the remedy is a remaining manager admitting this party's member
|
|
1321
|
+
* key directly (`addMemberByManager`), after which the membership loop, which keeps
|
|
1322
|
+
* retrying, finishes the join on its own.
|
|
1323
|
+
*/
|
|
1324
|
+
'strand:rejoin-blocked': {
|
|
1325
|
+
strandId: string;
|
|
1326
|
+
};
|
|
1231
1327
|
/**
|
|
1232
1328
|
* Emitted when the control network advertises a strand this node has no
|
|
1233
1329
|
* registered `sAppConfig` for — i.e. a strand created by another member, or
|
package/dist/types.js
CHANGED
|
@@ -66,6 +66,12 @@ export const HIBERNATION_TIMEOUTS = {
|
|
|
66
66
|
* kept it (the same pair aborted at a 200ms stall only when the deadline was 300ms). An
|
|
67
67
|
* interval strictly above the deadline is what makes the 30 seconds real.
|
|
68
68
|
*
|
|
69
|
+
* WHAT THE LINK NEEDS OF IT. One ping opens a fresh stream and echoes over it: a protocol
|
|
70
|
+
* negotiation plus the echo, two link round trips by `link-budget.ts`'s counts (a `newStream`
|
|
71
|
+
* over a relayed circuit measured 3016 ms at 1500 ms one-way). At the slowest link sereus
|
|
72
|
+
* supports, a 3-second relayed round trip, that is about 6 s — well inside the 30 s deadline,
|
|
73
|
+
* which exists for the phone's CPU rather than the link.
|
|
74
|
+
*
|
|
69
75
|
* WHAT IT COSTS. A dead peer is reclaimed 30 to 65 seconds after it stops answering — the
|
|
70
76
|
* deadline, plus up to one interval of waiting for the ping that will fail — where
|
|
71
77
|
* libp2p's defaults took about 5 to 15 seconds. `db-p2p` caps a node at 16 connections,
|
|
@@ -113,9 +119,19 @@ export const DEFAULT_CHECKIN_WINDOW_MS = 15 * 1000;
|
|
|
113
119
|
*
|
|
114
120
|
* The two `*ClusterPolicy` BUILDERS are the same objects with the block-repair
|
|
115
121
|
* corroboration yardstick declared from the machines enrolled in this party
|
|
116
|
-
* ({@link resolveRepairYardstick})
|
|
117
|
-
*
|
|
118
|
-
*
|
|
122
|
+
* ({@link resolveRepairYardstick}) and, if the host set one, its own per-peer read
|
|
123
|
+
* deadline in place of {@link COHORT_READ_DEADLINE_MS}. Both arrive in one named
|
|
124
|
+
* declarations object, because both are plain numbers meaning unrelated things;
|
|
125
|
+
* declaring neither returns the frozen base constant unchanged. A network picks the
|
|
126
|
+
* derived numbers up when its libp2p node is built, which for a strand is every wake
|
|
127
|
+
* from hibernation.
|
|
128
|
+
*/
|
|
129
|
+
export { MIN_CLUSTER_SIZE, COHORT_READ_DEADLINE_MS, CONTROL_REPLICATION_BREADTH, CONTROL_CLUSTER_POLICY, DEFAULT_STRAND_CLUSTER_SIZE, STRAND_CLUSTER_POLICY, resolveStrandClusterSize, resolveRepairYardstick, controlClusterPolicy, strandClusterPolicy } from '@serfab/quereus-plugin-sereus';
|
|
130
|
+
/**
|
|
131
|
+
* The declared link round trip every cadre-owned dial and reservation deadline is derived from,
|
|
132
|
+
* re-exported beside {@link NetworkConfig.linkRoundTripMs} so a host reading the setting finds
|
|
133
|
+
* the default it replaces. The counts, the measurement and the derivation live in
|
|
134
|
+
* `link-budget.ts`.
|
|
119
135
|
*/
|
|
120
|
-
export {
|
|
136
|
+
export { DECLARED_LINK_ROUND_TRIP_MS } from './link-budget.js';
|
|
121
137
|
//# sourceMappingURL=types.js.map
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAgFA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAA6C;IAC5E,QAAQ,EAAE;QACR,WAAW,EAAE,QAAQ,EAAS,aAAa;QAC3C,gBAAgB,EAAE,QAAQ,EAAI,kBAAkB;QAChD,eAAe,EAAE,QAAQ,EAAK,MAAM;QACpC,oBAAoB,EAAE,CAAC;QACvB,kBAAkB,EAAE,QAAQ,CAAE,MAAM;KACrC;IACD,WAAW,EAAE;QACX,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,EAAI,YAAY;QAC1C,gBAAgB,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,wBAAwB;QAC1D,eAAe,EAAE,EAAE,GAAG,IAAI,EAAI,mBAAmB;QACjD,oBAAoB,EAAE,CAAC;QACvB,kBAAkB,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,eAAe;KACnD;IACD,UAAU,EAAE;QACV,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,EAAI,WAAW;QACzC,gBAAgB,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,EAAG,uBAAuB;QACzD,eAAe,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,EAAI,kBAAkB;QACpD,oBAAoB,EAAE,CAAC;QACvB,kBAAkB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,gBAAgB;KACxD;IACD,OAAO,EAAE;QACP,WAAW,EAAE,EAAE,GAAG,IAAI,EAAQ,aAAa;QAC3C,gBAAgB,EAAE,EAAE,GAAG,IAAI,EAAG,wBAAwB;QACtD,eAAe,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAG,eAAe;QACjD,oBAAoB,EAAE,CAAC;QACvB,kBAAkB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,eAAe;KAC5D;CACF,CAAC;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAgFA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAA6C;IAC5E,QAAQ,EAAE;QACR,WAAW,EAAE,QAAQ,EAAS,aAAa;QAC3C,gBAAgB,EAAE,QAAQ,EAAI,kBAAkB;QAChD,eAAe,EAAE,QAAQ,EAAK,MAAM;QACpC,oBAAoB,EAAE,CAAC;QACvB,kBAAkB,EAAE,QAAQ,CAAE,MAAM;KACrC;IACD,WAAW,EAAE;QACX,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,EAAI,YAAY;QAC1C,gBAAgB,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,wBAAwB;QAC1D,eAAe,EAAE,EAAE,GAAG,IAAI,EAAI,mBAAmB;QACjD,oBAAoB,EAAE,CAAC;QACvB,kBAAkB,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,eAAe;KACnD;IACD,UAAU,EAAE;QACV,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,EAAI,WAAW;QACzC,gBAAgB,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,EAAG,uBAAuB;QACzD,eAAe,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,EAAI,kBAAkB;QACpD,oBAAoB,EAAE,CAAC;QACvB,kBAAkB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,gBAAgB;KACxD;IACD,OAAO,EAAE;QACP,WAAW,EAAE,EAAE,GAAG,IAAI,EAAQ,aAAa;QAC3C,gBAAgB,EAAE,EAAE,GAAG,IAAI,EAAG,wBAAwB;QACtD,eAAe,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAG,eAAe;QACjD,oBAAoB,EAAE,CAAC;QACvB,kBAAkB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,eAAe;KAC5D;CACF,CAAC;AA2aF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,MAAM,CAAC,MAAM,CAAC;IACtD,uFAAuF;IACvF,mFAAmF;IACnF,YAAY,EAAE,KAAM;IACpB,kFAAkF;IAClF,kFAAkF;IAClF,mBAAmB;IACnB,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,KAAM,EAAE,UAAU,EAAE,KAAM,EAAE,CAAC;CACjC,CAAC,CAAC;AAmBzC;;;GAGG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,GAAG,IAAI,CAAC;AAYnD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EACL,gBAAgB,EAChB,uBAAuB,EACvB,2BAA2B,EAC3B,sBAAsB,EACtB,2BAA2B,EAC3B,qBAAqB,EACrB,wBAAwB,EACxB,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,EACpB,MAAM,+BAA+B,CAAC;AAEvC;;;;;GAKG;AACH,OAAO,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@serfab/cadre-core",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.6.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Core library for Sereus cadre nodes - manages control networks and strand participation",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -73,7 +73,7 @@
|
|
|
73
73
|
"@libp2p/tcp": "^11.0.10",
|
|
74
74
|
"@libp2p/webrtc": "6.0.14",
|
|
75
75
|
"@libp2p/websockets": "^10.1.3",
|
|
76
|
-
"@optimystic/db-p2p-storage-fs": "^1.
|
|
76
|
+
"@optimystic/db-p2p-storage-fs": "^1.7.0",
|
|
77
77
|
"@types/debug": "^4.1.12",
|
|
78
78
|
"@types/node": "^25.0.10",
|
|
79
79
|
"@vitest/coverage-v8": "^4.0.17",
|
|
@@ -88,12 +88,12 @@
|
|
|
88
88
|
"@libp2p/interface": "^3.1.0",
|
|
89
89
|
"@libp2p/peer-id": "^6.0.4",
|
|
90
90
|
"@multiformats/multiaddr": "^12.5.1",
|
|
91
|
-
"@optimystic/db-core": "^1.
|
|
92
|
-
"@optimystic/db-p2p": "^1.
|
|
93
|
-
"@optimystic/quereus-plugin-crypto": "^1.
|
|
94
|
-
"@optimystic/quereus-plugin-optimystic": "^1.
|
|
95
|
-
"@quereus/quereus": "^4.
|
|
96
|
-
"@serfab/quereus-plugin-sereus": "^1.
|
|
91
|
+
"@optimystic/db-core": "^1.7.0",
|
|
92
|
+
"@optimystic/db-p2p": "^1.7.0",
|
|
93
|
+
"@optimystic/quereus-plugin-crypto": "^1.7.0",
|
|
94
|
+
"@optimystic/quereus-plugin-optimystic": "^1.7.0",
|
|
95
|
+
"@quereus/quereus": "^4.20.0",
|
|
96
|
+
"@serfab/quereus-plugin-sereus": "^1.6.0",
|
|
97
97
|
"debug": "^4.4.3",
|
|
98
98
|
"libp2p": "^3.1.3",
|
|
99
99
|
"uint8arrays": "^5.1.0"
|