@serfab/cadre-core 1.8.0 → 1.9.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 +153 -104
- package/dist/cadre-node.js +227 -199
- package/dist/cadre-node.js.map +1 -1
- package/dist/index.d.ts +2 -4
- package/dist/index.js +10 -11
- package/dist/index.js.map +1 -1
- package/dist/node-local-snapshot.d.ts +6 -4
- package/dist/node-local-snapshot.js +7 -3
- package/dist/node-local-snapshot.js.map +1 -1
- package/dist/peer-join-backfill.d.ts +0 -9
- package/dist/peer-join-backfill.js +2 -3
- package/dist/peer-join-backfill.js.map +1 -1
- package/dist/strand-formation-protocol.d.ts +0 -11
- package/dist/strand-formation-protocol.js +3 -4
- package/dist/strand-formation-protocol.js.map +1 -1
- package/dist/strand-fret-addrs.d.ts +54 -0
- package/dist/strand-fret-addrs.js +108 -0
- package/dist/strand-fret-addrs.js.map +1 -0
- package/dist/strand-instance-manager.d.ts +9 -38
- package/dist/strand-instance-manager.js +13 -73
- package/dist/strand-instance-manager.js.map +1 -1
- package/dist/strand-network-state-file.d.ts +12 -0
- package/dist/strand-network-state-file.js +38 -0
- package/dist/strand-network-state-file.js.map +1 -0
- package/dist/strand-network-state.d.ts +111 -0
- package/dist/strand-network-state.js +191 -0
- package/dist/strand-network-state.js.map +1 -0
- package/dist/types.d.ts +20 -23
- package/package.json +11 -10
- package/src/cadre-node.ts +238 -205
- package/src/index.ts +15 -55
- package/src/node-local-snapshot.ts +12 -7
- package/src/peer-join-backfill.ts +2 -3
- package/src/strand-formation-protocol.ts +3 -4
- package/src/strand-fret-addrs.ts +145 -0
- package/src/strand-instance-manager.ts +20 -96
- package/src/strand-network-state-file.ts +40 -0
- package/src/strand-network-state.ts +243 -0
- package/src/types.ts +20 -23
- package/dist/strand-peer-book-file.d.ts +0 -12
- package/dist/strand-peer-book-file.js +0 -37
- package/dist/strand-peer-book-file.js.map +0 -1
- package/dist/strand-peer-book-protocol.d.ts +0 -168
- package/dist/strand-peer-book-protocol.js +0 -356
- package/dist/strand-peer-book-protocol.js.map +0 -1
- package/dist/strand-peer-book-swap.d.ts +0 -104
- package/dist/strand-peer-book-swap.js +0 -284
- package/dist/strand-peer-book-swap.js.map +0 -1
- package/dist/strand-peer-book.d.ts +0 -159
- package/dist/strand-peer-book.js +0 -361
- package/dist/strand-peer-book.js.map +0 -1
- package/dist/strand-peer-observer.d.ts +0 -88
- package/dist/strand-peer-observer.js +0 -180
- package/dist/strand-peer-observer.js.map +0 -1
- package/src/strand-peer-book-file.ts +0 -39
- package/src/strand-peer-book-protocol.ts +0 -466
- package/src/strand-peer-book-swap.ts +0 -338
- package/src/strand-peer-book.ts +0 -475
- package/src/strand-peer-observer.ts +0 -235
|
@@ -3,8 +3,7 @@ import { createLibp2pNode } from '@optimystic/db-p2p';
|
|
|
3
3
|
import { wrapStorageWithCache, disposeStorageCache } from '@serfab/quereus-plugin-sereus';
|
|
4
4
|
import { StrandDatabase } from './strand-database.js';
|
|
5
5
|
import { PeerJoinBackfill } from './peer-join-backfill.js';
|
|
6
|
-
import {
|
|
7
|
-
import { StrandPeerBookSwap } from './strand-peer-book-swap.js';
|
|
6
|
+
import { strandNetworkStatePersistence } from './strand-network-state.js';
|
|
8
7
|
import { StrandRevocationEnforcer, createRevocationConnectionGater, readStrandRevocationRows } from './strand-revocation-enforcer.js';
|
|
9
8
|
import { StrandMembershipReconciler } from './strand-membership-reconciler.js';
|
|
10
9
|
import { removeMemberPeer } from './strand-membership-writer.js';
|
|
@@ -140,23 +139,6 @@ export class StrandInstanceManager {
|
|
|
140
139
|
* missed writes).
|
|
141
140
|
*/
|
|
142
141
|
this.backfills = new Map();
|
|
143
|
-
/**
|
|
144
|
-
* The per-strand peer-book observation writer (`strand-peer-observer.ts`), keyed
|
|
145
|
-
* by strand id. Same lifecycle rationale as {@link backfills}: started in
|
|
146
|
-
* `buildStrandRuntime` right after the libp2p node exists, stopped and dropped in
|
|
147
|
-
* `releaseRuntime`, so quiesce → resume re-arms it on the rebuilt node. Only
|
|
148
|
-
* present when the launch config supplied `onStrandPeerIdentified`.
|
|
149
|
-
*/
|
|
150
|
-
this.peerObservers = new Map();
|
|
151
|
-
/**
|
|
152
|
-
* Per-strand strand peer book SWAP driver ({@link StrandPeerBookSwap}) — the signed
|
|
153
|
-
* exchange of book entries between strand peers. Same lifetime as the peer-book
|
|
154
|
-
* observer above: armed in `buildStrandRuntime` right after the libp2p node exists
|
|
155
|
-
* (its protocol handler must be registered before an early peer dials it), stopped
|
|
156
|
-
* and dropped in `releaseRuntime`. Only present when the launch config supplied
|
|
157
|
-
* `strandPeerBook`.
|
|
158
|
-
*/
|
|
159
|
-
this.peerBookSwaps = new Map();
|
|
160
142
|
/**
|
|
161
143
|
* The per-strand revoked-peer enforcer (closed strands only), keyed by strand
|
|
162
144
|
* id. Same lifecycle rationale as {@link backfills}: created in
|
|
@@ -505,6 +487,18 @@ export class StrandInstanceManager {
|
|
|
505
487
|
enableRingZulu: config.profile === 'storage'
|
|
506
488
|
},
|
|
507
489
|
...(config.privateKey && { privateKey: config.privateKey }),
|
|
490
|
+
// Built per runtime, not per launch: the adapter stops saving once the strand's
|
|
491
|
+
// state is forgotten, and a rebuilt runtime is what starts it saving again.
|
|
492
|
+
//
|
|
493
|
+
// NOTE: the saved state also restores which peers db-p2p saw serving the strand,
|
|
494
|
+
// and it counts them in the cohort until FRET finds them unreachable. A node built
|
|
495
|
+
// while every other member is offline therefore fails its first writes ("Failed to
|
|
496
|
+
// get super-majority") — for 4-6 s on loopback, the window a running node already
|
|
497
|
+
// sees when a member drops. If apps report failed sends after relaunching alone on
|
|
498
|
+
// a slow relayed link, retry the write in the app or raise it upstream (db-p2p's
|
|
499
|
+
// remembered-serving fallback); dropping `persistence` brings back the split
|
|
500
|
+
// restart.
|
|
501
|
+
...(config.networkState && { persistence: strandNetworkStatePersistence(config.networkState, strandId) }),
|
|
508
502
|
...(config.network?.transports && { transports: config.network.transports }),
|
|
509
503
|
...(config.network?.noiseCrypto && { noiseCrypto: config.network.noiseCrypto }),
|
|
510
504
|
// Unconditional, and the same default the control node takes: every node of
|
|
@@ -533,46 +527,6 @@ export class StrandInstanceManager {
|
|
|
533
527
|
});
|
|
534
528
|
timing('[buildStrandRuntime:%s] createLibp2pNode: %dms', strandId, Math.round(performance.now() - t0));
|
|
535
529
|
instance.libp2pNode = node;
|
|
536
|
-
// The peer-book observation writer, armed BEFORE the database bring-up below
|
|
537
|
-
// (unlike the backfill) because the bootstrap dials that follow `libp2p.start()`
|
|
538
|
-
// land during that bring-up, and they are exactly the peers worth remembering:
|
|
539
|
-
// identify for an early peer may already have fired by the time anything after
|
|
540
|
-
// the database initializes runs. Registered in the map immediately so the
|
|
541
|
-
// failure rollback (releaseRuntime) stops it like every other runtime component.
|
|
542
|
-
const onStrandPeerIdentified = config.onStrandPeerIdentified;
|
|
543
|
-
if (onStrandPeerIdentified) {
|
|
544
|
-
const observer = new StrandPeerObserver({
|
|
545
|
-
label: strandId,
|
|
546
|
-
libp2p: node,
|
|
547
|
-
protocolPrefix,
|
|
548
|
-
onObserved: (observation) => onStrandPeerIdentified(strandId, observation)
|
|
549
|
-
});
|
|
550
|
-
this.peerObservers.set(strandId, observer);
|
|
551
|
-
observer.start();
|
|
552
|
-
}
|
|
553
|
-
// The strand peer book SWAP, armed at the same moment and for the same reason as
|
|
554
|
-
// the observer: a peer that dials this node's swap handler before it is registered
|
|
555
|
-
// fails its exchange and sits out a ten-minute throttle. The own entry is signed
|
|
556
|
-
// now and re-signed on every address change, which covers the relay reservation
|
|
557
|
-
// landing below (`self:peer:update` fires when the circuit addr is added), so no
|
|
558
|
-
// separate post-relay step is needed. Registered in the map immediately so the
|
|
559
|
-
// failure rollback (releaseRuntime) stops it like every other runtime component.
|
|
560
|
-
//
|
|
561
|
-
// NOTE: this is a third `peer:identify` listener per running strand, beside the
|
|
562
|
-
// observer's and the backfill's — see the backfill's NOTE below for when to fold
|
|
563
|
-
// them into one dispatcher.
|
|
564
|
-
if (config.strandPeerBook) {
|
|
565
|
-
const swap = new StrandPeerBookSwap({
|
|
566
|
-
strandId,
|
|
567
|
-
libp2p: node,
|
|
568
|
-
protocolPrefix,
|
|
569
|
-
store: config.strandPeerBook,
|
|
570
|
-
privateKey: config.privateKey,
|
|
571
|
-
linkRoundTripMs: config.network?.linkRoundTripMs
|
|
572
|
-
});
|
|
573
|
-
this.peerBookSwaps.set(strandId, swap);
|
|
574
|
-
swap.start();
|
|
575
|
-
}
|
|
576
530
|
// One reservation supervisor PER RELAY, started now so the first attempts
|
|
577
531
|
// overlap the database bring-up below (the relay is never in a strand's
|
|
578
532
|
// Optimystic cohort — its protocol ids are namespaced `/optimystic/strand-<id>/…`
|
|
@@ -781,20 +735,6 @@ export class StrandInstanceManager {
|
|
|
781
735
|
backfill.stop();
|
|
782
736
|
this.backfills.delete(instance.strandId);
|
|
783
737
|
}
|
|
784
|
-
// The peer-book observer goes with the node it listened on; a resume re-arms
|
|
785
|
-
// one on the rebuilt node.
|
|
786
|
-
const peerObserver = this.peerObservers.get(instance.strandId);
|
|
787
|
-
if (peerObserver) {
|
|
788
|
-
peerObserver.stop();
|
|
789
|
-
this.peerObservers.delete(instance.strandId);
|
|
790
|
-
}
|
|
791
|
-
// The book swap likewise: unsubscribed and its handler unregistered while the node is
|
|
792
|
-
// still up; a resume re-arms one, which re-signs the own entry over the new addresses.
|
|
793
|
-
const peerBookSwap = this.peerBookSwaps.get(instance.strandId);
|
|
794
|
-
if (peerBookSwap) {
|
|
795
|
-
this.peerBookSwaps.delete(instance.strandId);
|
|
796
|
-
await peerBookSwap.stop();
|
|
797
|
-
}
|
|
798
738
|
// The revoked-peer enforcer goes with the runtime it gated: a resume
|
|
799
739
|
// rebuilds it with a fresh (initially empty, fail-open) snapshot.
|
|
800
740
|
const revocationEnforcer = this.revocationEnforcers.get(instance.strandId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"strand-instance-manager.js","sourceRoot":"","sources":["../src/strand-instance-manager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"strand-instance-manager.js","sourceRoot":"","sources":["../src/strand-instance-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { StrandNetworkStateStore } from './strand-network-state.js';
|
|
2
|
+
/**
|
|
3
|
+
* File-backed {@link StrandNetworkStateStore}. Open via {@link open}, which loads
|
|
4
|
+
* the existing file and returns the cross-platform store over it; an absent,
|
|
5
|
+
* corrupt, or wrong-party file is a cold start (no saved state) while a
|
|
6
|
+
* present-but-unreadable file throws. Those rules and their reasoning live on
|
|
7
|
+
* `NodeLocalSnapshot.open`.
|
|
8
|
+
*/
|
|
9
|
+
export declare const FileStrandNetworkStateStore: {
|
|
10
|
+
/** Load (or cold-start) the party's strand network state from a file in `dir`. */
|
|
11
|
+
open(dir: string, partyId: string): Promise<StrandNetworkStateStore>;
|
|
12
|
+
};
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Node-only file-backed {@link StrandNetworkStateStore}: one JSON file per party
|
|
3
|
+
* under a configured directory (the node's state directory — `cadre-cli` passes
|
|
4
|
+
* `ResolvedConfig.nodeStateDir`), holding the node-local, non-replicated network
|
|
5
|
+
* state of every strand this node runs (each strand node's saved FRET routing
|
|
6
|
+
* table, with its peers' signed address records).
|
|
7
|
+
*
|
|
8
|
+
* Nothing but the file itself lives here: the envelope, load policy, per-entry
|
|
9
|
+
* check and the serialised snapshot writes are cross-platform in
|
|
10
|
+
* `PersistentStrandNetworkStateStore` / `node-local-snapshot.ts`, and the file is a
|
|
11
|
+
* `FileDurableSlot`. This module exists only so the `node:fs` edge stays out of the
|
|
12
|
+
* package's cross-platform default entry (`./index.js`) — import it from the
|
|
13
|
+
* dedicated subpath instead:
|
|
14
|
+
*
|
|
15
|
+
* ```ts
|
|
16
|
+
* import { FileStrandNetworkStateStore } from '@serfab/cadre-core/strand-network-state-file';
|
|
17
|
+
* ```
|
|
18
|
+
*
|
|
19
|
+
* Same isolation pattern as `bootstrap-peer-store-file.ts` / `key-store-file.ts`.
|
|
20
|
+
*/
|
|
21
|
+
import { FileDurableSlot } from './file-durable-slot.js';
|
|
22
|
+
import { PersistentStrandNetworkStateStore } from './strand-network-state.js';
|
|
23
|
+
/** Base name of the store file: `<dir>/strand-network.<encoded partyId>.json`. */
|
|
24
|
+
const SLOT_NAME = 'strand-network';
|
|
25
|
+
/**
|
|
26
|
+
* File-backed {@link StrandNetworkStateStore}. Open via {@link open}, which loads
|
|
27
|
+
* the existing file and returns the cross-platform store over it; an absent,
|
|
28
|
+
* corrupt, or wrong-party file is a cold start (no saved state) while a
|
|
29
|
+
* present-but-unreadable file throws. Those rules and their reasoning live on
|
|
30
|
+
* `NodeLocalSnapshot.open`.
|
|
31
|
+
*/
|
|
32
|
+
export const FileStrandNetworkStateStore = {
|
|
33
|
+
/** Load (or cold-start) the party's strand network state from a file in `dir`. */
|
|
34
|
+
async open(dir, partyId) {
|
|
35
|
+
return PersistentStrandNetworkStateStore.open(new FileDurableSlot(dir, SLOT_NAME, partyId), partyId);
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
//# sourceMappingURL=strand-network-state-file.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"strand-network-state-file.js","sourceRoot":"","sources":["../src/strand-network-state-file.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,iCAAiC,EAAE,MAAM,2BAA2B,CAAC;AAG9E,kFAAkF;AAClF,MAAM,SAAS,GAAG,gBAAgB,CAAC;AAEnC;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG;IAC1C,kFAAkF;IAClF,KAAK,CAAC,IAAI,CAAC,GAAW,EAAE,OAAe;QACtC,OAAO,iCAAiC,CAAC,IAAI,CAAC,IAAI,eAAe,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;IACtG,CAAC;CACD,CAAC"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import type { NetworkStatePersistence, PersistedNetworkState } from '@optimystic/db-p2p';
|
|
2
|
+
import { type DurableSlot } from './node-local-snapshot.js';
|
|
3
|
+
export interface StrandNetworkStateStore {
|
|
4
|
+
/** Party this store is scoped to. */
|
|
5
|
+
readonly partyId: string;
|
|
6
|
+
/**
|
|
7
|
+
* The last state saved for `strandId`, or undefined. Synchronous: served from the
|
|
8
|
+
* in-memory half of the store. The returned object is the stored one — callers
|
|
9
|
+
* must not mutate it.
|
|
10
|
+
*/
|
|
11
|
+
load(strandId: string): PersistedNetworkState | undefined;
|
|
12
|
+
/**
|
|
13
|
+
* Replace the strand's state. Implementations MUST reflect it in {@link load}
|
|
14
|
+
* SYNCHRONOUSLY; the returned promise tracks durability only. The store keeps
|
|
15
|
+
* `state` itself, so the caller must not mutate it afterwards (db-p2p builds a
|
|
16
|
+
* fresh object per save).
|
|
17
|
+
*/
|
|
18
|
+
save(strandId: string, state: PersistedNetworkState): Promise<void>;
|
|
19
|
+
/**
|
|
20
|
+
* Drop the strand's state — for a strand this node unpublished or left, whose
|
|
21
|
+
* peers must not be re-imported by a later launch. A no-op for the stored state
|
|
22
|
+
* when nothing is held, but {@link forgetGeneration} advances either way. Same
|
|
23
|
+
* contract as {@link save}: reflected synchronously, the promise tracks durability.
|
|
24
|
+
*/
|
|
25
|
+
forget(strandId: string): Promise<void>;
|
|
26
|
+
/**
|
|
27
|
+
* How many times `strandId` has been forgotten through this store instance.
|
|
28
|
+
* {@link strandNetworkStatePersistence} compares it against the value it captured
|
|
29
|
+
* to drop a save that arrives after the forget.
|
|
30
|
+
*/
|
|
31
|
+
forgetGeneration(strandId: string): number;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Ephemeral in-memory store for nodes without durable storage (tests, and the
|
|
35
|
+
* default when nothing is injected). Same contract, no disk: a strand relaunched in
|
|
36
|
+
* the same process re-imports its table (a hibernation resume, a stop()→start()),
|
|
37
|
+
* and a restarted process starts with none.
|
|
38
|
+
*/
|
|
39
|
+
export declare class MemoryStrandNetworkStateStore implements StrandNetworkStateStore {
|
|
40
|
+
readonly partyId: string;
|
|
41
|
+
private readonly strands;
|
|
42
|
+
private readonly generations;
|
|
43
|
+
constructor(partyId: string);
|
|
44
|
+
load(strandId: string): PersistedNetworkState | undefined;
|
|
45
|
+
save(strandId: string, state: PersistedNetworkState): Promise<void>;
|
|
46
|
+
forget(strandId: string): Promise<void>;
|
|
47
|
+
forgetGeneration(strandId: string): number;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Durable {@link StrandNetworkStateStore} over an app-supplied {@link DurableSlot} —
|
|
51
|
+
* the cross-platform half of every persistent backend (the Node
|
|
52
|
+
* `FileStrandNetworkStateStore` is this class over a file slot).
|
|
53
|
+
*
|
|
54
|
+
* Construct via {@link open}. Load and persist policy — what an absent, corrupt,
|
|
55
|
+
* foreign-party or unreadable slot does (the last one THROWS), and what a failed
|
|
56
|
+
* persist does — is documented once on `NodeLocalSnapshot`. Writes are serialised
|
|
57
|
+
* in-process by the snapshot's write chain, so several strand nodes saving at once
|
|
58
|
+
* cannot interleave partial snapshots.
|
|
59
|
+
*
|
|
60
|
+
* NOTE: an entry leaves only through {@link forget}, and nothing ages one out. A
|
|
61
|
+
* strand this machine detached because the strand watcher saw its control row gone
|
|
62
|
+
* (another machine of the party unpublished or left it), or one stopped and never
|
|
63
|
+
* relaunched, keeps its entry and it is rewritten with every save. The watcher path
|
|
64
|
+
* (`CadreNode.handleStrandRemoved`) does not forget because its removal is not proof
|
|
65
|
+
* the strand is gone: its query answers an empty list while the control database is
|
|
66
|
+
* absent. If snapshots grow on machines that host many short-lived strands, or a
|
|
67
|
+
* re-published strand id is seen importing its predecessor's table, drop entries at
|
|
68
|
+
* {@link open} that are older than FRET's own 14-day record age.
|
|
69
|
+
*/
|
|
70
|
+
export declare class PersistentStrandNetworkStateStore implements StrandNetworkStateStore {
|
|
71
|
+
private readonly snapshot;
|
|
72
|
+
private readonly generations;
|
|
73
|
+
private constructor();
|
|
74
|
+
/** Load (or cold-start) the party's strand network state from `slot`. */
|
|
75
|
+
static open(slot: DurableSlot, partyId: string): Promise<PersistentStrandNetworkStateStore>;
|
|
76
|
+
get partyId(): string;
|
|
77
|
+
load(strandId: string): PersistedNetworkState | undefined;
|
|
78
|
+
/**
|
|
79
|
+
* Replace, visible via {@link load} synchronously, then the full snapshot is persisted.
|
|
80
|
+
*
|
|
81
|
+
* NOTE: every save rewrites the party's whole snapshot — every strand's table —
|
|
82
|
+
* and db-p2p saves on every `connection:open`. Fine for a handful of strands; if
|
|
83
|
+
* slot writes show up in profiles, move to one slot per strand or coalesce saves.
|
|
84
|
+
*/
|
|
85
|
+
save(strandId: string, state: PersistedNetworkState): Promise<void>;
|
|
86
|
+
/** Forget, gone from {@link load} synchronously, then persisted — unless nothing was there. */
|
|
87
|
+
forget(strandId: string): Promise<void>;
|
|
88
|
+
forgetGeneration(strandId: string): number;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Adapts one strand's slice of the store to db-p2p's `NodeOptions.persistence`.
|
|
92
|
+
* Build one per strand runtime (`StrandInstanceManager.buildStrandRuntime` does).
|
|
93
|
+
*
|
|
94
|
+
* A save is dropped once the strand has been forgotten after this adapter was
|
|
95
|
+
* built: db-p2p saves fire-and-forget on connection events, so a node being torn
|
|
96
|
+
* down can still save after `forget(strandId)`, which would put the entry back.
|
|
97
|
+
* Saving resumes with the next runtime built for the strand (a relaunch or a
|
|
98
|
+
* hibernation resume), which builds a new adapter.
|
|
99
|
+
*
|
|
100
|
+
* NOTE: a strand that keeps running after its state was forgotten (self-revocation
|
|
101
|
+
* forgets but stops nothing) saves nothing more until its runtime is rebuilt. If a
|
|
102
|
+
* removed party is routinely re-admitted without a relaunch, re-arm saving at
|
|
103
|
+
* re-admission.
|
|
104
|
+
*
|
|
105
|
+
* NOTE: db-p2p saves on `connection:open` and on a changed serving verdict, not when
|
|
106
|
+
* a peer's addresses change. A peer whose address rotates during a long connection
|
|
107
|
+
* (a relay reservation moving) is saved with its old record until the next save,
|
|
108
|
+
* which matters only to a restart in between. If restarts are seen dialing rotated
|
|
109
|
+
* addresses, the fix is upstream: db-p2p saving when FRET's table changes.
|
|
110
|
+
*/
|
|
111
|
+
export declare function strandNetworkStatePersistence(store: StrandNetworkStateStore, strandId: string): NetworkStatePersistence;
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Node-local, NON-replicated **strand network state**: for each strand this node
|
|
3
|
+
* runs, the last network state Optimystic's db-p2p saved for that strand's libp2p
|
|
4
|
+
* node — its FRET routing table (each peer entry carrying the peer's signed libp2p
|
|
5
|
+
* address record), the network-size high-water mark, and which of those peers were
|
|
6
|
+
* seen serving the strand. db-p2p reads it back once when the strand node is built
|
|
7
|
+
* and re-imports the table, which hands every record to the libp2p peerStore, so a
|
|
8
|
+
* restarted strand node already has addresses for the peers it was talking to
|
|
9
|
+
* (gotchoices/sereus#18).
|
|
10
|
+
*
|
|
11
|
+
* The payload is opaque here. db-p2p owns its version fence (a snapshot whose
|
|
12
|
+
* `version` it does not write is discarded whole) and FRET owns table validation
|
|
13
|
+
* (a structurally corrupt table is refused, a stale record dropped). This module
|
|
14
|
+
* checks only that an entry is a plain object with a numeric `version`, and never
|
|
15
|
+
* rewrites one.
|
|
16
|
+
*
|
|
17
|
+
* Three implementations mirroring `bootstrap-peer-store.ts` (same "must outlive the
|
|
18
|
+
* process, storage differs per platform" problem; both persistent forms share
|
|
19
|
+
* `node-local-snapshot.ts`):
|
|
20
|
+
* - {@link MemoryStrandNetworkStateStore} (this module, cross-platform) — ephemeral;
|
|
21
|
+
* the default when no store is injected via `CadreNodeConfig.strandNetworkState`.
|
|
22
|
+
* A node using it restarts with an empty routing table.
|
|
23
|
+
* - {@link PersistentStrandNetworkStateStore} (this module, cross-platform) —
|
|
24
|
+
* durable over any `DurableSlot` the embedding app supplies.
|
|
25
|
+
* - `FileStrandNetworkStateStore` — the above over a Node file in the node's state
|
|
26
|
+
* directory; Node-only, behind the subpath
|
|
27
|
+
* `@serfab/cadre-core/strand-network-state-file` so `node:fs` never lands in the
|
|
28
|
+
* RN/browser graph.
|
|
29
|
+
*
|
|
30
|
+
* One store per NODE holding every strand, keyed by strand id, so the embedder
|
|
31
|
+
* wires one slot, like the other node-local stores.
|
|
32
|
+
*
|
|
33
|
+
* **Nothing here is trust-bearing.** A routing-table entry grants no authority:
|
|
34
|
+
* every address record is signed by the peer it names and verified by FRET at
|
|
35
|
+
* import, and the dialed peer authenticates by peer id at the handshake.
|
|
36
|
+
*/
|
|
37
|
+
import debug from 'debug';
|
|
38
|
+
import { NodeLocalSnapshot } from './node-local-snapshot.js';
|
|
39
|
+
const log = debug('sereus:cadre:strand-network-state');
|
|
40
|
+
/** Per-strand forget counts; the in-process half of {@link StrandNetworkStateStore.forgetGeneration}. */
|
|
41
|
+
class ForgetGenerations {
|
|
42
|
+
constructor() {
|
|
43
|
+
this.counts = new Map();
|
|
44
|
+
}
|
|
45
|
+
of(strandId) {
|
|
46
|
+
return this.counts.get(strandId) ?? 0;
|
|
47
|
+
}
|
|
48
|
+
advance(strandId) {
|
|
49
|
+
this.counts.set(strandId, this.of(strandId) + 1);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Ephemeral in-memory store for nodes without durable storage (tests, and the
|
|
54
|
+
* default when nothing is injected). Same contract, no disk: a strand relaunched in
|
|
55
|
+
* the same process re-imports its table (a hibernation resume, a stop()→start()),
|
|
56
|
+
* and a restarted process starts with none.
|
|
57
|
+
*/
|
|
58
|
+
export class MemoryStrandNetworkStateStore {
|
|
59
|
+
constructor(partyId) {
|
|
60
|
+
this.partyId = partyId;
|
|
61
|
+
this.strands = new Map();
|
|
62
|
+
this.generations = new ForgetGenerations();
|
|
63
|
+
}
|
|
64
|
+
load(strandId) {
|
|
65
|
+
return this.strands.get(strandId);
|
|
66
|
+
}
|
|
67
|
+
async save(strandId, state) {
|
|
68
|
+
this.strands.set(strandId, state);
|
|
69
|
+
}
|
|
70
|
+
async forget(strandId) {
|
|
71
|
+
this.generations.advance(strandId);
|
|
72
|
+
if (this.strands.delete(strandId)) {
|
|
73
|
+
log('strand %s: network state forgotten (party=%s)', strandId, this.partyId);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
forgetGeneration(strandId) {
|
|
77
|
+
return this.generations.of(strandId);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* What the store persists: `strands` maps strandId -> the state db-p2p saved. An
|
|
82
|
+
* entry that is not a plain object with a numeric `version` is dropped and its
|
|
83
|
+
* siblings kept (`drop-entry`): nothing here is trust-bearing, and one damaged
|
|
84
|
+
* strand must not cost every other strand its routing table. Everything past that
|
|
85
|
+
* structural check is db-p2p's and FRET's to judge at import.
|
|
86
|
+
*/
|
|
87
|
+
const STRAND_NETWORK_STATE_SNAPSHOT_SPEC = {
|
|
88
|
+
label: 'strand network state',
|
|
89
|
+
payloadKey: 'strands',
|
|
90
|
+
unusableEntry: 'drop-entry',
|
|
91
|
+
acceptEntry: (_strandId, raw) => {
|
|
92
|
+
if (typeof raw !== 'object' || raw === null || Array.isArray(raw))
|
|
93
|
+
return undefined;
|
|
94
|
+
if (typeof raw.version !== 'number')
|
|
95
|
+
return undefined;
|
|
96
|
+
return raw;
|
|
97
|
+
}
|
|
98
|
+
};
|
|
99
|
+
/**
|
|
100
|
+
* Durable {@link StrandNetworkStateStore} over an app-supplied {@link DurableSlot} —
|
|
101
|
+
* the cross-platform half of every persistent backend (the Node
|
|
102
|
+
* `FileStrandNetworkStateStore` is this class over a file slot).
|
|
103
|
+
*
|
|
104
|
+
* Construct via {@link open}. Load and persist policy — what an absent, corrupt,
|
|
105
|
+
* foreign-party or unreadable slot does (the last one THROWS), and what a failed
|
|
106
|
+
* persist does — is documented once on `NodeLocalSnapshot`. Writes are serialised
|
|
107
|
+
* in-process by the snapshot's write chain, so several strand nodes saving at once
|
|
108
|
+
* cannot interleave partial snapshots.
|
|
109
|
+
*
|
|
110
|
+
* NOTE: an entry leaves only through {@link forget}, and nothing ages one out. A
|
|
111
|
+
* strand this machine detached because the strand watcher saw its control row gone
|
|
112
|
+
* (another machine of the party unpublished or left it), or one stopped and never
|
|
113
|
+
* relaunched, keeps its entry and it is rewritten with every save. The watcher path
|
|
114
|
+
* (`CadreNode.handleStrandRemoved`) does not forget because its removal is not proof
|
|
115
|
+
* the strand is gone: its query answers an empty list while the control database is
|
|
116
|
+
* absent. If snapshots grow on machines that host many short-lived strands, or a
|
|
117
|
+
* re-published strand id is seen importing its predecessor's table, drop entries at
|
|
118
|
+
* {@link open} that are older than FRET's own 14-day record age.
|
|
119
|
+
*/
|
|
120
|
+
export class PersistentStrandNetworkStateStore {
|
|
121
|
+
constructor(snapshot) {
|
|
122
|
+
this.snapshot = snapshot;
|
|
123
|
+
this.generations = new ForgetGenerations();
|
|
124
|
+
}
|
|
125
|
+
/** Load (or cold-start) the party's strand network state from `slot`. */
|
|
126
|
+
static async open(slot, partyId) {
|
|
127
|
+
return new PersistentStrandNetworkStateStore(await NodeLocalSnapshot.open(slot, partyId, STRAND_NETWORK_STATE_SNAPSHOT_SPEC));
|
|
128
|
+
}
|
|
129
|
+
get partyId() {
|
|
130
|
+
return this.snapshot.partyId;
|
|
131
|
+
}
|
|
132
|
+
load(strandId) {
|
|
133
|
+
return this.snapshot.get(strandId);
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Replace, visible via {@link load} synchronously, then the full snapshot is persisted.
|
|
137
|
+
*
|
|
138
|
+
* NOTE: every save rewrites the party's whole snapshot — every strand's table —
|
|
139
|
+
* and db-p2p saves on every `connection:open`. Fine for a handful of strands; if
|
|
140
|
+
* slot writes show up in profiles, move to one slot per strand or coalesce saves.
|
|
141
|
+
*/
|
|
142
|
+
save(strandId, state) {
|
|
143
|
+
return this.snapshot.put(strandId, state);
|
|
144
|
+
}
|
|
145
|
+
/** Forget, gone from {@link load} synchronously, then persisted — unless nothing was there. */
|
|
146
|
+
forget(strandId) {
|
|
147
|
+
this.generations.advance(strandId);
|
|
148
|
+
if (this.snapshot.has(strandId)) {
|
|
149
|
+
log('strand %s: network state forgotten (party=%s); persisting', strandId, this.partyId);
|
|
150
|
+
}
|
|
151
|
+
return this.snapshot.remove(strandId);
|
|
152
|
+
}
|
|
153
|
+
forgetGeneration(strandId) {
|
|
154
|
+
return this.generations.of(strandId);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Adapts one strand's slice of the store to db-p2p's `NodeOptions.persistence`.
|
|
159
|
+
* Build one per strand runtime (`StrandInstanceManager.buildStrandRuntime` does).
|
|
160
|
+
*
|
|
161
|
+
* A save is dropped once the strand has been forgotten after this adapter was
|
|
162
|
+
* built: db-p2p saves fire-and-forget on connection events, so a node being torn
|
|
163
|
+
* down can still save after `forget(strandId)`, which would put the entry back.
|
|
164
|
+
* Saving resumes with the next runtime built for the strand (a relaunch or a
|
|
165
|
+
* hibernation resume), which builds a new adapter.
|
|
166
|
+
*
|
|
167
|
+
* NOTE: a strand that keeps running after its state was forgotten (self-revocation
|
|
168
|
+
* forgets but stops nothing) saves nothing more until its runtime is rebuilt. If a
|
|
169
|
+
* removed party is routinely re-admitted without a relaunch, re-arm saving at
|
|
170
|
+
* re-admission.
|
|
171
|
+
*
|
|
172
|
+
* NOTE: db-p2p saves on `connection:open` and on a changed serving verdict, not when
|
|
173
|
+
* a peer's addresses change. A peer whose address rotates during a long connection
|
|
174
|
+
* (a relay reservation moving) is saved with its old record until the next save,
|
|
175
|
+
* which matters only to a restart in between. If restarts are seen dialing rotated
|
|
176
|
+
* addresses, the fix is upstream: db-p2p saving when FRET's table changes.
|
|
177
|
+
*/
|
|
178
|
+
export function strandNetworkStatePersistence(store, strandId) {
|
|
179
|
+
const generation = store.forgetGeneration(strandId);
|
|
180
|
+
return {
|
|
181
|
+
load: async () => store.load(strandId),
|
|
182
|
+
save: async (state) => {
|
|
183
|
+
if (store.forgetGeneration(strandId) !== generation) {
|
|
184
|
+
log('strand %s: dropping a network-state save that arrived after the strand was forgotten', strandId);
|
|
185
|
+
return;
|
|
186
|
+
}
|
|
187
|
+
await store.save(strandId, state);
|
|
188
|
+
}
|
|
189
|
+
};
|
|
190
|
+
}
|
|
191
|
+
//# sourceMappingURL=strand-network-state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"strand-network-state.js","sourceRoot":"","sources":["../src/strand-network-state.ts"],"names":[],"mappings":"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"}
|