beignet 0.11.1 → 0.13.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.
Files changed (78) hide show
  1. package/dist/cli/auth.js +3 -0
  2. package/dist/cli/auth.js.map +1 -1
  3. package/dist/cli/beignet-node.js +392 -18
  4. package/dist/cli/beignet-node.js.map +1 -1
  5. package/dist/cli/cli.js +76 -1
  6. package/dist/cli/cli.js.map +1 -1
  7. package/dist/cli/config.js +19 -0
  8. package/dist/cli/config.js.map +1 -1
  9. package/dist/cli/daemon.js +60 -0
  10. package/dist/cli/daemon.js.map +1 -1
  11. package/dist/cli/errors.js +3 -0
  12. package/dist/cli/errors.js.map +1 -1
  13. package/dist/cli/openapi.js +53 -2
  14. package/dist/cli/openapi.js.map +1 -1
  15. package/dist/lightning/message/custom.js +2 -0
  16. package/dist/lightning/message/custom.js.map +1 -1
  17. package/dist/lightning/node/lightning-node.js +118 -1
  18. package/dist/lightning/node/lightning-node.js.map +1 -1
  19. package/dist/lightning/node/types.js.map +1 -1
  20. package/dist/lightning/recovery/assembly.js +35 -12
  21. package/dist/lightning/recovery/assembly.js.map +1 -1
  22. package/dist/lightning/recovery/capsule.js +19 -4
  23. package/dist/lightning/recovery/capsule.js.map +1 -1
  24. package/dist/lightning/recovery/durability-barrier.js +44 -0
  25. package/dist/lightning/recovery/durability-barrier.js.map +1 -1
  26. package/dist/lightning/recovery/guardian-bolt8.js +680 -0
  27. package/dist/lightning/recovery/guardian-bolt8.js.map +1 -0
  28. package/dist/lightning/recovery/guardian-client.js +93 -4
  29. package/dist/lightning/recovery/guardian-client.js.map +1 -1
  30. package/dist/lightning/recovery/guardian-host.js +341 -0
  31. package/dist/lightning/recovery/guardian-host.js.map +1 -0
  32. package/dist/lightning/recovery/guardian-http.js +55 -37
  33. package/dist/lightning/recovery/guardian-http.js.map +1 -1
  34. package/dist/lightning/recovery/guardian-proto.js +137 -3
  35. package/dist/lightning/recovery/guardian-proto.js.map +1 -1
  36. package/dist/lightning/recovery/guardian-replication.js +163 -12
  37. package/dist/lightning/recovery/guardian-replication.js.map +1 -1
  38. package/dist/lightning/recovery/guardian-rotation.js +302 -0
  39. package/dist/lightning/recovery/guardian-rotation.js.map +1 -0
  40. package/dist/lightning/recovery/guardian-store.js +16 -7
  41. package/dist/lightning/recovery/guardian-store.js.map +1 -1
  42. package/dist/lightning/recovery/guardian-wire.js +37 -3
  43. package/dist/lightning/recovery/guardian-wire.js.map +1 -1
  44. package/dist/lightning/recovery/guardian.js +158 -8
  45. package/dist/lightning/recovery/guardian.js.map +1 -1
  46. package/dist/lightning/recovery/index.js +3 -0
  47. package/dist/lightning/recovery/index.js.map +1 -1
  48. package/dist/lightning/recovery/journal.js +2 -1
  49. package/dist/lightning/recovery/journal.js.map +1 -1
  50. package/dist/lightning/recovery/startup-gate.js +4 -1
  51. package/dist/lightning/recovery/startup-gate.js.map +1 -1
  52. package/dist/lightning/transport/peer-manager.js +110 -15
  53. package/dist/lightning/transport/peer-manager.js.map +1 -1
  54. package/dist/types/cli/beignet-node.d.ts +56 -2
  55. package/dist/types/cli/types.d.ts +34 -0
  56. package/dist/types/lightning/message/custom.d.ts +3 -1
  57. package/dist/types/lightning/node/lightning-node.d.ts +13 -2
  58. package/dist/types/lightning/node/types.d.ts +2 -0
  59. package/dist/types/lightning/recovery/assembly.d.ts +12 -1
  60. package/dist/types/lightning/recovery/capsule.d.ts +3 -1
  61. package/dist/types/lightning/recovery/durability-barrier.d.ts +20 -2
  62. package/dist/types/lightning/recovery/guardian-bolt8.d.ts +165 -0
  63. package/dist/types/lightning/recovery/guardian-client.d.ts +12 -3
  64. package/dist/types/lightning/recovery/guardian-host.d.ts +70 -0
  65. package/dist/types/lightning/recovery/guardian-http.d.ts +8 -1
  66. package/dist/types/lightning/recovery/guardian-proto.d.ts +5 -1
  67. package/dist/types/lightning/recovery/guardian-replication.d.ts +21 -1
  68. package/dist/types/lightning/recovery/guardian-rotation.d.ts +80 -0
  69. package/dist/types/lightning/recovery/guardian-store.d.ts +3 -0
  70. package/dist/types/lightning/recovery/guardian-wire.d.ts +12 -1
  71. package/dist/types/lightning/recovery/guardian.d.ts +30 -0
  72. package/dist/types/lightning/recovery/index.d.ts +3 -0
  73. package/dist/types/lightning/recovery/journal.d.ts +1 -0
  74. package/dist/types/lightning/recovery/startup-gate.d.ts +2 -1
  75. package/dist/types/lightning/transport/peer-manager.d.ts +19 -0
  76. package/docs/RECOVERY-GUARDIAN-WIRE.md +252 -52
  77. package/docs/RECOVERY-PROTOCOL.md +17 -2
  78. package/package.json +1 -1
