@serfab/cadre-core 1.17.0 → 1.19.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 +3 -2
- package/dist/cadre-invite-protocol.d.ts +35 -13
- package/dist/cadre-invite-protocol.js +90 -25
- package/dist/cadre-invite-protocol.js.map +1 -1
- package/dist/cadre-node.d.ts +586 -255
- package/dist/cadre-node.js +1182 -566
- package/dist/cadre-node.js.map +1 -1
- package/dist/control-cohort.d.ts +66 -9
- package/dist/control-cohort.js +67 -9
- package/dist/control-cohort.js.map +1 -1
- package/dist/control-database.d.ts +451 -193
- package/dist/control-database.js +701 -359
- package/dist/control-database.js.map +1 -1
- package/dist/control-formation-recorder.d.ts +46 -43
- package/dist/control-formation-recorder.js +77 -78
- package/dist/control-formation-recorder.js.map +1 -1
- package/dist/control-protocol-guard.d.ts +6 -0
- package/dist/control-protocol-guard.js +14 -2
- package/dist/control-protocol-guard.js.map +1 -1
- package/dist/control-schema-version.d.ts +48 -31
- package/dist/control-schema-version.js +67 -45
- package/dist/control-schema-version.js.map +1 -1
- package/dist/control-schema.d.ts +8 -8
- package/dist/control-schema.js +16 -16
- package/dist/control-schema.js.map +1 -1
- package/dist/control-write-retry.d.ts +42 -7
- package/dist/control-write-retry.js +87 -19
- package/dist/control-write-retry.js.map +1 -1
- package/dist/enrolled-machine-store.d.ts +3 -3
- package/dist/enrolled-machine-store.js +3 -3
- package/dist/formation-token.d.ts +48 -0
- package/dist/formation-token.js +26 -0
- package/dist/formation-token.js.map +1 -0
- package/dist/index.d.ts +15 -14
- package/dist/index.js +17 -14
- package/dist/index.js.map +1 -1
- package/dist/joined-strand-store.d.ts +26 -9
- package/dist/joined-strand-store.js +63 -24
- package/dist/joined-strand-store.js.map +1 -1
- package/dist/link-budget.d.ts +9 -7
- package/dist/link-budget.js +9 -7
- package/dist/link-budget.js.map +1 -1
- package/dist/member-redemption.d.ts +15 -9
- package/dist/member-redemption.js +13 -8
- package/dist/member-redemption.js.map +1 -1
- package/dist/membership-view.d.ts +91 -0
- package/dist/membership-view.js +110 -0
- package/dist/membership-view.js.map +1 -0
- package/dist/owner-grant-protocol.d.ts +11 -7
- package/dist/owner-grant-protocol.js +31 -17
- package/dist/owner-grant-protocol.js.map +1 -1
- package/dist/peer-addr-book.d.ts +10 -1
- package/dist/peer-addr-book.js +4 -3
- package/dist/peer-addr-book.js.map +1 -1
- package/dist/peer-join-backfill.d.ts +96 -30
- package/dist/peer-join-backfill.js +272 -128
- package/dist/peer-join-backfill.js.map +1 -1
- package/dist/pending-join-runner.d.ts +48 -18
- package/dist/pending-join-runner.js +74 -56
- package/dist/pending-join-runner.js.map +1 -1
- package/dist/seed-bootstrap.d.ts +47 -40
- package/dist/seed-bootstrap.js +66 -61
- package/dist/seed-bootstrap.js.map +1 -1
- package/dist/self-address-update.d.ts +13 -0
- package/dist/self-address-update.js +19 -0
- package/dist/self-address-update.js.map +1 -0
- package/dist/strand-database.d.ts +23 -2
- package/dist/strand-database.js +26 -6
- package/dist/strand-database.js.map +1 -1
- package/dist/strand-first-sync-gate.d.ts +176 -89
- package/dist/strand-first-sync-gate.js +288 -122
- package/dist/strand-first-sync-gate.js.map +1 -1
- package/dist/strand-formation-deadlines.d.ts +9 -9
- package/dist/strand-formation-deadlines.js +9 -9
- package/dist/strand-formation-manager.d.ts +23 -17
- package/dist/strand-formation-manager.js +46 -44
- package/dist/strand-formation-manager.js.map +1 -1
- package/dist/strand-formation-protocol.d.ts +5 -8
- package/dist/strand-formation-protocol.js +101 -16
- package/dist/strand-formation-protocol.js.map +1 -1
- package/dist/strand-instance-manager.d.ts +26 -17
- package/dist/strand-instance-manager.js +119 -50
- package/dist/strand-instance-manager.js.map +1 -1
- package/dist/strand-membership-reconciler.d.ts +16 -13
- package/dist/strand-membership-reconciler.js +28 -22
- package/dist/strand-membership-reconciler.js.map +1 -1
- package/dist/strand-membership-writer.d.ts +40 -28
- package/dist/strand-membership-writer.js +212 -153
- package/dist/strand-membership-writer.js.map +1 -1
- package/dist/strand-move.js +5 -2
- package/dist/strand-move.js.map +1 -1
- package/dist/strand-revocation-enforcer.d.ts +134 -60
- package/dist/strand-revocation-enforcer.js +144 -71
- package/dist/strand-revocation-enforcer.js.map +1 -1
- package/dist/strand-solicitation.d.ts +50 -39
- package/dist/strand-solicitation.js +10 -3
- package/dist/strand-solicitation.js.map +1 -1
- package/dist/strand-watcher.d.ts +80 -13
- package/dist/strand-watcher.js +152 -48
- package/dist/strand-watcher.js.map +1 -1
- package/dist/table-change-watch.d.ts +63 -0
- package/dist/table-change-watch.js +209 -0
- package/dist/table-change-watch.js.map +1 -0
- package/dist/timeout-scheduler.d.ts +4 -3
- package/dist/timeout-scheduler.js +4 -3
- package/dist/timeout-scheduler.js.map +1 -1
- package/dist/types.d.ts +90 -49
- package/dist/types.js +4 -4
- package/dist/types.js.map +1 -1
- package/package.json +8 -8
- package/src/cadre-invite-protocol.ts +119 -31
- package/src/cadre-node.ts +1289 -588
- package/src/control-cohort.ts +86 -9
- package/src/control-database.ts +848 -403
- package/src/control-formation-recorder.ts +359 -353
- package/src/control-protocol-guard.ts +16 -2
- package/src/control-schema-version.ts +101 -51
- package/src/control-schema.ts +16 -16
- package/src/control-write-retry.ts +91 -19
- package/src/delegate-admission.ts +351 -351
- package/src/enrolled-machine-store.ts +3 -3
- package/src/formation-token.ts +63 -0
- package/src/index.ts +30 -18
- package/src/joined-strand-store.ts +69 -24
- package/src/link-budget.ts +9 -7
- package/src/member-redemption.ts +20 -13
- package/src/membership-view.ts +144 -0
- package/src/owner-grant-protocol.ts +33 -18
- package/src/peer-addr-book.ts +4 -3
- package/src/peer-join-backfill.ts +961 -761
- package/src/pending-join-runner.ts +76 -53
- package/src/seed-bootstrap.ts +72 -67
- package/src/self-address-update.ts +19 -0
- package/src/strand-database.ts +352 -322
- package/src/strand-first-sync-gate.ts +334 -134
- package/src/strand-formation-deadlines.ts +227 -227
- package/src/strand-formation-manager.ts +731 -725
- package/src/strand-formation-protocol.ts +122 -24
- package/src/strand-instance-manager.ts +2092 -2026
- package/src/strand-membership-reconciler.ts +31 -25
- package/src/strand-membership-writer.ts +2093 -2019
- package/src/strand-move.ts +5 -2
- package/src/strand-revocation-enforcer.ts +740 -654
- package/src/strand-solicitation.ts +61 -34
- package/src/strand-watcher.ts +175 -56
- package/src/table-change-watch.ts +285 -0
- package/src/timeout-scheduler.ts +29 -28
- package/src/types.ts +89 -51
package/dist/seed-bootstrap.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Libp2p } from '@libp2p/interface';
|
|
2
2
|
import { type PeerDialBudget } from './peer-dial.js';
|
|
3
|
-
import type { ControlNetworkSeed, SeedPeer, SeedAckMessage, SeedDeliveryTarget, AuthorizePeerOptions, ApplySeedResult, AddDroneOptions, DroneInitResult, CadreInviteRow, OwnerGrantRow, PeerAddressRecord, DeviceTokenRecord, RevocationRow,
|
|
4
|
-
import type { ControlDatabase } from './control-database.js';
|
|
3
|
+
import type { ControlNetworkSeed, SeedPeer, SeedDialTarget, SeedAckMessage, SeedDeliveryTarget, AuthorizePeerOptions, ApplySeedResult, AddDroneOptions, DroneInitResult, CadreInviteRow, OwnerGrantRow, PeerAddressRecord, DeviceTokenRecord, RevocationRow, MachineRemovalResult } from './types.js';
|
|
4
|
+
import type { CadrePeerRetouchMode, CadrePeerRetouchOutcome, ControlDatabase } from './control-database.js';
|
|
5
5
|
import { type SeedTrustPolicy } from './seed-trust-policy.js';
|
|
6
6
|
import type { TrustedOwnerStore } from './trusted-owner-store.js';
|
|
7
7
|
import { type OwnerSign, type OwnerSigner } from './owner-signer.js';
|
|
@@ -33,6 +33,15 @@ export declare function canonicalSeedPayload(seed: Pick<ControlNetworkSeed, 'par
|
|
|
33
33
|
* proof to one seed through this value) all name the same bytes.
|
|
34
34
|
*/
|
|
35
35
|
export declare function seedDigest(seed: Pick<ControlNetworkSeed, 'partyId' | 'peers'>): string;
|
|
36
|
+
/**
|
|
37
|
+
* The peers `seed` nominates for dialing: its preferred peers (`SeedPeer.preferred`: the machine
|
|
38
|
+
* that minted it and every always-on machine) that have an address and are not `selfPeerId`.
|
|
39
|
+
*
|
|
40
|
+
* Self is dropped because `createSeed` projects every non-revoked CadrePeer row, so a preferred
|
|
41
|
+
* machine applying a seed minted after it joined finds itself in the list, and a dial of self
|
|
42
|
+
* always throws. An undefined `selfPeerId` matches nothing.
|
|
43
|
+
*/
|
|
44
|
+
export declare function seedDialTargets(seed: ControlNetworkSeed, selfPeerId: string | undefined): SeedDialTarget[];
|
|
36
45
|
/**
|
|
37
46
|
* Merge a peer list's addresses into `node`'s peer store, so the node can dial them: the
|
|
38
47
|
* seed's peers after its signature and trust checks, the dial hints a member returns on
|
|
@@ -133,7 +142,8 @@ export interface SeedEventCallbacks {
|
|
|
133
142
|
/** Called when a seed is received via the protocol */
|
|
134
143
|
onSeedReceived?: (partyId: string, peerId: string) => void;
|
|
135
144
|
/**
|
|
136
|
-
* Called when a seed
|
|
145
|
+
* Called when a seed delivered over the protocol has been verified, merged and
|
|
146
|
+
* acknowledged; the dials of its preferred peers follow, so this waits on no connection.
|
|
137
147
|
*
|
|
138
148
|
* `seed` is the applied seed itself: the inbound protocol handler applies it
|
|
139
149
|
* INSIDE the service, so this callback is the only seam through which a
|
|
@@ -288,10 +298,10 @@ export declare class SeedBootstrapService {
|
|
|
288
298
|
/**
|
|
289
299
|
* Return the configured owner signer, or throw if none is set. The single precondition
|
|
290
300
|
* gate for every owner-signed write. {@link removePeer} / {@link reauthorizePeer} read the
|
|
291
|
-
* row
|
|
292
|
-
*
|
|
293
|
-
*
|
|
294
|
-
*
|
|
301
|
+
* row from the DB BEFORE they sign, so they call this up front — otherwise a signerless
|
|
302
|
+
* service would either surface the wrong "Control database not initialized" error or,
|
|
303
|
+
* worse, silently no-op when the target row is absent (their early absent return) instead
|
|
304
|
+
* of rejecting.
|
|
295
305
|
*/
|
|
296
306
|
private requireOwnerSigner;
|
|
297
307
|
/** The control database {@link initialize} attached, or a throw. */
|
|
@@ -365,24 +375,28 @@ export declare class SeedBootstrapService {
|
|
|
365
375
|
*/
|
|
366
376
|
removeMachine(target: Parameters<ControlDatabase['removeMachine']>[0], sign?: OwnerSign): Promise<MachineRemovalResult>;
|
|
367
377
|
/**
|
|
368
|
-
* Owner "re-touch" of an existing `CadrePeer` membership row
|
|
369
|
-
*
|
|
370
|
-
* the write-while-alone re-replication
|
|
371
|
-
* a membership row that committed local-only
|
|
372
|
-
* pushed to the cohort once it grows
|
|
373
|
-
*
|
|
374
|
-
*
|
|
378
|
+
* Owner "re-touch" of an existing `CadrePeer` membership row, in one of two modes
|
|
379
|
+
* ({@link CadrePeerRetouchMode}): `'rebroadcast'` bumps `UpdatedAt` and re-vouches the row so
|
|
380
|
+
* it is re-emitted as a fresh, broadcasting transaction — the write-while-alone re-replication
|
|
381
|
+
* primitive (`control-write-ensure-replicated`): a membership row that committed local-only
|
|
382
|
+
* (its block's cluster ≤1 at insert) is pushed to the cohort once it grows — and writes only
|
|
383
|
+
* while the machine has not self-published; `'revouch'` rebinds the voucher to this node's
|
|
384
|
+
* owner key, leaving `UpdatedAt` alone, whether or not the machine has self-published
|
|
385
|
+
* (`CadreNode.removeOwner`).
|
|
386
|
+
*
|
|
387
|
+
* The row read, the mode's decision, the stamp bump, the voucher signature, the write lock,
|
|
388
|
+
* the lost-update retry and the membership notify are
|
|
375
389
|
* {@link ControlDatabase.reauthorizeCadrePeer}'s — including the caveat that it rebinds
|
|
376
390
|
* `VouchOwner` to this node's owner key. What stays here is the owner-signer precondition.
|
|
377
391
|
*
|
|
378
|
-
* A no-op (no throw, no notify) when the row does not exist.
|
|
379
|
-
*
|
|
380
392
|
* @param peerId - the membership row to re-touch.
|
|
381
|
-
* @param
|
|
393
|
+
* @param mode - re-broadcast or re-vouch.
|
|
394
|
+
* @returns what was found and done ({@link CadrePeerRetouchOutcome}); an absent row, or a
|
|
395
|
+
* self-published one in `'rebroadcast'` mode, writes nothing and does not throw.
|
|
382
396
|
* @throws if no owner signer is configured (a non-owner cannot
|
|
383
397
|
* re-sign another peer's row) or the control database is not initialized.
|
|
384
398
|
*/
|
|
385
|
-
reauthorizePeer(peerId: string,
|
|
399
|
+
reauthorizePeer(peerId: string, mode: CadrePeerRetouchMode, sign?: OwnerSign): Promise<CadrePeerRetouchOutcome>;
|
|
386
400
|
/**
|
|
387
401
|
* Owner re-issue of a batch of `Revocation` tombstones: bump each row's
|
|
388
402
|
* `ReissuedAt` so the storage layer re-broadcasts a tombstone that committed
|
|
@@ -400,18 +414,6 @@ export declare class SeedBootstrapService {
|
|
|
400
414
|
* initialized.
|
|
401
415
|
*/
|
|
402
416
|
reissueRevocations(rows: readonly RevocationRow[], reissuedAt: number, sign?: OwnerSign): Promise<number>;
|
|
403
|
-
/**
|
|
404
|
-
* Owner filing of the singleton `Revocation` ledger marker, so the table is never a
|
|
405
|
-
* never-written block that the storage layer re-consults on every read.
|
|
406
|
-
*
|
|
407
|
-
* The signature, the insert-if-absent guard and the `'already-open'` mapping are
|
|
408
|
-
* {@link ControlDatabase.openRevocationLedger}'s. What stays here is the owner-signer
|
|
409
|
-
* precondition.
|
|
410
|
-
*
|
|
411
|
-
* @throws if no owner signer is configured or the control database is not
|
|
412
|
-
* initialized.
|
|
413
|
-
*/
|
|
414
|
-
openRevocationLedger(sign?: OwnerSign): Promise<RevocationLedgerOpenResult>;
|
|
415
417
|
/**
|
|
416
418
|
* Owner-signed INSERT of a `CadreInvite` row — an invitation any member machine can redeem
|
|
417
419
|
* on this owner's behalf ({@link ControlDatabase.insertCadreInvite}). The keypair mint, the
|
|
@@ -505,8 +507,11 @@ export declare class SeedBootstrapService {
|
|
|
505
507
|
* `CadreNode.dialColdStartBootstrap` retries these same addresses on every control-cohort
|
|
506
508
|
* reconcile pass until the control database has siblings.
|
|
507
509
|
*
|
|
508
|
-
* The inbound handler runs this AFTER it has acked and
|
|
509
|
-
* ({@link handleSeedStream}), because an unreachable peer can take `dialBudget.totalMs`.
|
|
510
|
+
* The inbound handler runs this AFTER it has acked, closed the stream and reported the seed
|
|
511
|
+
* applied ({@link handleSeedStream}), because an unreachable peer can take `dialBudget.totalMs`.
|
|
512
|
+
* The node may stop while these dials are in flight (cadre-cli restarts a claimed node on
|
|
513
|
+
* `seed:applied`): the node's stop aborts the dial in flight and every later one is refused
|
|
514
|
+
* at once (`dialAddr`), and each is counted as failed here.
|
|
510
515
|
*/
|
|
511
516
|
private dialPreferredPeers;
|
|
512
517
|
/**
|
|
@@ -635,14 +640,16 @@ export declare class SeedBootstrapService {
|
|
|
635
640
|
private registerProtocolHandler;
|
|
636
641
|
/**
|
|
637
642
|
* Read one inbound seed frame, verify and merge it, write the ack and close the
|
|
638
|
-
* stream, then dial the seed's preferred peers.
|
|
639
|
-
*
|
|
640
|
-
* The ack
|
|
641
|
-
* a dial for `dialBudget.totalMs` (86 s at the default declared link), which is
|
|
642
|
-
* link time and does not belong inside the sender's delivery deadline
|
|
643
|
-
*
|
|
644
|
-
*
|
|
645
|
-
*
|
|
643
|
+
* stream, report the seed applied, then dial the seed's preferred peers.
|
|
644
|
+
*
|
|
645
|
+
* The ack, the close and `onSeedApplied` come BEFORE those dials: an unreachable peer
|
|
646
|
+
* can hold a dial for `dialBudget.totalMs` (86 s at the default declared link), which is
|
|
647
|
+
* not link time and does not belong inside the sender's delivery deadline, nor ahead of
|
|
648
|
+
* a claimed node's restart (which stops this node, so its dials would be wasted). The
|
|
649
|
+
* close is what releases the sender, which reads the ack to end-of-stream, and it is
|
|
650
|
+
* awaited before `onSeedApplied`, so the ack is flushed before anything the callback
|
|
651
|
+
* starts. The stream stays counted in {@link activeStreams} through the dials, so
|
|
652
|
+
* {@link maxConcurrentSeeds} still bounds concurrent dial phases.
|
|
646
653
|
*
|
|
647
654
|
* Hardened against a buggy/compromised own-cadre node: a concurrency cap (over
|
|
648
655
|
* {@link maxConcurrentSeeds}, reply without applying), a read timeout (a peer
|
package/dist/seed-bootstrap.js
CHANGED
|
@@ -72,6 +72,19 @@ export function canonicalSeedPayload(seed) {
|
|
|
72
72
|
export function seedDigest(seed) {
|
|
73
73
|
return digest([canonicalSeedPayload(seed)], 'sha256', 'base64url');
|
|
74
74
|
}
|
|
75
|
+
/**
|
|
76
|
+
* The peers `seed` nominates for dialing: its preferred peers (`SeedPeer.preferred`: the machine
|
|
77
|
+
* that minted it and every always-on machine) that have an address and are not `selfPeerId`.
|
|
78
|
+
*
|
|
79
|
+
* Self is dropped because `createSeed` projects every non-revoked CadrePeer row, so a preferred
|
|
80
|
+
* machine applying a seed minted after it joined finds itself in the list, and a dial of self
|
|
81
|
+
* always throws. An undefined `selfPeerId` matches nothing.
|
|
82
|
+
*/
|
|
83
|
+
export function seedDialTargets(seed, selfPeerId) {
|
|
84
|
+
return seed.peers
|
|
85
|
+
.filter((peer) => peer.preferred && peer.multiaddrs.length > 0 && peer.peerId !== selfPeerId)
|
|
86
|
+
.map(({ peerId, multiaddrs }) => ({ peerId, multiaddrs }));
|
|
87
|
+
}
|
|
75
88
|
/** Add `relayAddr` to the entry for `selfPeerId` in `peers`, when that entry exists and lacks it. */
|
|
76
89
|
function addSelfRelayAddr(peers, selfPeerId, relayAddr) {
|
|
77
90
|
const self = peers.find((peer) => peer.peerId === selfPeerId);
|
|
@@ -354,10 +367,10 @@ export class SeedBootstrapService {
|
|
|
354
367
|
/**
|
|
355
368
|
* Return the configured owner signer, or throw if none is set. The single precondition
|
|
356
369
|
* gate for every owner-signed write. {@link removePeer} / {@link reauthorizePeer} read the
|
|
357
|
-
* row
|
|
358
|
-
*
|
|
359
|
-
*
|
|
360
|
-
*
|
|
370
|
+
* row from the DB BEFORE they sign, so they call this up front — otherwise a signerless
|
|
371
|
+
* service would either surface the wrong "Control database not initialized" error or,
|
|
372
|
+
* worse, silently no-op when the target row is absent (their early absent return) instead
|
|
373
|
+
* of rejecting.
|
|
361
374
|
*/
|
|
362
375
|
requireOwnerSigner() {
|
|
363
376
|
if (!this.config.ownerSigner) {
|
|
@@ -482,34 +495,46 @@ export class SeedBootstrapService {
|
|
|
482
495
|
return await this.withOwnerSign(`Remove the machine ${target.peerId} from the cadre`, sign, (approved) => controlDatabase.removeMachine(target, ownerKey, approved));
|
|
483
496
|
}
|
|
484
497
|
/**
|
|
485
|
-
* Owner "re-touch" of an existing `CadrePeer` membership row
|
|
486
|
-
*
|
|
487
|
-
* the write-while-alone re-replication
|
|
488
|
-
* a membership row that committed local-only
|
|
489
|
-
* pushed to the cohort once it grows
|
|
498
|
+
* Owner "re-touch" of an existing `CadrePeer` membership row, in one of two modes
|
|
499
|
+
* ({@link CadrePeerRetouchMode}): `'rebroadcast'` bumps `UpdatedAt` and re-vouches the row so
|
|
500
|
+
* it is re-emitted as a fresh, broadcasting transaction — the write-while-alone re-replication
|
|
501
|
+
* primitive (`control-write-ensure-replicated`): a membership row that committed local-only
|
|
502
|
+
* (its block's cluster ≤1 at insert) is pushed to the cohort once it grows — and writes only
|
|
503
|
+
* while the machine has not self-published; `'revouch'` rebinds the voucher to this node's
|
|
504
|
+
* owner key, leaving `UpdatedAt` alone, whether or not the machine has self-published
|
|
505
|
+
* (`CadreNode.removeOwner`).
|
|
490
506
|
*
|
|
491
|
-
* The
|
|
507
|
+
* The row read, the mode's decision, the stamp bump, the voucher signature, the write lock,
|
|
508
|
+
* the lost-update retry and the membership notify are
|
|
492
509
|
* {@link ControlDatabase.reauthorizeCadrePeer}'s — including the caveat that it rebinds
|
|
493
510
|
* `VouchOwner` to this node's owner key. What stays here is the owner-signer precondition.
|
|
494
511
|
*
|
|
495
|
-
* A no-op (no throw, no notify) when the row does not exist.
|
|
496
|
-
*
|
|
497
512
|
* @param peerId - the membership row to re-touch.
|
|
498
|
-
* @param
|
|
513
|
+
* @param mode - re-broadcast or re-vouch.
|
|
514
|
+
* @returns what was found and done ({@link CadrePeerRetouchOutcome}); an absent row, or a
|
|
515
|
+
* self-published one in `'rebroadcast'` mode, writes nothing and does not throw.
|
|
499
516
|
* @throws if no owner signer is configured (a non-owner cannot
|
|
500
517
|
* re-sign another peer's row) or the control database is not initialized.
|
|
501
518
|
*/
|
|
502
|
-
async reauthorizePeer(peerId,
|
|
519
|
+
async reauthorizePeer(peerId, mode, sign) {
|
|
503
520
|
// Fail fast on a signerless service before any DB read (see removePeer): a non-owner
|
|
504
521
|
// cannot re-sign the voucher, and must not silently no-op on an absent row.
|
|
505
522
|
const ownerKey = this.requireOwnerSigner().publicKey;
|
|
506
523
|
const controlDatabase = this.requireControlDatabase();
|
|
507
|
-
const
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
524
|
+
const action = mode === 'revouch' ? `Re-vouch the machine ${peerId}` : `Re-issue the membership of ${peerId}`;
|
|
525
|
+
const outcome = await this.withOwnerSign(action, sign, (approved) => controlDatabase.reauthorizeCadrePeer(peerId, mode, ownerKey, approved));
|
|
526
|
+
switch (outcome) {
|
|
527
|
+
case 'absent':
|
|
528
|
+
log('reauthorizePeer(%s): no CadrePeer row for %s (nothing to re-touch)', mode, peerId);
|
|
529
|
+
break;
|
|
530
|
+
case 'self-published':
|
|
531
|
+
log('reauthorizePeer(%s): %s has self-published; its row is its own to refresh', mode, peerId);
|
|
532
|
+
break;
|
|
533
|
+
case 'retouched':
|
|
534
|
+
log('Peer %s re-authorized (%s)', peerId, mode);
|
|
535
|
+
break;
|
|
511
536
|
}
|
|
512
|
-
|
|
537
|
+
return outcome;
|
|
513
538
|
}
|
|
514
539
|
/**
|
|
515
540
|
* Owner re-issue of a batch of `Revocation` tombstones: bump each row's
|
|
@@ -534,24 +559,6 @@ export class SeedBootstrapService {
|
|
|
534
559
|
const controlDatabase = this.requireControlDatabase();
|
|
535
560
|
return await this.withOwnerSign(`Re-send ${rows.length} removal record(s) to the cadre`, sign, (approved) => controlDatabase.reissueRevocations(rows, reissuedAt, ownerKey, approved));
|
|
536
561
|
}
|
|
537
|
-
/**
|
|
538
|
-
* Owner filing of the singleton `Revocation` ledger marker, so the table is never a
|
|
539
|
-
* never-written block that the storage layer re-consults on every read.
|
|
540
|
-
*
|
|
541
|
-
* The signature, the insert-if-absent guard and the `'already-open'` mapping are
|
|
542
|
-
* {@link ControlDatabase.openRevocationLedger}'s. What stays here is the owner-signer
|
|
543
|
-
* precondition.
|
|
544
|
-
*
|
|
545
|
-
* @throws if no owner signer is configured or the control database is not
|
|
546
|
-
* initialized.
|
|
547
|
-
*/
|
|
548
|
-
async openRevocationLedger(sign) {
|
|
549
|
-
// Fail fast on a signerless service before any DB work (see removePeer): a
|
|
550
|
-
// non-owner cannot sign the marker's append digest.
|
|
551
|
-
const ownerKey = this.requireOwnerSigner().publicKey;
|
|
552
|
-
const controlDatabase = this.requireControlDatabase();
|
|
553
|
-
return await this.withOwnerSign('Open the cadre\'s removal ledger', sign, (approved) => controlDatabase.openRevocationLedger(ownerKey, approved));
|
|
554
|
-
}
|
|
555
562
|
/**
|
|
556
563
|
* Owner-signed INSERT of a `CadreInvite` row — an invitation any member machine can redeem
|
|
557
564
|
* on this owner's behalf ({@link ControlDatabase.insertCadreInvite}). The keypair mint, the
|
|
@@ -747,8 +754,11 @@ export class SeedBootstrapService {
|
|
|
747
754
|
* `CadreNode.dialColdStartBootstrap` retries these same addresses on every control-cohort
|
|
748
755
|
* reconcile pass until the control database has siblings.
|
|
749
756
|
*
|
|
750
|
-
* The inbound handler runs this AFTER it has acked and
|
|
751
|
-
* ({@link handleSeedStream}), because an unreachable peer can take `dialBudget.totalMs`.
|
|
757
|
+
* The inbound handler runs this AFTER it has acked, closed the stream and reported the seed
|
|
758
|
+
* applied ({@link handleSeedStream}), because an unreachable peer can take `dialBudget.totalMs`.
|
|
759
|
+
* The node may stop while these dials are in flight (cadre-cli restarts a claimed node on
|
|
760
|
+
* `seed:applied`): the node's stop aborts the dial in flight and every later one is refused
|
|
761
|
+
* at once (`dialAddr`), and each is counted as failed here.
|
|
752
762
|
*/
|
|
753
763
|
async dialPreferredPeers(seed) {
|
|
754
764
|
const node = this.libp2pNode;
|
|
@@ -756,23 +766,16 @@ export class SeedBootstrapService {
|
|
|
756
766
|
log('Seed service shut down before its dials; none attempted');
|
|
757
767
|
return { preferredDialsAttempted: 0, preferredDialsFailed: 0 };
|
|
758
768
|
}
|
|
759
|
-
//
|
|
760
|
-
//
|
|
761
|
-
//
|
|
762
|
-
// Optional-chained: partial libp2p handles (unit-test doubles) omit `peerId`,
|
|
763
|
-
// and an undefined self simply matches nothing.
|
|
769
|
+
// Self is not dialed: dialing self always throws, which would report a healthy node as
|
|
770
|
+
// "seeded but stranded". Optional-chained: partial libp2p handles (unit-test doubles)
|
|
771
|
+
// omit `peerId`.
|
|
764
772
|
// Every one of a peer's addresses is a candidate, each on its own time limit
|
|
765
773
|
// (`dialPeerAddrs`), so a peer whose first address never answers neither
|
|
766
774
|
// stalls seed application nor goes undialed at its other addresses. The seed's
|
|
767
775
|
// addresses carry no peer id; the dial binds each to the peer's.
|
|
768
|
-
const
|
|
769
|
-
let preferredDialsAttempted = 0;
|
|
776
|
+
const targets = seedDialTargets(seed, node.peerId?.toString());
|
|
770
777
|
let preferredDialsFailed = 0;
|
|
771
|
-
for (const peer of
|
|
772
|
-
if (peer.multiaddrs.length === 0 || peer.peerId === selfPeerId) {
|
|
773
|
-
continue;
|
|
774
|
-
}
|
|
775
|
-
preferredDialsAttempted++;
|
|
778
|
+
for (const peer of targets) {
|
|
776
779
|
try {
|
|
777
780
|
const addrs = parseDialAddrs(peer.multiaddrs);
|
|
778
781
|
log('Dialing preferred seed peer: %s (%d addr(s))', peer.peerId, addrs.length);
|
|
@@ -791,8 +794,8 @@ export class SeedBootstrapService {
|
|
|
791
794
|
// Continue - not all peers need to be reachable
|
|
792
795
|
}
|
|
793
796
|
}
|
|
794
|
-
log('Dialed preferred seed peers: %d/%d dial(s) failed', preferredDialsFailed,
|
|
795
|
-
return { preferredDialsAttempted, preferredDialsFailed };
|
|
797
|
+
log('Dialed preferred seed peers: %d/%d dial(s) failed', preferredDialsFailed, targets.length);
|
|
798
|
+
return { preferredDialsAttempted: targets.length, preferredDialsFailed };
|
|
796
799
|
}
|
|
797
800
|
/**
|
|
798
801
|
* Persist a signer that a pin/TOFU accepted into the node-local anchor, so a
|
|
@@ -1022,14 +1025,16 @@ export class SeedBootstrapService {
|
|
|
1022
1025
|
}
|
|
1023
1026
|
/**
|
|
1024
1027
|
* Read one inbound seed frame, verify and merge it, write the ack and close the
|
|
1025
|
-
* stream, then dial the seed's preferred peers.
|
|
1028
|
+
* stream, report the seed applied, then dial the seed's preferred peers.
|
|
1026
1029
|
*
|
|
1027
|
-
* The ack
|
|
1028
|
-
* a dial for `dialBudget.totalMs` (86 s at the default declared link), which is
|
|
1029
|
-
* link time and does not belong inside the sender's delivery deadline
|
|
1030
|
-
*
|
|
1031
|
-
*
|
|
1032
|
-
*
|
|
1030
|
+
* The ack, the close and `onSeedApplied` come BEFORE those dials: an unreachable peer
|
|
1031
|
+
* can hold a dial for `dialBudget.totalMs` (86 s at the default declared link), which is
|
|
1032
|
+
* not link time and does not belong inside the sender's delivery deadline, nor ahead of
|
|
1033
|
+
* a claimed node's restart (which stops this node, so its dials would be wasted). The
|
|
1034
|
+
* close is what releases the sender, which reads the ack to end-of-stream, and it is
|
|
1035
|
+
* awaited before `onSeedApplied`, so the ack is flushed before anything the callback
|
|
1036
|
+
* starts. The stream stays counted in {@link activeStreams} through the dials, so
|
|
1037
|
+
* {@link maxConcurrentSeeds} still bounds concurrent dial phases.
|
|
1033
1038
|
*
|
|
1034
1039
|
* Hardened against a buggy/compromised own-cadre node: a concurrency cap (over
|
|
1035
1040
|
* {@link maxConcurrentSeeds}, reply without applying), a read timeout (a peer
|
|
@@ -1058,8 +1063,8 @@ export class SeedBootstrapService {
|
|
|
1058
1063
|
acked = true;
|
|
1059
1064
|
await replyAndClose(stream, { accepted: merged.success, reason: merged.error, code: merged.code }, 'Seed');
|
|
1060
1065
|
if (merged.success) {
|
|
1061
|
-
await this.dialPreferredPeers(seed);
|
|
1062
1066
|
this.eventCallbacks.onSeedApplied?.(seed.partyId, merged.peersAdded, seed);
|
|
1067
|
+
await this.dialPreferredPeers(seed);
|
|
1063
1068
|
}
|
|
1064
1069
|
else {
|
|
1065
1070
|
this.eventCallbacks.onSeedError?.(seed.partyId, merged.error ?? 'Unknown error');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seed-bootstrap.js","sourceRoot":"","sources":["../src/seed-bootstrap.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"seed-bootstrap.js","sourceRoot":"","sources":["../src/seed-bootstrap.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { PeerUpdate } from '@libp2p/interface';
|
|
2
|
+
/**
|
|
3
|
+
* Whether a libp2p `self:peer:update` changed the node's own addresses — the only part of
|
|
4
|
+
* the update the self record (`CadrePeer.Multiaddr`) carries.
|
|
5
|
+
*
|
|
6
|
+
* libp2p emits the event for any change to the node's own peer-store entry, and registering
|
|
7
|
+
* or unregistering a protocol handler is one (the registrar merges the node's protocol list).
|
|
8
|
+
* Cadre registers handlers on a running control node (member redemption, strand formation,
|
|
9
|
+
* the seed listener), so reacting to every event would make each of those a consensus write
|
|
10
|
+
* of an unchanged record, racing whatever write the cohort is making to `CadrePeer` at the
|
|
11
|
+
* time. An update with no `previous` is treated as a change: there is nothing to compare.
|
|
12
|
+
*/
|
|
13
|
+
export declare function selfAddressesChanged(update: PeerUpdate): boolean;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Whether a libp2p `self:peer:update` changed the node's own addresses — the only part of
|
|
3
|
+
* the update the self record (`CadrePeer.Multiaddr`) carries.
|
|
4
|
+
*
|
|
5
|
+
* libp2p emits the event for any change to the node's own peer-store entry, and registering
|
|
6
|
+
* or unregistering a protocol handler is one (the registrar merges the node's protocol list).
|
|
7
|
+
* Cadre registers handlers on a running control node (member redemption, strand formation,
|
|
8
|
+
* the seed listener), so reacting to every event would make each of those a consensus write
|
|
9
|
+
* of an unchanged record, racing whatever write the cohort is making to `CadrePeer` at the
|
|
10
|
+
* time. An update with no `previous` is treated as a change: there is nothing to compare.
|
|
11
|
+
*/
|
|
12
|
+
export function selfAddressesChanged(update) {
|
|
13
|
+
if (update.previous === undefined)
|
|
14
|
+
return true;
|
|
15
|
+
const before = new Set(update.previous.addresses.map((address) => address.multiaddr.toString()));
|
|
16
|
+
const after = update.peer.addresses.map((address) => address.multiaddr.toString());
|
|
17
|
+
return after.length !== before.size || after.some((address) => !before.has(address));
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=self-address-update.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"self-address-update.js","sourceRoot":"","sources":["../src/self-address-update.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAkB;IACtD,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAC/C,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IACjG,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;IACnF,OAAO,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;AACtF,CAAC"}
|
|
@@ -4,6 +4,7 @@ import type { Libp2p } from '@libp2p/interface';
|
|
|
4
4
|
import type { IRepo } from '@optimystic/db-core';
|
|
5
5
|
import type { SAppConfig } from './types.js';
|
|
6
6
|
import type { StrandCommitDurability, StrandCommitListeners } from './strand-commit-durability.js';
|
|
7
|
+
import type { TableChangeWatch, TableChangeWatchOptions } from './table-change-watch.js';
|
|
7
8
|
export interface StrandDatabaseConfig extends StrandCommitListeners {
|
|
8
9
|
/** The strand ID */
|
|
9
10
|
strandId: string;
|
|
@@ -45,6 +46,14 @@ export interface StrandDatabaseConfig extends StrandCommitListeners {
|
|
|
45
46
|
* leave this false and write nothing (rows arrive via sync). Defaults to false.
|
|
46
47
|
*/
|
|
47
48
|
founder?: boolean;
|
|
49
|
+
/**
|
|
50
|
+
* Whether a closed strand's founder bootstrap also writes this machine's `Strand.MemberPeer`
|
|
51
|
+
* binding (for `libp2pNode`'s peer id) in the founding transaction. That binding is the
|
|
52
|
+
* membership reconciler's job; the founding run that seats the founding `Member` writes it
|
|
53
|
+
* too, which saves the reconciler's commit. False whenever the reconciler is disarmed, so a
|
|
54
|
+
* fixture that hand-drives the membership writers sees only the rows it wrote. Defaults to false.
|
|
55
|
+
*/
|
|
56
|
+
bindFounderPeer?: boolean;
|
|
48
57
|
}
|
|
49
58
|
/**
|
|
50
59
|
* StrandDatabase manages the sApp schema for a strand using Quereus with the
|
|
@@ -71,6 +80,8 @@ export declare class StrandDatabase {
|
|
|
71
80
|
private initialized;
|
|
72
81
|
private readonly commits;
|
|
73
82
|
private unsubscribeCommits;
|
|
83
|
+
/** Subscriptions handed out by {@link watchTables}. */
|
|
84
|
+
private readonly tableWatches;
|
|
74
85
|
constructor(config: StrandDatabaseConfig);
|
|
75
86
|
/**
|
|
76
87
|
* Initialize the database — create the `Database` and delegate the strand
|
|
@@ -88,8 +99,10 @@ export declare class StrandDatabase {
|
|
|
88
99
|
* therefore use to forge the founder's identity. A closed strand with no
|
|
89
100
|
* `partyMemberPrivateKey` throws, because it could never seat a founding manager.
|
|
90
101
|
* The shared key's public half IS passed, but only so the bootstrap can refuse a strand
|
|
91
|
-
* founded under it before the split (`PreSplitStrandIdentityError`).
|
|
92
|
-
*
|
|
102
|
+
* founded under it before the split (`PreSplitStrandIdentityError`). The strand node's
|
|
103
|
+
* peer id is passed under {@link StrandDatabaseConfig.bindFounderPeer}: the same node, so
|
|
104
|
+
* the same id, the membership reconciler binds. Open strands derive no keypair (Header
|
|
105
|
+
* only). Idempotent — see {@link bootstrapFounderMembership}.
|
|
93
106
|
*/
|
|
94
107
|
private bootstrapFounder;
|
|
95
108
|
/**
|
|
@@ -133,6 +146,14 @@ export declare class StrandDatabase {
|
|
|
133
146
|
* Get the underlying database for queries
|
|
134
147
|
*/
|
|
135
148
|
getDatabase(): Database;
|
|
149
|
+
/**
|
|
150
|
+
* Subscribe `onChange` to changes in this strand's tables (`'Strand.Member'`, …): commits
|
|
151
|
+
* made here and changes replicated into this node's storage alike, on the single-flight
|
|
152
|
+
* schedule `table-change-watch.ts` describes. {@link close} disposes every subscription
|
|
153
|
+
* still live; a hibernated strand's database is closed and rebuilt on wake, so a consumer
|
|
154
|
+
* subscribes again on the new instance.
|
|
155
|
+
*/
|
|
156
|
+
watchTables(tables: readonly string[], onChange: () => Promise<void>, options: TableChangeWatchOptions): TableChangeWatch;
|
|
136
157
|
/**
|
|
137
158
|
* The durability of a recent commit on this database, by its `StampId()` — the id a single
|
|
138
159
|
* `insert … returning StampId() as Tx` statement returns. Read it after that statement
|