@serfab/cadre-core 0.3.0 → 0.4.1

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.
@@ -28,7 +28,6 @@ export class ArachnodeStub {
28
28
  if (this.running)
29
29
  return;
30
30
  this.running = true;
31
- // All nodes participate in Ring Zulu
32
31
  if (this.config.enableRingZulu) {
33
32
  log('Joining Ring Zulu (transaction ring)');
34
33
  // Stub: In real implementation, would register with transaction verification network
@@ -1 +1 @@
1
- {"version":3,"file":"arachnode-stub.js","sourceRoot":"","sources":["../src/arachnode-stub.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"arachnode-stub.js","sourceRoot":"","sources":["../src/arachnode-stub.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,7 @@ import { ControlDatabase } from './control-database.js';
9
9
  import { SeedBootstrapService } from './seed-bootstrap.js';
10
10
  import { StrandSolicitationService } from './strand-solicitation.js';
11
11
  const log = debug('sereus:cadre:node');
12
+ const timing = debug('sereus:cadre:timing');
12
13
  /**
13
14
  * CadreNode is the main entry point for a cadre member.
14
15
  * It manages:
@@ -95,8 +96,11 @@ export class CadreNode {
95
96
  }
96
97
  log('Starting CadreNode for party: %s', this.config.controlNetwork.partyId);
97
98
  try {
99
+ const tTotal = performance.now();
98
100
  // Create the control network libp2p node
101
+ let t0 = performance.now();
99
102
  this.controlNode = await this.createControlNode();
103
+ timing('[start] createControlNode: %dms', Math.round(performance.now() - t0));
100
104
  log('Control node started with ID: %s', this.controlNode.peerId.toString());
101
105
  // Extract coordinatedRepo from the node (attached by createLibp2pNode)
102
106
  const coordinatedRepo = this.controlNode.coordinatedRepo;
@@ -104,6 +108,7 @@ export class CadreNode {
104
108
  throw new Error('coordinatedRepo not available on control node');
105
109
  }
106
110
  // Initialize the control database with the libp2p node
111
+ t0 = performance.now();
107
112
  this.controlDatabase = new ControlDatabase({
108
113
  partyId: this.config.controlNetwork.partyId,
109
114
  libp2pNode: this.controlNode,
@@ -111,6 +116,7 @@ export class CadreNode {
111
116
  schemaPath: this.config.controlNetwork.schemaPath,
112
117
  });
113
118
  await this.controlDatabase.initialize();
119
+ timing('[start] controlDatabase.initialize: %dms', Math.round(performance.now() - t0));
114
120
  log('Control database initialized');
115
121
  // Create strand queryable using the control database
116
122
  const queryable = this.createStrandQueryable();
@@ -120,11 +126,14 @@ export class CadreNode {
120
126
  onStrandRemoved: async (strandId) => this.handleStrandRemoved(strandId)
121
127
  }, this.config.strandFilter ?? { mode: 'all' }, this.config.strandWatchInterval ?? 5000, this // CadreNode implements SAppIdLookup
122
128
  );
129
+ t0 = performance.now();
123
130
  await this.strandWatcher.start();
131
+ timing('[start] strandWatcher.start: %dms', Math.round(performance.now() - t0));
124
132
  // Start hibernation manager
125
133
  this.hibernationManager.start();
126
134
  this.running = true;
127
135
  this.emit('control:connected', undefined);
136
+ timing('[start] total: %dms', Math.round(performance.now() - tTotal));
128
137
  log('CadreNode started successfully');
129
138
  // Schedule self-registration in background
130
139
  this.scheduleSelfRegistration();
@@ -195,17 +204,11 @@ export class CadreNode {
195
204
  relay: enableRelay,
196
205
  clusterSize: 3,
197
206
  clusterPolicy: { allowDownsize: true, sizeTolerance: 0.5 },
198
- arachnode: { enableRingZulu: true },
207
+ arachnode: { enableRingZulu: this.config.profile === 'storage' },
208
+ ...(privateKey && { privateKey }),
199
209
  ...(network?.transports && { transports: network.transports }),
200
210
  ...(network?.listenAddrs && { listenAddrs: network.listenAddrs })
201
211
  };
202
- // If private key provided, we need to load it
203
- // Note: createLibp2pNode doesn't support privateKey directly yet
204
- // For now we create the node without it
205
- if (privateKey) {
206
- log('Private key provided - loading identity');
207
- // This would need to be integrated into createLibp2pNode
208
- }
209
212
  return await createLibp2pNode(nodeOptions);
210
213
  }
211
214
  createStrandQueryable() {
@@ -283,7 +286,8 @@ export class CadreNode {
283
286
  storage: this.config.storage,
284
287
  network: this.config.network,
285
288
  profile: this.config.profile,
286
- defaultLatencyHint: this.config.hibernation?.defaultLatencyHint ?? 'interactive'
289
+ defaultLatencyHint: this.config.hibernation?.defaultLatencyHint ?? 'interactive',
290
+ privateKey: this.config.privateKey
287
291
  });
288
292
  // Register with hibernation manager
289
293
  this.hibernationManager.trackStrand(instance);
@@ -394,7 +398,8 @@ export class CadreNode {
394
398
  storage: this.config.storage,
395
399
  network: this.config.network,
396
400
  profile: this.config.profile,
397
- defaultLatencyHint: this.config.hibernation?.defaultLatencyHint ?? 'interactive'
401
+ defaultLatencyHint: this.config.hibernation?.defaultLatencyHint ?? 'interactive',
402
+ privateKey: this.config.privateKey
398
403
  });
399
404
  // Register with hibernation manager
400
405
  this.hibernationManager.trackStrand(instance);
@@ -1 +1 @@
1
- {"version":3,"file":"cadre-node.js","sourceRoot":"","sources":["../src/cadre-node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cadre-node.js","sourceRoot":"","sources":["../src/cadre-node.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ import cryptoPlugin from '@optimystic/quereus-plugin-crypto/plugin';
5
5
  import optimysticPlugin from '@optimystic/quereus-plugin-optimystic/plugin';
6
6
  import { digest, randomBytes } from '@optimystic/quereus-plugin-crypto';
7
7
  const log = debug('sereus:cadre:control-db');
8
+ const timing = debug('sereus:cadre:timing');
8
9
  /**
9
10
  * Embedded control schema for cross-platform compatibility.
10
11
  * This schema is embedded directly in the code to work in React Native and other
@@ -149,9 +150,12 @@ export class ControlDatabase {
149
150
  // Create database instance
150
151
  this.db = new Database();
151
152
  // Register crypto plugin (provides digest, sign, verify functions)
153
+ let t0 = performance.now();
152
154
  await registerPlugin(this.db, cryptoPlugin);
155
+ timing('[controlDb] cryptoPlugin: %dms', Math.round(performance.now() - t0));
153
156
  log('Registered crypto plugin');
154
157
  // Register optimystic plugin with network transactor as default
158
+ t0 = performance.now();
155
159
  const networkName = `control-${this.config.partyId}`;
156
160
  const pluginResult = optimysticPlugin(this.db, {
157
161
  default_transactor: 'network',
@@ -166,12 +170,17 @@ export class ControlDatabase {
166
170
  for (const func of pluginResult.functions) {
167
171
  this.db.registerFunction(func.schema);
168
172
  }
173
+ timing('[controlDb] optimysticPlugin: %dms', Math.round(performance.now() - t0));
169
174
  this.collectionFactory = pluginResult.collectionFactory;
170
175
  // Inject the libp2p node into the collection factory
176
+ t0 = performance.now();
171
177
  this.collectionFactory.registerLibp2pNode(networkName, this.config.libp2pNode, this.config.coordinatedRepo);
178
+ timing('[controlDb] registerLibp2pNode: %dms', Math.round(performance.now() - t0));
172
179
  log('Registered libp2p node with collection factory');
173
180
  // Load and execute the schema
181
+ t0 = performance.now();
174
182
  await this.loadSchema();
183
+ timing('[controlDb] loadSchema: %dms', Math.round(performance.now() - t0));
175
184
  this.initialized = true;
176
185
  log('ControlDatabase initialized successfully');
177
186
  }
@@ -1 +1 @@
1
- {"version":3,"file":"control-database.js","sourceRoot":"","sources":["../src/control-database.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"control-database.js","sourceRoot":"","sources":["../src/control-database.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import { Database, registerPlugin } from '@quereus/quereus';
3
3
  import cryptoPlugin from '@optimystic/quereus-plugin-crypto/plugin';
4
4
  import optimysticPlugin from '@optimystic/quereus-plugin-optimystic/plugin';
5
5
  const log = debug('sereus:cadre:strand-db');
6
+ const timing = debug('sereus:cadre:timing');
6
7
  /**
7
8
  * StrandDatabase manages the sApp schema for a strand using Quereus with Optimystic backend.
8
9
  * Each strand instance has its own isolated database with the sApp's schema applied.
@@ -25,11 +26,15 @@ export class StrandDatabase {
25
26
  log('Initializing StrandDatabase for strand: %s (sApp: %s v%s)', this.config.strandId, this.config.sAppConfig.id, this.config.sAppConfig.version);
26
27
  // Create database instance
27
28
  this.db = new Database();
29
+ const sid = this.config.strandId;
28
30
  // Register crypto plugin (provides digest, sign, verify functions)
31
+ let t0 = performance.now();
29
32
  await registerPlugin(this.db, cryptoPlugin);
33
+ timing('[strandDb:%s] cryptoPlugin: %dms', sid, Math.round(performance.now() - t0));
30
34
  log('Registered crypto plugin');
31
35
  // Register optimystic plugin with network transactor as default
32
- const networkName = `strand-${this.config.strandId}`;
36
+ t0 = performance.now();
37
+ const networkName = `strand-${sid}`;
33
38
  const pluginResult = optimysticPlugin(this.db, {
34
39
  default_transactor: 'network',
35
40
  default_key_network: 'libp2p',
@@ -43,24 +48,31 @@ export class StrandDatabase {
43
48
  for (const func of pluginResult.functions) {
44
49
  this.db.registerFunction(func.schema);
45
50
  }
51
+ timing('[strandDb:%s] optimysticPlugin: %dms', sid, Math.round(performance.now() - t0));
46
52
  this.collectionFactory = pluginResult.collectionFactory;
47
53
  // Inject the libp2p node into the collection factory
54
+ t0 = performance.now();
48
55
  this.collectionFactory.registerLibp2pNode(networkName, this.config.libp2pNode, this.config.coordinatedRepo);
56
+ timing('[strandDb:%s] registerLibp2pNode: %dms', sid, Math.round(performance.now() - t0));
49
57
  log('Registered libp2p node with collection factory');
50
58
  // Set optimystic as the default virtual table module so that
51
59
  // `declare schema` tables (which omit USING) are backed by optimystic
52
60
  // instead of the built-in memory module.
61
+ t0 = performance.now();
53
62
  this.db.setDefaultVtabName('optimystic');
54
63
  this.db.setDefaultVtabArgs({
55
64
  networkName,
56
65
  transactor: 'network',
57
66
  keyNetwork: 'libp2p',
58
67
  });
68
+ timing('[strandDb:%s] setDefaultVtab: %dms', sid, Math.round(performance.now() - t0));
59
69
  log('Set default vtab to optimystic (networkName=%s)', networkName);
60
70
  // Execute the sApp schema DDL
71
+ t0 = performance.now();
61
72
  await this.executeSchema();
73
+ timing('[strandDb:%s] executeSchema: %dms', sid, Math.round(performance.now() - t0));
62
74
  this.initialized = true;
63
- log('StrandDatabase for strand %s initialized successfully', this.config.strandId);
75
+ log('StrandDatabase for strand %s initialized successfully', sid);
64
76
  }
65
77
  async executeSchema() {
66
78
  const rawSchema = this.config.sAppConfig.schema;
@@ -1 +1 @@
1
- {"version":3,"file":"strand-database.js","sourceRoot":"","sources":["../src/strand-database.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"strand-database.js","sourceRoot":"","sources":["../src/strand-database.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import type { PrivateKey } from '@libp2p/interface';
1
2
  import type { StrandInstance, StrandRow, StorageConfig, NetworkConfig, LatencyHint, NodeProfile, SAppConfig } from './types.js';
2
3
  /**
3
4
  * Configuration for starting a strand instance
@@ -10,6 +11,7 @@ export interface StartStrandConfig {
10
11
  network?: NetworkConfig;
11
12
  profile: NodeProfile;
12
13
  defaultLatencyHint: LatencyHint;
14
+ privateKey?: PrivateKey;
13
15
  }
14
16
  /**
15
17
  * Get the isolated storage path for a specific strand.
@@ -3,6 +3,7 @@ import { createLibp2pNode } from '@optimystic/db-p2p';
3
3
  import { StrandDatabase } from './strand-database.js';
4
4
  import { assertSchemaSignature } from './schema-verification.js';
5
5
  const log = debug('sereus:cadre:strand-manager');
6
+ const timing = debug('sereus:cadre:timing');
6
7
  /**
7
8
  * Get the isolated storage path for a specific strand.
8
9
  *
@@ -85,6 +86,7 @@ export class StrandInstanceManager {
85
86
  return this.instances.get(strandId);
86
87
  }
87
88
  log('Starting strand instance: %s (sApp: %s v%s)', strandId, sAppConfig.id, sAppConfig.version);
89
+ const tTotal = performance.now();
88
90
  // Verify schema signature before proceeding
89
91
  assertSchemaSignature(sAppConfig);
90
92
  log('Strand %s sApp schema signature verified (author: %s)', strandId, sAppConfig.id);
@@ -122,6 +124,7 @@ export class StrandInstanceManager {
122
124
  // Determine relay mode: if explicitly set in config, use that;
123
125
  // otherwise default to true for storage profile nodes
124
126
  const enableRelay = config.network?.enableRelay ?? (config.profile === 'storage');
127
+ let t0 = performance.now();
125
128
  const node = await createLibp2pNode({
126
129
  port: 0, // Random port
127
130
  bootstrapNodes: [], // Will be populated from strand cohort
@@ -135,15 +138,16 @@ export class StrandInstanceManager {
135
138
  sizeTolerance: 0.5
136
139
  },
137
140
  arachnode: {
138
- enableRingZulu: true
139
- // Storage ring participation stub - will be added when arachnode is built
140
- // storageRing: config.profile === 'storage' ? { ring: 0 } : undefined
141
+ enableRingZulu: config.profile === 'storage'
141
142
  },
143
+ ...(config.privateKey && { privateKey: config.privateKey }),
142
144
  ...(config.network?.transports && { transports: config.network.transports }),
143
145
  ...(config.network?.listenAddrs && { listenAddrs: config.network.listenAddrs })
144
146
  });
147
+ timing('[startStrand:%s] createLibp2pNode: %dms', strandId, Math.round(performance.now() - t0));
145
148
  instance.libp2pNode = node;
146
149
  // Create and initialize the StrandDatabase
150
+ t0 = performance.now();
147
151
  const strandDb = new StrandDatabase({
148
152
  strandId,
149
153
  sAppConfig,
@@ -151,9 +155,11 @@ export class StrandInstanceManager {
151
155
  coordinatedRepo: node.coordinatedRepo
152
156
  });
153
157
  await strandDb.initialize();
158
+ timing('[startStrand:%s] strandDatabase.initialize: %dms', strandId, Math.round(performance.now() - t0));
154
159
  instance.database = strandDb;
155
160
  instance.status = 'active';
156
161
  instance.lastActivity = new Date();
162
+ timing('[startStrand:%s] total: %dms', strandId, Math.round(performance.now() - tTotal));
157
163
  log('Strand %s started successfully with sApp %s', strandId, sAppConfig.id);
158
164
  return instance;
159
165
  }
@@ -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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"}
@@ -41,6 +41,7 @@ export declare class StrandWatcher {
41
41
  private readonly sAppIdLookup?;
42
42
  private knownStrands;
43
43
  private pollTimer;
44
+ private initialPollTimer;
44
45
  private running;
45
46
  constructor(queryable: StrandQueryable, callbacks: StrandWatcherCallbacks, filter?: StrandFilter, pollInterval?: number, sAppIdLookup?: SAppIdLookup);
46
47
  /**
@@ -10,6 +10,7 @@ export class StrandWatcher {
10
10
  constructor(queryable, callbacks, filter = { mode: 'all' }, pollInterval = 5000, sAppIdLookup) {
11
11
  this.knownStrands = new Map();
12
12
  this.pollTimer = null;
13
+ this.initialPollTimer = null;
13
14
  this.running = false;
14
15
  this.queryable = queryable;
15
16
  this.callbacks = callbacks;
@@ -96,12 +97,16 @@ export class StrandWatcher {
96
97
  }
97
98
  log('Starting StrandWatcher');
98
99
  this.running = true;
99
- // Do an initial poll immediately
100
- await this.poll();
101
100
  // Set up periodic polling
102
101
  this.pollTimer = setInterval(() => {
103
102
  void this.poll();
104
103
  }, this.pollInterval);
104
+ // Defer the first poll so start() doesn't block the caller.
105
+ // Strands added via addStrand() typically arrive after start() completes.
106
+ this.initialPollTimer = setTimeout(() => {
107
+ this.initialPollTimer = null;
108
+ void this.poll();
109
+ }, 100);
105
110
  log('StrandWatcher started');
106
111
  }
107
112
  /**
@@ -113,6 +118,10 @@ export class StrandWatcher {
113
118
  }
114
119
  log('Stopping StrandWatcher');
115
120
  this.running = false;
121
+ if (this.initialPollTimer) {
122
+ clearTimeout(this.initialPollTimer);
123
+ this.initialPollTimer = null;
124
+ }
116
125
  if (this.pollTimer) {
117
126
  clearInterval(this.pollTimer);
118
127
  this.pollTimer = null;
@@ -1 +1 @@
1
- {"version":3,"file":"strand-watcher.js","sourceRoot":"","sources":["../src/strand-watcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"strand-watcher.js","sourceRoot":"","sources":["../src/strand-watcher.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { Libp2p, PeerId } from '@libp2p/interface';
1
+ import type { Libp2p, PeerId, PrivateKey } from '@libp2p/interface';
2
2
  import type { IRawStorage, Libp2pTransports } from '@optimystic/db-p2p';
3
3
  import type { StrandDatabase } from './strand-database.js';
4
4
  /**
@@ -125,7 +125,7 @@ export interface ControlNetworkConfig {
125
125
  */
126
126
  export interface CadreNodeConfig {
127
127
  /** If provided, use this keypair for the node identity */
128
- privateKey?: Uint8Array;
128
+ privateKey?: PrivateKey;
129
129
  /** Control network connection settings */
130
130
  controlNetwork: ControlNetworkConfig;
131
131
  /** Node profile: transaction-only or storage */
@@ -288,7 +288,7 @@ export interface StrandFormationDisclosure {
288
288
  * Arachnode ring participation stub - will be implemented when arachnode is built
289
289
  */
290
290
  export interface ArachnodeConfig {
291
- /** Enable Ring Zulu (transaction ring) - all nodes participate */
291
+ /** Enable Arachnode subsystem (Ring Zulu + storage rings). Storage-profile only. */
292
292
  enableRingZulu: boolean;
293
293
  /** Storage ring participation (storage profile only) */
294
294
  storageRing?: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@serfab/cadre-core",
3
- "version": "0.3.0",
3
+ "version": "0.4.1",
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",
@@ -58,12 +58,12 @@
58
58
  "@libp2p/crypto": "^5.1.13",
59
59
  "@libp2p/interface": "^3.1.0",
60
60
  "@libp2p/peer-id": "^6.0.4",
61
- "@optimystic/db-core": "^0.10.0",
62
- "@optimystic/db-p2p": "^0.10.0",
63
- "@optimystic/quereus-plugin-crypto": "^0.10.0",
64
- "@optimystic/quereus-plugin-optimystic": "^0.10.0",
61
+ "@optimystic/db-core": "^0.11.0",
62
+ "@optimystic/db-p2p": "^0.11.0",
63
+ "@optimystic/quereus-plugin-crypto": "^0.11.0",
64
+ "@optimystic/quereus-plugin-optimystic": "^0.11.0",
65
65
  "@quereus/quereus": "^2.0.0",
66
- "@serfab/strand-proto": "^0.3.0",
66
+ "@serfab/strand-proto": "^0.4.1",
67
67
  "debug": "^4.4.3",
68
68
  "libp2p": "^3.1.3",
69
69
  "uint8arrays": "^5.1.0"
@@ -49,7 +49,6 @@ export class ArachnodeStub {
49
49
  if (this.running) return;
50
50
  this.running = true;
51
51
 
52
- // All nodes participate in Ring Zulu
53
52
  if (this.config.enableRingZulu) {
54
53
  log('Joining Ring Zulu (transaction ring)');
55
54
  // Stub: In real implementation, would register with transaction verification network
package/src/cadre-node.ts CHANGED
@@ -33,6 +33,7 @@ import {
33
33
  } from './strand-solicitation.js';
34
34
 
35
35
  const log = debug('sereus:cadre:node');
36
+ const timing = debug('sereus:cadre:timing');
36
37
 
37
38
  type EventHandler<T> = (data: T) => void;
38
39
 
@@ -142,8 +143,12 @@ export class CadreNode implements SAppIdLookup {
142
143
  log('Starting CadreNode for party: %s', this.config.controlNetwork.partyId);
143
144
 
144
145
  try {
146
+ const tTotal = performance.now();
147
+
145
148
  // Create the control network libp2p node
149
+ let t0 = performance.now();
146
150
  this.controlNode = await this.createControlNode();
151
+ timing('[start] createControlNode: %dms', Math.round(performance.now() - t0));
147
152
  log('Control node started with ID: %s', this.controlNode.peerId.toString());
148
153
 
149
154
  // Extract coordinatedRepo from the node (attached by createLibp2pNode)
@@ -153,6 +158,7 @@ export class CadreNode implements SAppIdLookup {
153
158
  }
154
159
 
155
160
  // Initialize the control database with the libp2p node
161
+ t0 = performance.now();
156
162
  this.controlDatabase = new ControlDatabase({
157
163
  partyId: this.config.controlNetwork.partyId,
158
164
  libp2pNode: this.controlNode,
@@ -160,6 +166,7 @@ export class CadreNode implements SAppIdLookup {
160
166
  schemaPath: this.config.controlNetwork.schemaPath,
161
167
  });
162
168
  await this.controlDatabase.initialize();
169
+ timing('[start] controlDatabase.initialize: %dms', Math.round(performance.now() - t0));
163
170
  log('Control database initialized');
164
171
 
165
172
  // Create strand queryable using the control database
@@ -177,13 +184,16 @@ export class CadreNode implements SAppIdLookup {
177
184
  this // CadreNode implements SAppIdLookup
178
185
  );
179
186
 
187
+ t0 = performance.now();
180
188
  await this.strandWatcher.start();
189
+ timing('[start] strandWatcher.start: %dms', Math.round(performance.now() - t0));
181
190
 
182
191
  // Start hibernation manager
183
192
  this.hibernationManager.start();
184
193
 
185
194
  this.running = true;
186
195
  this.emit('control:connected', undefined);
196
+ timing('[start] total: %dms', Math.round(performance.now() - tTotal));
187
197
  log('CadreNode started successfully');
188
198
 
189
199
  // Schedule self-registration in background
@@ -268,19 +278,12 @@ export class CadreNode implements SAppIdLookup {
268
278
  relay: enableRelay,
269
279
  clusterSize: 3,
270
280
  clusterPolicy: { allowDownsize: true, sizeTolerance: 0.5 },
271
- arachnode: { enableRingZulu: true },
281
+ arachnode: { enableRingZulu: this.config.profile === 'storage' },
282
+ ...(privateKey && { privateKey }),
272
283
  ...(network?.transports && { transports: network.transports }),
273
284
  ...(network?.listenAddrs && { listenAddrs: network.listenAddrs })
274
285
  };
275
286
 
276
- // If private key provided, we need to load it
277
- // Note: createLibp2pNode doesn't support privateKey directly yet
278
- // For now we create the node without it
279
- if (privateKey) {
280
- log('Private key provided - loading identity');
281
- // This would need to be integrated into createLibp2pNode
282
- }
283
-
284
287
  return await createLibp2pNode(nodeOptions);
285
288
  }
286
289
 
@@ -368,7 +371,8 @@ export class CadreNode implements SAppIdLookup {
368
371
  storage: this.config.storage,
369
372
  network: this.config.network,
370
373
  profile: this.config.profile,
371
- defaultLatencyHint: this.config.hibernation?.defaultLatencyHint ?? 'interactive'
374
+ defaultLatencyHint: this.config.hibernation?.defaultLatencyHint ?? 'interactive',
375
+ privateKey: this.config.privateKey
372
376
  });
373
377
 
374
378
  // Register with hibernation manager
@@ -499,7 +503,8 @@ export class CadreNode implements SAppIdLookup {
499
503
  storage: this.config.storage,
500
504
  network: this.config.network,
501
505
  profile: this.config.profile,
502
- defaultLatencyHint: this.config.hibernation?.defaultLatencyHint ?? 'interactive'
506
+ defaultLatencyHint: this.config.hibernation?.defaultLatencyHint ?? 'interactive',
507
+ privateKey: this.config.privateKey
503
508
  });
504
509
 
505
510
  // Register with hibernation manager
@@ -9,6 +9,7 @@ import type { IRepo } from '@optimystic/db-core';
9
9
  import type { StrandRow } from './types.js';
10
10
 
11
11
  const log = debug('sereus:cadre:control-db');
12
+ const timing = debug('sereus:cadre:timing');
12
13
 
13
14
  /**
14
15
  * Embedded control schema for cross-platform compatibility.
@@ -197,10 +198,13 @@ export class ControlDatabase {
197
198
  this.db = new Database();
198
199
 
199
200
  // Register crypto plugin (provides digest, sign, verify functions)
201
+ let t0 = performance.now();
200
202
  await registerPlugin(this.db, cryptoPlugin);
203
+ timing('[controlDb] cryptoPlugin: %dms', Math.round(performance.now() - t0));
201
204
  log('Registered crypto plugin');
202
205
 
203
206
  // Register optimystic plugin with network transactor as default
207
+ t0 = performance.now();
204
208
  const networkName = `control-${this.config.partyId}`;
205
209
  const pluginResult = optimysticPlugin(this.db, {
206
210
  default_transactor: 'network',
@@ -216,19 +220,24 @@ export class ControlDatabase {
216
220
  for (const func of pluginResult.functions as Array<{ schema: unknown }>) {
217
221
  this.db.registerFunction(func.schema as any);
218
222
  }
223
+ timing('[controlDb] optimysticPlugin: %dms', Math.round(performance.now() - t0));
219
224
 
220
225
  this.collectionFactory = pluginResult.collectionFactory;
221
226
 
222
227
  // Inject the libp2p node into the collection factory
228
+ t0 = performance.now();
223
229
  this.collectionFactory.registerLibp2pNode(
224
230
  networkName,
225
231
  this.config.libp2pNode,
226
232
  this.config.coordinatedRepo
227
233
  );
234
+ timing('[controlDb] registerLibp2pNode: %dms', Math.round(performance.now() - t0));
228
235
  log('Registered libp2p node with collection factory');
229
236
 
230
237
  // Load and execute the schema
238
+ t0 = performance.now();
231
239
  await this.loadSchema();
240
+ timing('[controlDb] loadSchema: %dms', Math.round(performance.now() - t0));
232
241
 
233
242
  this.initialized = true;
234
243
  log('ControlDatabase initialized successfully');
@@ -7,6 +7,7 @@ import type { IRepo } from '@optimystic/db-core';
7
7
  import type { SAppConfig } from './types.js';
8
8
 
9
9
  const log = debug('sereus:cadre:strand-db');
10
+ const timing = debug('sereus:cadre:timing');
10
11
 
11
12
  /**
12
13
  * Minimal interface for the CollectionFactory returned by the optimystic plugin.
@@ -67,13 +68,17 @@ export class StrandDatabase {
67
68
 
68
69
  // Create database instance
69
70
  this.db = new Database();
71
+ const sid = this.config.strandId;
70
72
 
71
73
  // Register crypto plugin (provides digest, sign, verify functions)
74
+ let t0 = performance.now();
72
75
  await registerPlugin(this.db, cryptoPlugin);
76
+ timing('[strandDb:%s] cryptoPlugin: %dms', sid, Math.round(performance.now() - t0));
73
77
  log('Registered crypto plugin');
74
78
 
75
79
  // Register optimystic plugin with network transactor as default
76
- const networkName = `strand-${this.config.strandId}`;
80
+ t0 = performance.now();
81
+ const networkName = `strand-${sid}`;
77
82
  const pluginResult = optimysticPlugin(this.db, {
78
83
  default_transactor: 'network',
79
84
  default_key_network: 'libp2p',
@@ -88,33 +93,40 @@ export class StrandDatabase {
88
93
  for (const func of pluginResult.functions as Array<{ schema: unknown }>) {
89
94
  this.db.registerFunction(func.schema as any);
90
95
  }
96
+ timing('[strandDb:%s] optimysticPlugin: %dms', sid, Math.round(performance.now() - t0));
91
97
 
92
98
  this.collectionFactory = pluginResult.collectionFactory;
93
99
 
94
100
  // Inject the libp2p node into the collection factory
101
+ t0 = performance.now();
95
102
  this.collectionFactory.registerLibp2pNode(
96
103
  networkName,
97
104
  this.config.libp2pNode,
98
105
  this.config.coordinatedRepo
99
106
  );
107
+ timing('[strandDb:%s] registerLibp2pNode: %dms', sid, Math.round(performance.now() - t0));
100
108
  log('Registered libp2p node with collection factory');
101
109
 
102
110
  // Set optimystic as the default virtual table module so that
103
111
  // `declare schema` tables (which omit USING) are backed by optimystic
104
112
  // instead of the built-in memory module.
113
+ t0 = performance.now();
105
114
  this.db.setDefaultVtabName('optimystic');
106
115
  this.db.setDefaultVtabArgs({
107
116
  networkName,
108
117
  transactor: 'network',
109
118
  keyNetwork: 'libp2p',
110
119
  });
120
+ timing('[strandDb:%s] setDefaultVtab: %dms', sid, Math.round(performance.now() - t0));
111
121
  log('Set default vtab to optimystic (networkName=%s)', networkName);
112
122
 
113
123
  // Execute the sApp schema DDL
124
+ t0 = performance.now();
114
125
  await this.executeSchema();
126
+ timing('[strandDb:%s] executeSchema: %dms', sid, Math.round(performance.now() - t0));
115
127
 
116
128
  this.initialized = true;
117
- log('StrandDatabase for strand %s initialized successfully', this.config.strandId);
129
+ log('StrandDatabase for strand %s initialized successfully', sid);
118
130
  }
119
131
 
120
132
  private async executeSchema(): Promise<void> {
@@ -1,5 +1,5 @@
1
1
  import debug from 'debug';
2
- import type { Libp2p } from '@libp2p/interface';
2
+ import type { Libp2p, PrivateKey } from '@libp2p/interface';
3
3
  import { createLibp2pNode, type IRawStorage } from '@optimystic/db-p2p';
4
4
  import type { IRepo } from '@optimystic/db-core';
5
5
  import { StrandDatabase } from './strand-database.js';
@@ -25,6 +25,7 @@ interface Libp2pNodeWithRepo extends Libp2p {
25
25
  }
26
26
 
27
27
  const log = debug('sereus:cadre:strand-manager');
28
+ const timing = debug('sereus:cadre:timing');
28
29
 
29
30
  /**
30
31
  * Configuration for starting a strand instance
@@ -37,6 +38,7 @@ export interface StartStrandConfig {
37
38
  network?: NetworkConfig;
38
39
  profile: NodeProfile;
39
40
  defaultLatencyHint: LatencyHint;
41
+ privateKey?: PrivateKey;
40
42
  }
41
43
 
42
44
  /**
@@ -138,6 +140,7 @@ export class StrandInstanceManager {
138
140
  }
139
141
 
140
142
  log('Starting strand instance: %s (sApp: %s v%s)', strandId, sAppConfig.id, sAppConfig.version);
143
+ const tTotal = performance.now();
141
144
 
142
145
  // Verify schema signature before proceeding
143
146
  assertSchemaSignature(sAppConfig);
@@ -184,6 +187,7 @@ export class StrandInstanceManager {
184
187
  // otherwise default to true for storage profile nodes
185
188
  const enableRelay = config.network?.enableRelay ?? (config.profile === 'storage');
186
189
 
190
+ let t0 = performance.now();
187
191
  const node = await createLibp2pNode({
188
192
  port: 0, // Random port
189
193
  bootstrapNodes: [], // Will be populated from strand cohort
@@ -197,17 +201,18 @@ export class StrandInstanceManager {
197
201
  sizeTolerance: 0.5
198
202
  },
199
203
  arachnode: {
200
- enableRingZulu: true
201
- // Storage ring participation stub - will be added when arachnode is built
202
- // storageRing: config.profile === 'storage' ? { ring: 0 } : undefined
204
+ enableRingZulu: config.profile === 'storage'
203
205
  },
206
+ ...(config.privateKey && { privateKey: config.privateKey }),
204
207
  ...(config.network?.transports && { transports: config.network.transports }),
205
208
  ...(config.network?.listenAddrs && { listenAddrs: config.network.listenAddrs })
206
209
  }) as Libp2pNodeWithRepo;
210
+ timing('[startStrand:%s] createLibp2pNode: %dms', strandId, Math.round(performance.now() - t0));
207
211
 
208
212
  instance.libp2pNode = node;
209
213
 
210
214
  // Create and initialize the StrandDatabase
215
+ t0 = performance.now();
211
216
  const strandDb = new StrandDatabase({
212
217
  strandId,
213
218
  sAppConfig,
@@ -215,11 +220,13 @@ export class StrandInstanceManager {
215
220
  coordinatedRepo: node.coordinatedRepo
216
221
  });
217
222
  await strandDb.initialize();
223
+ timing('[startStrand:%s] strandDatabase.initialize: %dms', strandId, Math.round(performance.now() - t0));
218
224
  instance.database = strandDb;
219
225
 
220
226
  instance.status = 'active';
221
227
  instance.lastActivity = new Date();
222
228
 
229
+ timing('[startStrand:%s] total: %dms', strandId, Math.round(performance.now() - tTotal));
223
230
  log('Strand %s started successfully with sApp %s', strandId, sAppConfig.id);
224
231
  return instance;
225
232
 
@@ -50,6 +50,7 @@ export class StrandWatcher {
50
50
 
51
51
  private knownStrands: Map<string, StrandRow> = new Map();
52
52
  private pollTimer: ReturnType<typeof setInterval> | null = null;
53
+ private initialPollTimer: ReturnType<typeof setTimeout> | null = null;
53
54
  private running = false;
54
55
 
55
56
  constructor(
@@ -149,14 +150,18 @@ export class StrandWatcher {
149
150
  log('Starting StrandWatcher');
150
151
  this.running = true;
151
152
 
152
- // Do an initial poll immediately
153
- await this.poll();
154
-
155
153
  // Set up periodic polling
156
154
  this.pollTimer = setInterval(() => {
157
155
  void this.poll();
158
156
  }, this.pollInterval);
159
157
 
158
+ // Defer the first poll so start() doesn't block the caller.
159
+ // Strands added via addStrand() typically arrive after start() completes.
160
+ this.initialPollTimer = setTimeout(() => {
161
+ this.initialPollTimer = null;
162
+ void this.poll();
163
+ }, 100);
164
+
160
165
  log('StrandWatcher started');
161
166
  }
162
167
 
@@ -171,6 +176,11 @@ export class StrandWatcher {
171
176
  log('Stopping StrandWatcher');
172
177
  this.running = false;
173
178
 
179
+ if (this.initialPollTimer) {
180
+ clearTimeout(this.initialPollTimer);
181
+ this.initialPollTimer = null;
182
+ }
183
+
174
184
  if (this.pollTimer) {
175
185
  clearInterval(this.pollTimer);
176
186
  this.pollTimer = null;
package/src/types.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { Libp2p, PeerId } from '@libp2p/interface';
1
+ import type { Libp2p, PeerId, PrivateKey } from '@libp2p/interface';
2
2
  import type { IRawStorage, Libp2pTransports } from '@optimystic/db-p2p';
3
3
  import type { StrandDatabase } from './strand-database.js';
4
4
 
@@ -151,7 +151,7 @@ export interface ControlNetworkConfig {
151
151
  */
152
152
  export interface CadreNodeConfig {
153
153
  /** If provided, use this keypair for the node identity */
154
- privateKey?: Uint8Array;
154
+ privateKey?: PrivateKey;
155
155
 
156
156
  /** Control network connection settings */
157
157
  controlNetwork: ControlNetworkConfig;
@@ -356,7 +356,7 @@ export interface StrandFormationDisclosure {
356
356
  * Arachnode ring participation stub - will be implemented when arachnode is built
357
357
  */
358
358
  export interface ArachnodeConfig {
359
- /** Enable Ring Zulu (transaction ring) - all nodes participate */
359
+ /** Enable Arachnode subsystem (Ring Zulu + storage rings). Storage-profile only. */
360
360
  enableRingZulu: boolean;
361
361
  /** Storage ring participation (storage profile only) */
362
362
  storageRing?: {