package/dist/cli/auth.js CHANGED
@@ -52,6 +52,7 @@ exports.ROUTE_SCOPES = {
52
52
  'GET /backup/peer-retrieved': ['readonly'],
53
53
  'GET /queue': ['readonly'],
54
54
  'GET /recovery/status': ['readonly'],
55
+ 'GET /guardian/status': ['readonly'],
55
56
  'POST /route/estimate': ['readonly'],
56
57
  'POST /route/query': ['readonly'],
57
58
  'POST /payment/estimate': ['readonly'],
@@ -148,6 +149,8 @@ exports.ROUTE_SCOPES = {
148
149
  'POST /recovery/restore': [],
149
150
  'POST /recovery/restore-capsule': [],
150
151
  'POST /recovery/capsule-guardians': [],
152
+ 'POST /recovery/resolve-guardian': [],
153
+ 'POST /recovery/rotate-guardians': [],
151
154
  'POST /watchtower/add': [],
152
155
  'DELETE /watchtower/remove': [],
153
156
  'POST /webhooks/register': [],
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/cli/auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/cli/auth.ts"],"names":[],"mappings":"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"}
@@ -55,6 +55,8 @@ const electrum_backend_1 = require("../lightning/chain/electrum-backend");
55
55
  const types_2 = require("../lightning/invoice/types");
56
56
  const wallet_keys_1 = require("../lightning/keys/wallet-keys");
57
57
  const recovery_1 = require("../lightning/recovery");
58
+ const peer_manager_1 = require("../lightning/transport/peer-manager");
59
+ const peer_uri_1 = require("../lightning/transport/peer-uri");
58
60
  const ecdh_1 = require("../lightning/crypto/ecdh");
59
61
  const direct_funding_1 = require("../lightning/direct-funding");
60
62
  const direct_funding_2 = require("./direct-funding");
@@ -459,11 +461,31 @@ class BeignetNode extends events_1.EventEmitter {
459
461
  emit(event, ...args) {
460
462
  return super.emit(event, ...args);
461
463
  }
464
+ rotationStateForStatus() {
465
+ if (this._restartRequired)
466
+ return this._lastRotationState;
467
+ try {
468
+ this._lastRotationState = (0, recovery_1.describeRotation)(this.storage);
469
+ }
470
+ catch {
471
+ }
472
+ return this._lastRotationState;
473
+ }
462
474
  constructor(mnemonic, networkName, dataDir) {
463
475
  super();
464
476
  this._closeAddressLookupTimeoutMs = 15000;
465
477
  this.recoveryMode = 'off';
466
478
  this.recoveryGuardianSet = [];
479
+ this._configuredSetStale = false;
480
+ this._rotationInFlight = false;
481
+ this._lastRotationEvent = null;
482
+ this._followedRotation = null;
483
+ this._lastRotationState = {
484
+ generation: '1',
485
+ pending: null,
486
+ retirePending: false,
487
+ guardianSet: null
488
+ };
467
489
  this._restorePending = false;
468
490
  this._restoreInFlight = false;
469
491
  this._directFundingCharged = new Set();
@@ -504,6 +526,7 @@ class BeignetNode extends events_1.EventEmitter {
504
526
  this._pushedChannelBackup = false;
505
527
  this._restartRequired = false;
506
528
  this._recoveryFenceRelayed = false;
529
+ this._bolt8Transport = null;
507
530
  this.mnemonic = mnemonic;
508
531
  this.networkName = networkName;
509
532
  this.dataDir = dataDir;
@@ -898,6 +921,27 @@ class BeignetNode extends events_1.EventEmitter {
898
921
  logger: this.logger,
899
922
  sweepDestinationScript,
900
923
  socks5Proxy,
924
+ ...(opts.guardianServe
925
+ ? {
926
+ guardianHost: {
927
+ path: path.join(this.dataDir, 'guardian'),
928
+ guardianSecret: (0, recovery_1.deriveGuardianRoot)(this.nodeSecret())
929
+ .guardianSecret,
930
+ token: opts.guardianToken,
931
+ maxBytesPerSet: opts.guardianMaxBytesPerSet,
932
+ maxSets: opts.guardianMaxSets,
933
+ maxCiphertextBytes: opts.guardianMaxCiphertextBytes,
934
+ onEvent: (event) => {
935
+ this.log(event.type === 'guardian:set-registered' ? 'info' : 'warn', `Guardian host: ${event.type}`, { detail: event.detail, setId: event.setId, peer: event.peer });
936
+ this.emit(event.type, {
937
+ detail: event.detail,
938
+ ...(event.setId ? { setId: event.setId } : {}),
939
+ ...(event.peer ? { peer: event.peer } : {})
940
+ });
941
+ }
942
+ }
943
+ }
944
+ : {}),
901
945
  peerStorageEnabled: this.peerStorageEnabled,
902
946
  autoRebalance: opts.autoRebalance,
903
947
  autoTuneFees: opts.autoTuneFees,
@@ -1280,13 +1324,67 @@ class BeignetNode extends events_1.EventEmitter {
1280
1324
  };
1281
1325
  return;
1282
1326
  }
1283
- const guardians = (opts.recoveryGuardians ?? []).map(recovery_1.parseGuardianEntry);
1327
+ let guardians = (opts.recoveryGuardians ?? []).map(recovery_1.parseGuardianEntry);
1328
+ this._configuredSetStale = false;
1329
+ const persisted = (0, recovery_1.readGuardianSet)(this.storage);
1330
+ if (persisted && persisted.length === recovery_1.CRASH_V1_PROFILE.total) {
1331
+ const persistedParsed = persisted.map(recovery_1.parseGuardianEntry);
1332
+ if (!sameGuardianIds(persistedParsed.map((g) => g.guardianId.toString('hex')), guardians.map((g) => g.guardianId.toString('hex')))) {
1333
+ this._configuredSetStale = true;
1334
+ this.log('warn', "Configured guardians predate a rotation; using the journal's set", {
1335
+ configured: guardians.map((g) => g.guardianId.toString('hex')),
1336
+ journal: persisted.map((g) => g.guardianId)
1337
+ });
1338
+ guardians = persistedParsed;
1339
+ }
1340
+ }
1341
+ let decision = await this.decideGuardianBoot(guardians, mode, opts);
1342
+ for (let hop = 0; hop < 8 && decision.kind === 'rotated'; hop++) {
1343
+ const from = guardians.map((g) => g.guardianId.toString('hex'));
1344
+ let next;
1345
+ try {
1346
+ next = decision.entries.map(recovery_1.parseGuardianEntry);
1347
+ }
1348
+ catch (error) {
1349
+ throw new errors_1.BeignetError('RECOVERY_UNAVAILABLE', `this namespace was rotated to generation ${decision.generation} but the rotation names a guardian this daemon cannot address: ${error instanceof Error ? error.message : String(error)}`);
1350
+ }
1351
+ this._followedRotation = {
1352
+ generation: decision.generation.toString(),
1353
+ from,
1354
+ to: next.map((g) => g.guardianId.toString('hex'))
1355
+ };
1356
+ this.log('info', 'Following a guardian-set rotation', this._followedRotation);
1357
+ this.emit('recovery:rotation-followed', this._followedRotation);
1358
+ this.storage.setRecoveryMeta?.(recovery_1.JOURNAL_META_KEYS.generation, decision.generation.toString());
1359
+ this.storage.setRecoveryMeta?.(recovery_1.REPLICATION_META_KEYS.guardianSet, JSON.stringify(decision.entries));
1360
+ guardians = next;
1361
+ decision = await this.decideGuardianBoot(guardians, mode, opts);
1362
+ }
1363
+ if (decision.kind === 'rotated') {
1364
+ throw new errors_1.BeignetError('RECOVERY_UNAVAILABLE', 'this namespace was rotated more than 8 times in a row; refusing to follow further');
1365
+ }
1366
+ if (decision.kind === 'run') {
1367
+ this._recoveryRun = decision;
1368
+ this.recoveryNodeConfig = decision.recovery;
1369
+ return;
1370
+ }
1371
+ if (decision.kind === 'restore-required') {
1372
+ this._restoreDecision = decision;
1373
+ this._restorePending = true;
1374
+ return;
1375
+ }
1376
+ throw new errors_1.BeignetError('RECOVERY_UNAVAILABLE', `Recovery ${decision.outcome}: ${decision.detail}. Ownership of ` +
1377
+ 'this namespace cannot be decided without a guardian quorum; ' +
1378
+ 'retry when the guardian set is reachable.');
1379
+ }
1380
+ async decideGuardianBoot(guardians, mode, opts) {
1284
1381
  this.recoveryGuardianSet = guardians;
1285
- const decision = await (0, recovery_1.buildGuardianRecovery)({
1382
+ return (0, recovery_1.buildGuardianRecovery)({
1286
1383
  storage: this.storage,
1287
1384
  nodeSecret: this.nodeSecret(),
1288
1385
  durability: mode,
1289
1386
  guardians,
1387
+ transportFor: (guardian) => this.guardianTransportFor(guardian, opts),
1290
1388
  onBarrierEvent: (event) => {
1291
1389
  if (event.type === 'barrier:unreachable') {
1292
1390
  this.log('warn', 'Recovery guardian unreachable', {
@@ -1309,19 +1407,6 @@ class BeignetNode extends events_1.EventEmitter {
1309
1407
  });
1310
1408
  }
1311
1409
  });
1312
- if (decision.kind === 'run') {
1313
- this._recoveryRun = decision;
1314
- this.recoveryNodeConfig = decision.recovery;
1315
- return;
1316
- }
1317
- if (decision.kind === 'restore-required') {
1318
- this._restoreDecision = decision;
1319
- this._restorePending = true;
1320
- return;
1321
- }
1322
- throw new errors_1.BeignetError('RECOVERY_UNAVAILABLE', `Recovery ${decision.outcome}: ${decision.detail}. Ownership of ` +
1323
- 'this namespace cannot be decided without a guardian quorum; ' +
1324
- 'retry when the guardian set is reachable.');
1325
1410
  }
1326
1411
  startRecoveryConfirmLoop() {
1327
1412
  const run = this._recoveryRun;
@@ -1338,6 +1423,7 @@ class BeignetNode extends events_1.EventEmitter {
1338
1423
  confirming: outcome.confirming
1339
1424
  });
1340
1425
  this.startRecoveryLeaseCheck();
1426
+ this.resumeRotationWork();
1341
1427
  return;
1342
1428
  }
1343
1429
  if (outcome.state === 'fenced') {
@@ -1423,6 +1509,18 @@ class BeignetNode extends events_1.EventEmitter {
1423
1509
  guardianId: g.guardianId.toString('hex'),
1424
1510
  url: g.url
1425
1511
  }));
1512
+ const rotationState = this.rotationStateForStatus();
1513
+ const rotationView = {
1514
+ generation: rotationState.generation,
1515
+ configuredSetStale: this._configuredSetStale,
1516
+ rotation: {
1517
+ inProgress: this._rotationInFlight,
1518
+ pending: rotationState.pending !== null,
1519
+ retirePending: rotationState.retirePending,
1520
+ lastEvent: this._lastRotationEvent,
1521
+ followed: this._followedRotation
1522
+ }
1523
+ };
1426
1524
  const profile = this.recoveryMode === 'async-remote' || this.recoveryMode === 'quorum'
1427
1525
  ? 'crash-v1'
1428
1526
  : null;
@@ -1435,6 +1533,7 @@ class BeignetNode extends events_1.EventEmitter {
1435
1533
  return {
1436
1534
  mode: this.recoveryMode,
1437
1535
  profile,
1536
+ ...rotationView,
1438
1537
  guardians,
1439
1538
  state: 'restart-required',
1440
1539
  node: null,
@@ -1447,6 +1546,7 @@ class BeignetNode extends events_1.EventEmitter {
1447
1546
  return {
1448
1547
  mode: 'off',
1449
1548
  profile: null,
1549
+ ...rotationView,
1450
1550
  guardians: [],
1451
1551
  state: 'disabled',
1452
1552
  node: null,
@@ -1458,6 +1558,7 @@ class BeignetNode extends events_1.EventEmitter {
1458
1558
  return {
1459
1559
  mode: this.recoveryMode,
1460
1560
  profile,
1561
+ ...rotationView,
1461
1562
  guardians,
1462
1563
  state: this._restoreInFlight ? 'restoring' : 'restore-required',
1463
1564
  node: null,
@@ -1470,6 +1571,7 @@ class BeignetNode extends events_1.EventEmitter {
1470
1571
  return {
1471
1572
  mode: this.recoveryMode,
1472
1573
  profile,
1574
+ ...rotationView,
1473
1575
  guardians,
1474
1576
  state: node.fenced || node.gate === 'fenced' ? 'fenced' : 'running',
1475
1577
  node,
@@ -2069,6 +2171,255 @@ class BeignetNode extends events_1.EventEmitter {
2069
2171
  }
2070
2172
  fs.unlinkSync(markerPath);
2071
2173
  }
2174
+ guardianTransportFor(guardian, opts) {
2175
+ if (!guardian.url.toLowerCase().startsWith('bolt8:'))
2176
+ return undefined;
2177
+ if (!this._bolt8Transport) {
2178
+ const proxy = this.torProxyOf(opts);
2179
+ const viaTor = proxy ? (0, peer_manager_1.socks5SocketFactory)(proxy) : undefined;
2180
+ this._bolt8Transport = (0, recovery_1.bolt8GuardianTransport)({
2181
+ createSocket: async (host, port) => {
2182
+ if ((0, recovery_1.isOnionV3Hostname)(host)) {
2183
+ if (!viaTor) {
2184
+ throw new Error(`guardian ${host} is an onion service but no torProxy is configured`);
2185
+ }
2186
+ return viaTor(host, port);
2187
+ }
2188
+ return net.connect(port, host);
2189
+ }
2190
+ });
2191
+ }
2192
+ return this._bolt8Transport;
2193
+ }
2194
+ torProxyOf(opts) {
2195
+ if (!opts.torProxy)
2196
+ return undefined;
2197
+ const [proxyHost, proxyPort] = opts.torProxy.split(':');
2198
+ const port = parseInt(proxyPort, 10);
2199
+ if (!proxyHost || !Number.isFinite(port)) {
2200
+ throw new errors_1.BeignetError('INVALID_PARAMS', `Invalid torProxy "${opts.torProxy}": expected "host:port"`);
2201
+ }
2202
+ return { host: proxyHost, port };
2203
+ }
2204
+ async rotateGuardians(entries) {
2205
+ const run = this._recoveryRun;
2206
+ if (!run ||
2207
+ !this.node ||
2208
+ this.recoveryMode === 'off' ||
2209
+ this.recoveryMode === 'peer-storage') {
2210
+ throw new errors_1.BeignetError('ROTATION_UNAVAILABLE', 'Rotating guardians needs a running wallet in a guardian recovery mode (async-remote or quorum).');
2211
+ }
2212
+ if (this._rotationInFlight) {
2213
+ throw new errors_1.BeignetError('ROTATION_IN_PROGRESS', 'A guardian-set rotation is already running.');
2214
+ }
2215
+ const gate = this.node.getRecoveryGateState();
2216
+ if (gate !== 'confirmed') {
2217
+ throw new errors_1.BeignetError('ROTATION_UNAVAILABLE', `Rotating guardians needs a confirmed writer; the startup gate is ${gate}.`);
2218
+ }
2219
+ if (this.node.getRecoveryStatus().fenced) {
2220
+ throw new errors_1.BeignetError('ROTATION_UNAVAILABLE', 'This device is fenced; it no longer owns the namespace.');
2221
+ }
2222
+ let incoming;
2223
+ try {
2224
+ incoming = entries.map(recovery_1.parseGuardianEntry);
2225
+ }
2226
+ catch (error) {
2227
+ throw new errors_1.BeignetError('INVALID_PARAMS', error instanceof Error ? error.message : String(error));
2228
+ }
2229
+ if (incoming.length !== recovery_1.CRASH_V1_PROFILE.total) {
2230
+ throw new errors_1.BeignetError('INVALID_PARAMS', `A guardian set is exactly ${recovery_1.CRASH_V1_PROFILE.total} entries (crash-v1 is 2-of-3); got ${incoming.length}`);
2231
+ }
2232
+ const opts = this._bootOpts;
2233
+ if (!opts)
2234
+ throw new errors_1.BeignetError('INTERNAL_ERROR', 'node is not started');
2235
+ const transportFor = (guardian) => this.guardianTransportFor(guardian, opts);
2236
+ const held = (0, recovery_1.loadWriterLease)(this.storage);
2237
+ if (held.state !== 'present') {
2238
+ throw new errors_1.BeignetError('ROTATION_UNAVAILABLE', 'This device holds no writer lease to carry over.');
2239
+ }
2240
+ let rotation;
2241
+ try {
2242
+ rotation = new recovery_1.GuardianRotation({
2243
+ storage: this.storage,
2244
+ recoveryRoot: (0, recovery_1.deriveRecoveryRoot)(this.nodeSecret()),
2245
+ lease: held.lease,
2246
+ outgoing: {
2247
+ guardians: this.recoveryGuardianSet,
2248
+ ...(0, recovery_1.bindGuardianSet)(this.recoveryGuardianSet, { transportFor })
2249
+ },
2250
+ incoming: {
2251
+ guardians: incoming,
2252
+ ...(0, recovery_1.bindGuardianSet)(incoming, { transportFor })
2253
+ },
2254
+ required: recovery_1.CRASH_V1_PROFILE.required,
2255
+ onEvent: (event) => this.noteRotationEvent(event),
2256
+ onReplicationEvent: (event) => {
2257
+ this.log('debug', `Rotation replication: ${event.type}`, {
2258
+ detail: event.detail
2259
+ });
2260
+ }
2261
+ });
2262
+ }
2263
+ catch (error) {
2264
+ throw this.rotationError(error);
2265
+ }
2266
+ this._rotationInFlight = true;
2267
+ try {
2268
+ const result = await rotation.rotate();
2269
+ run.barrier.swapReplicator(result.replicator);
2270
+ run.gate.swapReplicator(result.replicator);
2271
+ run.replicator = result.replicator;
2272
+ this.node.setRecoveryGuardians(result.descriptors);
2273
+ this.recoveryGuardianSet = incoming;
2274
+ this._configuredSetStale = true;
2275
+ const guardians = incoming.map((g) => ({
2276
+ guardianId: g.guardianId.toString('hex'),
2277
+ url: g.url
2278
+ }));
2279
+ this.emit('recovery:rotated', {
2280
+ generation: result.generation.toString(),
2281
+ guardians
2282
+ });
2283
+ this.log('info', 'Guardian set rotated', {
2284
+ generation: result.generation.toString(),
2285
+ guardians
2286
+ });
2287
+ const retired = await rotation.retireOutgoing();
2288
+ if (retired === 0)
2289
+ this.startRetireRetries();
2290
+ return { generation: result.generation.toString(), guardians, retired };
2291
+ }
2292
+ catch (error) {
2293
+ throw this.rotationError(error);
2294
+ }
2295
+ finally {
2296
+ this._rotationInFlight = false;
2297
+ }
2298
+ }
2299
+ rotationError(error) {
2300
+ if (error instanceof errors_1.BeignetError)
2301
+ return error;
2302
+ if (error instanceof recovery_1.RotationRefusedError) {
2303
+ const code = {
2304
+ 'in-progress': 'ROTATION_IN_PROGRESS',
2305
+ 'no-quorum': 'ROTATION_NO_QUORUM',
2306
+ 'not-catching-up': 'ROTATION_NOT_CATCHING_UP',
2307
+ 'same-set': 'INVALID_PARAMS',
2308
+ malformed: 'INVALID_PARAMS'
2309
+ };
2310
+ return new errors_1.BeignetError(code[error.reason], error.message);
2311
+ }
2312
+ return error instanceof Error ? error : new Error(String(error));
2313
+ }
2314
+ noteRotationEvent(event) {
2315
+ this._lastRotationEvent = { type: event.type, detail: event.detail };
2316
+ this.log('info', `Guardian rotation: ${event.type}`, {
2317
+ detail: event.detail,
2318
+ ...(event.generation ? { generation: event.generation } : {})
2319
+ });
2320
+ this.emit('recovery:rotation-progress', {
2321
+ type: event.type,
2322
+ detail: event.detail,
2323
+ ...(event.generation ? { generation: event.generation } : {})
2324
+ });
2325
+ }
2326
+ resumeRotationWork() {
2327
+ const intent = (0, recovery_1.readRotationIntent)(this.storage);
2328
+ if (intent && !this._rotationInFlight) {
2329
+ this.log('info', 'Resuming an interrupted guardian-set rotation', {
2330
+ generation: intent.generation
2331
+ });
2332
+ this.rotateGuardians(intent.entries).catch((error) => {
2333
+ this.log('warn', 'Resumed rotation did not complete; it stays pending', {
2334
+ error: error instanceof Error ? error.message : String(error)
2335
+ });
2336
+ });
2337
+ }
2338
+ if ((0, recovery_1.readRetirePending)(this.storage))
2339
+ this.startRetireRetries();
2340
+ }
2341
+ startRetireRetries() {
2342
+ if (this._retireTimer)
2343
+ return;
2344
+ const attempt = async () => {
2345
+ const pending = (0, recovery_1.readRetirePending)(this.storage);
2346
+ if (!pending || this.destroyed) {
2347
+ if (this._retireTimer)
2348
+ clearInterval(this._retireTimer);
2349
+ this._retireTimer = undefined;
2350
+ return;
2351
+ }
2352
+ const opts = this._bootOpts;
2353
+ if (!opts)
2354
+ return;
2355
+ try {
2356
+ const outgoing = pending.entries.map(recovery_1.parseGuardianEntry);
2357
+ const { bound } = (0, recovery_1.bindGuardianSet)(outgoing, {
2358
+ transportFor: (guardian) => this.guardianTransportFor(guardian, opts)
2359
+ });
2360
+ await (0, recovery_1.retireOutgoingSet)(this.storage, bound, (event) => this.noteRotationEvent(event));
2361
+ }
2362
+ catch (error) {
2363
+ this.log('warn', 'Retiring the outgoing guardian set failed; will retry', {
2364
+ error: error instanceof Error ? error.message : String(error)
2365
+ });
2366
+ }
2367
+ };
2368
+ this._retireTimer = setInterval(() => {
2369
+ void attempt();
2370
+ }, 60000);
2371
+ if (this._retireTimer.unref)
2372
+ this._retireTimer.unref();
2373
+ void attempt();
2374
+ }
2375
+ getGuardianHostSurfaceStatus() {
2376
+ const status = this.node?.getGuardianHostStatus() ?? null;
2377
+ if (!status)
2378
+ return { serving: false };
2379
+ return { serving: true, ...status };
2380
+ }
2381
+ async resolveGuardianUri(uri) {
2382
+ let parsed;
2383
+ try {
2384
+ parsed = (0, peer_uri_1.parsePeerUri)(uri);
2385
+ }
2386
+ catch (error) {
2387
+ throw new errors_1.BeignetError('INVALID_PARAMS', `guardian URI "${uri}" is not a <node id>@host:port peer URI: ${error instanceof Error ? error.message : String(error)}`);
2388
+ }
2389
+ if (parsed.transport) {
2390
+ throw new errors_1.BeignetError('INVALID_PARAMS', 'guardian sessions ride plain TCP; a ws:// peer URI cannot host one');
2391
+ }
2392
+ const url = (0, recovery_1.parseBolt8GuardianUrl)(`bolt8://${parsed.pubkey}@${parsed.host}:${parsed.port}`).url;
2393
+ const opts = this._bootOpts;
2394
+ if (!opts)
2395
+ throw new errors_1.BeignetError('INTERNAL_ERROR', 'node is not started');
2396
+ const transport = this.guardianTransportFor({ guardianId: Buffer.alloc(32), url }, opts);
2397
+ const client = new recovery_1.GuardianClient({
2398
+ url,
2399
+ guardianSetId: Buffer.alloc(32),
2400
+ transport,
2401
+ timeoutMs: 15000
2402
+ });
2403
+ let info;
2404
+ try {
2405
+ info = await client.info();
2406
+ }
2407
+ catch (error) {
2408
+ throw new errors_1.BeignetError('GUARDIAN_UNREACHABLE', `no guardian answered at ${url}: ${error instanceof Error ? error.message : String(error)}`);
2409
+ }
2410
+ finally {
2411
+ this._bolt8Transport?.sessions().get(url)?.close();
2412
+ this._bolt8Transport?.sessions().delete(url);
2413
+ }
2414
+ const guardianId = info.guardianId.toString('hex');
2415
+ return {
2416
+ guardianId,
2417
+ url,
2418
+ entry: `${guardianId}@${url}`,
2419
+ guardianSetIds: info.guardianSetIds.map((id) => id.toString('hex')),
2420
+ maxCiphertextBytes: info.maxCiphertextBytes
2421
+ };
2422
+ }
2072
2423
  nodeSecret() {
2073
2424
  if (!this._nodeSecret) {
2074
2425
  this._nodeSecret = (0, wallet_keys_1.deriveLightningKeysFromMnemonic)(this.mnemonic, undefined, this.toCoinType(this.networkName)).nodePrivateKey;
@@ -5815,15 +6166,32 @@ class BeignetNode extends events_1.EventEmitter {
5815
6166
  }
5816
6167
  const held = this._peerRetrievedCapsules.get(peerPubkey);
5817
6168
  const inline = capsule.inlineRecoveryState !== undefined;
6169
+ if ((this.recoveryMode === 'async-remote' ||
6170
+ this.recoveryMode === 'quorum') &&
6171
+ this.node &&
6172
+ !this._restorePending &&
6173
+ capsule.generation > this.node.getRecoveryGeneration()) {
6174
+ this.log('error', 'A storage peer returned a capsule from a later guardian-set generation; this device was rotated away from', {
6175
+ fromPeer: peerPubkey,
6176
+ capsuleGeneration: capsule.generation.toString(),
6177
+ ownGeneration: this.node.getRecoveryGeneration().toString()
6178
+ });
6179
+ this.node.fenceForRotation(`peer ${peerPubkey} returned a capsule at generation ${capsule.generation}, above this device's ${this.node.getRecoveryGeneration()}`);
6180
+ }
5818
6181
  if (!held ||
5819
- capsule.writerEpoch > held.writerEpoch ||
5820
- (capsule.writerEpoch === held.writerEpoch &&
6182
+ capsule.generation > held.generation ||
6183
+ (capsule.generation === held.generation &&
6184
+ capsule.writerEpoch > held.writerEpoch) ||
6185
+ (capsule.generation === held.generation &&
6186
+ capsule.writerEpoch === held.writerEpoch &&
5821
6187
  capsule.latestSequence > held.latestSequence) ||
5822
- (capsule.writerEpoch === held.writerEpoch &&
6188
+ (capsule.generation === held.generation &&
6189
+ capsule.writerEpoch === held.writerEpoch &&
5823
6190
  capsule.latestSequence === held.latestSequence &&
5824
6191
  (inline || !held.inline))) {
5825
6192
  this._peerRetrievedCapsules.set(peerPubkey, {
5826
6193
  blob: Buffer.from(blob),
6194
+ generation: capsule.generation,
5827
6195
  writerEpoch: capsule.writerEpoch,
5828
6196
  latestSequence: capsule.latestSequence,
5829
6197
  inline,
@@ -5974,6 +6342,12 @@ class BeignetNode extends events_1.EventEmitter {
5974
6342
  this.releaseLock();
5975
6343
  }
5976
6344
  async destroy() {
6345
+ this._bolt8Transport?.close();
6346
+ this._bolt8Transport = null;
6347
+ if (this._retireTimer) {
6348
+ clearInterval(this._retireTimer);
6349
+ this._retireTimer = undefined;
6350
+ }
5977
6351
  if (this.destroyed)
5978
6352
  return;
5979
6353
  this.destroyed = true;