beignet 0.9.0 → 0.9.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.
- package/dist/cli/auth.js +2 -0
- package/dist/cli/auth.js.map +1 -1
- package/dist/cli/beignet-node.js +297 -25
- package/dist/cli/beignet-node.js.map +1 -1
- package/dist/cli/cli.js +50 -1
- package/dist/cli/cli.js.map +1 -1
- package/dist/cli/config.js +14 -1
- package/dist/cli/config.js.map +1 -1
- package/dist/cli/daemon.js +66 -2
- package/dist/cli/daemon.js.map +1 -1
- package/dist/cli/openapi.js +38 -0
- package/dist/cli/openapi.js.map +1 -1
- package/dist/lightning/gossip/network-graph.js +33 -0
- package/dist/lightning/gossip/network-graph.js.map +1 -1
- package/dist/lightning/node/lightning-node.js +121 -5
- package/dist/lightning/node/lightning-node.js.map +1 -1
- package/dist/lightning/recovery/assembly.js +157 -0
- package/dist/lightning/recovery/assembly.js.map +1 -0
- package/dist/lightning/recovery/index.js +1 -0
- package/dist/lightning/recovery/index.js.map +1 -1
- package/dist/types/cli/beignet-node.d.ts +42 -0
- package/dist/types/cli/types.d.ts +31 -0
- package/dist/types/lightning/gossip/network-graph.d.ts +3 -0
- package/dist/types/lightning/node/lightning-node.d.ts +12 -0
- package/dist/types/lightning/recovery/assembly.d.ts +42 -0
- package/dist/types/lightning/recovery/index.d.ts +1 -0
- package/docs/RECOVERY-PROTOCOL.md +72 -17
- package/package.json +1 -1
package/dist/cli/auth.js
CHANGED
|
@@ -51,6 +51,7 @@ exports.ROUTE_SCOPES = {
|
|
|
51
51
|
'GET /backup/scb': ['readonly'],
|
|
52
52
|
'GET /backup/peer-retrieved': ['readonly'],
|
|
53
53
|
'GET /queue': ['readonly'],
|
|
54
|
+
'GET /recovery/status': ['readonly'],
|
|
54
55
|
'POST /route/estimate': ['readonly'],
|
|
55
56
|
'POST /route/query': ['readonly'],
|
|
56
57
|
'POST /payment/estimate': ['readonly'],
|
|
@@ -137,6 +138,7 @@ exports.ROUTE_SCOPES = {
|
|
|
137
138
|
'POST /backup': [],
|
|
138
139
|
'POST /backup/trigger': [],
|
|
139
140
|
'POST /restore/scb': [],
|
|
141
|
+
'POST /recovery/restore': [],
|
|
140
142
|
'POST /watchtower/add': [],
|
|
141
143
|
'DELETE /watchtower/remove': [],
|
|
142
144
|
'POST /webhooks/register': [],
|
package/dist/cli/auth.js.map
CHANGED
|
@@ -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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"}
|
package/dist/cli/beignet-node.js
CHANGED
|
@@ -23,7 +23,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.BeignetNode = exports.jsonToRouteHops = exports.routeHopsToJson = exports.decodeOfferInput = exports.decodeInvoiceInput = exports.parseScid = exports.formatScid = exports.defaultDataDirForMnemonic = void 0;
|
|
26
|
+
exports.BeignetNode = exports.jsonToRouteHops = exports.routeHopsToJson = exports.decodeOfferInput = exports.decodeInvoiceInput = exports.parseScid = exports.formatScid = exports.defaultDataDirForMnemonic = exports.parseRecoveryMode = void 0;
|
|
27
27
|
const path = __importStar(require("path"));
|
|
28
28
|
const fs = __importStar(require("fs"));
|
|
29
29
|
const net = __importStar(require("net"));
|
|
@@ -53,12 +53,29 @@ const types_1 = require("../lightning/gossip/types");
|
|
|
53
53
|
const electrum_backend_1 = require("../lightning/chain/electrum-backend");
|
|
54
54
|
const types_2 = require("../lightning/invoice/types");
|
|
55
55
|
const wallet_keys_1 = require("../lightning/keys/wallet-keys");
|
|
56
|
+
const recovery_1 = require("../lightning/recovery");
|
|
56
57
|
const types_3 = require("../lightning/channel/types");
|
|
57
58
|
const decode_1 = require("../lightning/invoice/decode");
|
|
58
59
|
const decode_2 = require("../lightning/offer/decode");
|
|
59
60
|
const errors_1 = require("./errors");
|
|
60
61
|
const payment_queue_1 = require("./payment-queue");
|
|
61
62
|
const DEFAULT_DATA_DIR = path.join(process.env.HOME || process.env.USERPROFILE || '.', '.beignet', 'data');
|
|
63
|
+
function parseRecoveryMode(value) {
|
|
64
|
+
return value === 'peer-storage' ||
|
|
65
|
+
value === 'async-remote' ||
|
|
66
|
+
value === 'quorum'
|
|
67
|
+
? value
|
|
68
|
+
: 'off';
|
|
69
|
+
}
|
|
70
|
+
exports.parseRecoveryMode = parseRecoveryMode;
|
|
71
|
+
const RESTORE_ERROR_CODES = {
|
|
72
|
+
'no-quorum': 'RESTORE_NO_QUORUM',
|
|
73
|
+
'unknown-namespace': 'RESTORE_UNKNOWN_NAMESPACE',
|
|
74
|
+
conflict: 'RESTORE_CONFLICT',
|
|
75
|
+
'cas-exhausted': 'RESTORE_CAS_EXHAUSTED',
|
|
76
|
+
'head-unverifiable': 'RESTORE_HEAD_UNVERIFIABLE',
|
|
77
|
+
'target-unsupported': 'RESTORE_TARGET_UNSUPPORTED'
|
|
78
|
+
};
|
|
62
79
|
function defaultDataDirForMnemonic(mnemonic, baseDir = DEFAULT_DATA_DIR) {
|
|
63
80
|
const walletTag = crypto
|
|
64
81
|
.createHash('sha256')
|
|
@@ -191,6 +208,10 @@ class BeignetNode extends events_1.EventEmitter {
|
|
|
191
208
|
}
|
|
192
209
|
constructor(mnemonic, networkName, dataDir) {
|
|
193
210
|
super();
|
|
211
|
+
this.recoveryMode = 'off';
|
|
212
|
+
this.recoveryGuardianSet = [];
|
|
213
|
+
this._restorePending = false;
|
|
214
|
+
this._restoreInFlight = false;
|
|
194
215
|
this._lockPath = null;
|
|
195
216
|
this._lockExitHandler = null;
|
|
196
217
|
this.destroyed = false;
|
|
@@ -242,25 +263,6 @@ class BeignetNode extends events_1.EventEmitter {
|
|
|
242
263
|
this.rapidGossipSync = opts.rapidGossipSync ?? true;
|
|
243
264
|
this.rapidGossipSyncUrl = opts.rapidGossipSyncUrl;
|
|
244
265
|
const networkName = this.networkName;
|
|
245
|
-
const defaults = DEFAULT_ELECTRUM[networkName];
|
|
246
|
-
const rawElectrumHost = opts.electrumHost || defaults.host;
|
|
247
|
-
const electrumPort = opts.electrumPort || defaults.port;
|
|
248
|
-
const electrumTls = opts.electrumTls ?? defaults.useTls;
|
|
249
|
-
const electrumHost = await resolveHostToIPv4(rawElectrumHost);
|
|
250
|
-
if (electrumHost !== rawElectrumHost) {
|
|
251
|
-
this.log('info', 'Resolved Electrum host to IPv4', {
|
|
252
|
-
host: rawElectrumHost,
|
|
253
|
-
ipv4: electrumHost
|
|
254
|
-
});
|
|
255
|
-
}
|
|
256
|
-
const beignetNetwork = this.toBeignetNetwork(networkName);
|
|
257
|
-
const lnNetwork = this.toLnNetwork(networkName);
|
|
258
|
-
const coinType = this.toCoinType(networkName);
|
|
259
|
-
let chainHash = types_3.BITCOIN_CHAIN_HASH;
|
|
260
|
-
if (networkName === 'regtest')
|
|
261
|
-
chainHash = types_3.REGTEST_CHAIN_HASH;
|
|
262
|
-
if (networkName === 'signet')
|
|
263
|
-
chainHash = types_3.SIGNET_CHAIN_HASH;
|
|
264
266
|
if (!opts.allowMultipleInstances) {
|
|
265
267
|
const lockPath = path.join(this.dataDir, `${networkName}.lock`);
|
|
266
268
|
try {
|
|
@@ -299,6 +301,37 @@ class BeignetNode extends events_1.EventEmitter {
|
|
|
299
301
|
});
|
|
300
302
|
}, encryptionKey ? { encryptionKey } : undefined);
|
|
301
303
|
this.storage.open();
|
|
304
|
+
await this.prepareRecovery(opts);
|
|
305
|
+
if (this._restorePending) {
|
|
306
|
+
this._deferredOpts = opts;
|
|
307
|
+
this.log('warn', 'Recovery restore required: this database is fresh and the ' +
|
|
308
|
+
'guardian set holds its namespace. The daemon serves only the ' +
|
|
309
|
+
'recovery surface until POST /recovery/restore runs.');
|
|
310
|
+
return;
|
|
311
|
+
}
|
|
312
|
+
await this.initNode(opts);
|
|
313
|
+
}
|
|
314
|
+
async initNode(opts) {
|
|
315
|
+
const networkName = this.networkName;
|
|
316
|
+
const defaults = DEFAULT_ELECTRUM[networkName];
|
|
317
|
+
const rawElectrumHost = opts.electrumHost || defaults.host;
|
|
318
|
+
const electrumPort = opts.electrumPort || defaults.port;
|
|
319
|
+
const electrumTls = opts.electrumTls ?? defaults.useTls;
|
|
320
|
+
const electrumHost = await resolveHostToIPv4(rawElectrumHost);
|
|
321
|
+
if (electrumHost !== rawElectrumHost) {
|
|
322
|
+
this.log('info', 'Resolved Electrum host to IPv4', {
|
|
323
|
+
host: rawElectrumHost,
|
|
324
|
+
ipv4: electrumHost
|
|
325
|
+
});
|
|
326
|
+
}
|
|
327
|
+
const beignetNetwork = this.toBeignetNetwork(networkName);
|
|
328
|
+
const lnNetwork = this.toLnNetwork(networkName);
|
|
329
|
+
const coinType = this.toCoinType(networkName);
|
|
330
|
+
let chainHash = types_3.BITCOIN_CHAIN_HASH;
|
|
331
|
+
if (networkName === 'regtest')
|
|
332
|
+
chainHash = types_3.REGTEST_CHAIN_HASH;
|
|
333
|
+
if (networkName === 'signet')
|
|
334
|
+
chainHash = types_3.SIGNET_CHAIN_HASH;
|
|
302
335
|
const electrumServer = {
|
|
303
336
|
host: electrumHost,
|
|
304
337
|
ssl: electrumTls ? electrumPort : 0,
|
|
@@ -429,7 +462,8 @@ class BeignetNode extends events_1.EventEmitter {
|
|
|
429
462
|
peerStorageEnabled: this.peerStorageEnabled,
|
|
430
463
|
autoRebalance: opts.autoRebalance,
|
|
431
464
|
autoTuneFees: opts.autoTuneFees,
|
|
432
|
-
watchtowers: opts.watchtowers
|
|
465
|
+
watchtowers: opts.watchtowers,
|
|
466
|
+
recovery: this.recoveryNodeConfig
|
|
433
467
|
});
|
|
434
468
|
if (!sweepDestinationScript) {
|
|
435
469
|
this.scheduleSweepAddressRefresh();
|
|
@@ -620,6 +654,27 @@ class BeignetNode extends events_1.EventEmitter {
|
|
|
620
654
|
this.log('info', 'Node ready');
|
|
621
655
|
this.emit('node:ready');
|
|
622
656
|
});
|
|
657
|
+
this.node.on('recovery:durable', (through) => {
|
|
658
|
+
this.emit('recovery:durable', { through: through.toString() });
|
|
659
|
+
});
|
|
660
|
+
this.node.on('recovery:fenced', (superseding) => {
|
|
661
|
+
this.log('error', 'Recovery fenced: a newer writer epoch owns this namespace; ' +
|
|
662
|
+
'this device must not send another channel message');
|
|
663
|
+
this.emit('recovery:fenced', {
|
|
664
|
+
supersededBy: superseding
|
|
665
|
+
? {
|
|
666
|
+
epoch: superseding.lease.epoch.toString(),
|
|
667
|
+
writerPublicKey: superseding.lease.writerPublicKey.toString('hex'),
|
|
668
|
+
sequence: superseding.logHead.sequence.toString(),
|
|
669
|
+
frameHash: superseding.logHead.frameHash.toString('hex')
|
|
670
|
+
}
|
|
671
|
+
: null
|
|
672
|
+
});
|
|
673
|
+
});
|
|
674
|
+
this.node.on('recovery:backfill-lost', (detail) => {
|
|
675
|
+
this.log('error', 'Recovery backfill lost', { detail });
|
|
676
|
+
this.emit('recovery:backfill-lost', { detail });
|
|
677
|
+
});
|
|
623
678
|
this.node.on('peer_storage:retrieved', (peerPubkey, blob) => this.handleRetrievedPeerStorage(peerPubkey, blob));
|
|
624
679
|
if (this.peerStorageEnabled) {
|
|
625
680
|
this.refreshStaticChannelBackup();
|
|
@@ -683,6 +738,213 @@ class BeignetNode extends events_1.EventEmitter {
|
|
|
683
738
|
if (this.sweepDestinationScript) {
|
|
684
739
|
this.runFallbackRecoveryWhenConnected();
|
|
685
740
|
}
|
|
741
|
+
if (this._recoveryRun) {
|
|
742
|
+
this.startRecoveryConfirmLoop();
|
|
743
|
+
}
|
|
744
|
+
}
|
|
745
|
+
async prepareRecovery(opts) {
|
|
746
|
+
const mode = parseRecoveryMode(opts.recoveryMode);
|
|
747
|
+
this.recoveryMode = mode;
|
|
748
|
+
if (mode === 'off')
|
|
749
|
+
return;
|
|
750
|
+
if (mode === 'peer-storage') {
|
|
751
|
+
this.recoveryNodeConfig = { enabled: true, durability: 'local' };
|
|
752
|
+
return;
|
|
753
|
+
}
|
|
754
|
+
const guardians = (opts.recoveryGuardians ?? []).map(recovery_1.parseGuardianUri);
|
|
755
|
+
this.recoveryGuardianSet = guardians;
|
|
756
|
+
const coinType = this.toCoinType(this.networkName);
|
|
757
|
+
const keys = (0, wallet_keys_1.deriveLightningKeysFromMnemonic)(this.mnemonic, undefined, coinType);
|
|
758
|
+
const decision = await (0, recovery_1.buildGuardianRecovery)({
|
|
759
|
+
storage: this.storage,
|
|
760
|
+
nodeSecret: keys.nodePrivateKey,
|
|
761
|
+
durability: mode,
|
|
762
|
+
guardians,
|
|
763
|
+
onBarrierEvent: (event) => {
|
|
764
|
+
if (event.type === 'barrier:unreachable') {
|
|
765
|
+
this.log('warn', 'Recovery guardian unreachable', {
|
|
766
|
+
detail: event.detail
|
|
767
|
+
});
|
|
768
|
+
this.emit('recovery:guardian_unreachable', {
|
|
769
|
+
detail: event.detail,
|
|
770
|
+
...(event.sequence !== undefined
|
|
771
|
+
? { sequence: event.sequence.toString() }
|
|
772
|
+
: {})
|
|
773
|
+
});
|
|
774
|
+
}
|
|
775
|
+
},
|
|
776
|
+
onGateEvent: (event) => {
|
|
777
|
+
this.log(event.type === 'gate:fenced' ? 'error' : 'info', `Recovery gate: ${event.type}`, { detail: event.detail });
|
|
778
|
+
},
|
|
779
|
+
onReplicationEvent: (event) => {
|
|
780
|
+
this.log('debug', `Recovery replication: ${event.type}`, {
|
|
781
|
+
detail: event.detail
|
|
782
|
+
});
|
|
783
|
+
}
|
|
784
|
+
});
|
|
785
|
+
if (decision.kind === 'run') {
|
|
786
|
+
this._recoveryRun = decision;
|
|
787
|
+
this.recoveryNodeConfig = decision.recovery;
|
|
788
|
+
return;
|
|
789
|
+
}
|
|
790
|
+
if (decision.kind === 'restore-required') {
|
|
791
|
+
this._restoreDecision = decision;
|
|
792
|
+
this._restorePending = true;
|
|
793
|
+
return;
|
|
794
|
+
}
|
|
795
|
+
throw new errors_1.BeignetError('RECOVERY_UNAVAILABLE', `Recovery ${decision.outcome}: ${decision.detail}. Ownership of ` +
|
|
796
|
+
'this namespace cannot be decided without a guardian quorum; ' +
|
|
797
|
+
'retry when the guardian set is reachable.');
|
|
798
|
+
}
|
|
799
|
+
startRecoveryConfirmLoop() {
|
|
800
|
+
const run = this._recoveryRun;
|
|
801
|
+
if (!run)
|
|
802
|
+
return;
|
|
803
|
+
let delayMs = 5000;
|
|
804
|
+
const attempt = async () => {
|
|
805
|
+
if (this.destroyed)
|
|
806
|
+
return;
|
|
807
|
+
try {
|
|
808
|
+
const outcome = await run.confirm();
|
|
809
|
+
if (outcome.state === 'confirmed') {
|
|
810
|
+
this.log('info', 'Recovery gate confirmed; peer traffic released', {
|
|
811
|
+
confirming: outcome.confirming
|
|
812
|
+
});
|
|
813
|
+
return;
|
|
814
|
+
}
|
|
815
|
+
if (outcome.state === 'fenced') {
|
|
816
|
+
this.emit('recovery:fenced', {
|
|
817
|
+
supersededBy: outcome.supersededBy
|
|
818
|
+
? {
|
|
819
|
+
epoch: outcome.supersededBy.lease.epoch.toString(),
|
|
820
|
+
writerPublicKey: outcome.supersededBy.lease.writerPublicKey.toString('hex'),
|
|
821
|
+
sequence: outcome.supersededBy.logHead.sequence.toString(),
|
|
822
|
+
frameHash: outcome.supersededBy.logHead.frameHash.toString('hex')
|
|
823
|
+
}
|
|
824
|
+
: null
|
|
825
|
+
});
|
|
826
|
+
return;
|
|
827
|
+
}
|
|
828
|
+
this.log('warn', 'Recovery gate still quarantined; retrying', {
|
|
829
|
+
confirming: outcome.confirming,
|
|
830
|
+
nextRetryMs: delayMs
|
|
831
|
+
});
|
|
832
|
+
}
|
|
833
|
+
catch (err) {
|
|
834
|
+
this.log('warn', 'Recovery gate confirmation attempt failed', {
|
|
835
|
+
error: err instanceof Error ? err.message : String(err),
|
|
836
|
+
nextRetryMs: delayMs
|
|
837
|
+
});
|
|
838
|
+
}
|
|
839
|
+
this._confirmTimer = setTimeout(() => {
|
|
840
|
+
void attempt();
|
|
841
|
+
}, delayMs);
|
|
842
|
+
this._confirmTimer.unref?.();
|
|
843
|
+
delayMs = Math.min(delayMs * 2, 60000);
|
|
844
|
+
};
|
|
845
|
+
void attempt();
|
|
846
|
+
}
|
|
847
|
+
get restorePending() {
|
|
848
|
+
return this._restorePending;
|
|
849
|
+
}
|
|
850
|
+
getRecoverySurfaceStatus() {
|
|
851
|
+
const guardians = this.recoveryGuardianSet.map((g) => ({
|
|
852
|
+
guardianId: g.guardianId.toString('hex'),
|
|
853
|
+
url: g.url
|
|
854
|
+
}));
|
|
855
|
+
const profile = this.recoveryMode === 'async-remote' || this.recoveryMode === 'quorum'
|
|
856
|
+
? 'crash-v1'
|
|
857
|
+
: null;
|
|
858
|
+
if (this.recoveryMode === 'off') {
|
|
859
|
+
return {
|
|
860
|
+
mode: 'off',
|
|
861
|
+
profile: null,
|
|
862
|
+
guardians: [],
|
|
863
|
+
state: 'disabled',
|
|
864
|
+
node: null
|
|
865
|
+
};
|
|
866
|
+
}
|
|
867
|
+
if (this._restorePending) {
|
|
868
|
+
return {
|
|
869
|
+
mode: this.recoveryMode,
|
|
870
|
+
profile,
|
|
871
|
+
guardians,
|
|
872
|
+
state: this._restoreInFlight ? 'restoring' : 'restore-required',
|
|
873
|
+
node: null,
|
|
874
|
+
restore: {
|
|
875
|
+
inProgress: this._restoreInFlight,
|
|
876
|
+
...(this._lastRestoreEvent
|
|
877
|
+
? { lastEvent: this._lastRestoreEvent }
|
|
878
|
+
: {})
|
|
879
|
+
}
|
|
880
|
+
};
|
|
881
|
+
}
|
|
882
|
+
const node = this.node.getRecoveryStatus();
|
|
883
|
+
return {
|
|
884
|
+
mode: this.recoveryMode,
|
|
885
|
+
profile,
|
|
886
|
+
guardians,
|
|
887
|
+
state: node.fenced || node.gate === 'fenced' ? 'fenced' : 'running',
|
|
888
|
+
node
|
|
889
|
+
};
|
|
890
|
+
}
|
|
891
|
+
async restoreFromGuardians() {
|
|
892
|
+
if (this._restoreInFlight) {
|
|
893
|
+
throw new errors_1.BeignetError('RESTORE_IN_PROGRESS', 'A guardian restore is already running; watch ' +
|
|
894
|
+
'recovery:restore-progress over SSE or poll the status route.');
|
|
895
|
+
}
|
|
896
|
+
if (!this._restorePending || !this._restoreDecision) {
|
|
897
|
+
throw new errors_1.BeignetError('RESTORE_NOT_PENDING', 'Guardian restore only applies while the daemon is in the ' +
|
|
898
|
+
'restore-required state (a fresh database whose namespace the ' +
|
|
899
|
+
'guardian set holds). This node is ' +
|
|
900
|
+
(this.recoveryMode === 'off' || this.recoveryMode === 'peer-storage'
|
|
901
|
+
? 'not running a guardian recovery mode.'
|
|
902
|
+
: 'already running on its own state.'));
|
|
903
|
+
}
|
|
904
|
+
this._restoreInFlight = true;
|
|
905
|
+
try {
|
|
906
|
+
const driver = this._restoreDecision.buildRestoreDriver((event) => {
|
|
907
|
+
this._lastRestoreEvent = { type: event.type, detail: event.detail };
|
|
908
|
+
this.log('info', `Recovery restore: ${event.type}`, {
|
|
909
|
+
detail: event.detail
|
|
910
|
+
});
|
|
911
|
+
this.emit('recovery:restore-progress', {
|
|
912
|
+
type: event.type,
|
|
913
|
+
detail: event.detail
|
|
914
|
+
});
|
|
915
|
+
});
|
|
916
|
+
let result;
|
|
917
|
+
try {
|
|
918
|
+
result = await driver.restore();
|
|
919
|
+
}
|
|
920
|
+
catch (err) {
|
|
921
|
+
if (err instanceof recovery_1.RestoreRefusedError) {
|
|
922
|
+
throw new errors_1.BeignetError(RESTORE_ERROR_CODES[err.reason], err.message);
|
|
923
|
+
}
|
|
924
|
+
throw err;
|
|
925
|
+
}
|
|
926
|
+
const opts = this._deferredOpts;
|
|
927
|
+
this._restoreDecision = undefined;
|
|
928
|
+
await this.prepareRecovery(opts);
|
|
929
|
+
if (!this._recoveryRun) {
|
|
930
|
+
throw new errors_1.BeignetError('INTERNAL_ERROR', 'Restore installed a lease but the reassembly did not yield a ' +
|
|
931
|
+
'runnable recovery state');
|
|
932
|
+
}
|
|
933
|
+
await this.initNode(opts);
|
|
934
|
+
this._restorePending = false;
|
|
935
|
+
const info = {
|
|
936
|
+
exact: result.wireSafetyProof !== undefined,
|
|
937
|
+
framesApplied: result.framesApplied,
|
|
938
|
+
guardiansRepaired: result.guardiansRepaired,
|
|
939
|
+
epoch: result.lease.epoch.toString()
|
|
940
|
+
};
|
|
941
|
+
this.emit('recovery:restored', info);
|
|
942
|
+
this.log('info', 'Recovery restore complete', info);
|
|
943
|
+
return info;
|
|
944
|
+
}
|
|
945
|
+
finally {
|
|
946
|
+
this._restoreInFlight = false;
|
|
947
|
+
}
|
|
686
948
|
}
|
|
687
949
|
runFallbackRecoveryWhenConnected() {
|
|
688
950
|
const attempt = () => {
|
|
@@ -1911,6 +2173,8 @@ class BeignetNode extends events_1.EventEmitter {
|
|
|
1911
2173
|
return this._draining;
|
|
1912
2174
|
}
|
|
1913
2175
|
hasPendingPayments() {
|
|
2176
|
+
if (this._restorePending)
|
|
2177
|
+
return false;
|
|
1914
2178
|
const payments = this.node.listPayments();
|
|
1915
2179
|
return payments.some((p) => p.status === 'PENDING');
|
|
1916
2180
|
}
|
|
@@ -3713,15 +3977,19 @@ class BeignetNode extends events_1.EventEmitter {
|
|
|
3713
3977
|
this._fallbackRecoveryTimer = undefined;
|
|
3714
3978
|
}
|
|
3715
3979
|
this.paymentQueue?.removeAllListeners();
|
|
3980
|
+
if (this._confirmTimer) {
|
|
3981
|
+
clearTimeout(this._confirmTimer);
|
|
3982
|
+
this._confirmTimer = undefined;
|
|
3983
|
+
}
|
|
3716
3984
|
if (this._backupPromise) {
|
|
3717
3985
|
await this._backupPromise.catch(() => {
|
|
3718
3986
|
});
|
|
3719
3987
|
}
|
|
3720
|
-
await this.node
|
|
3988
|
+
await this.node?.gracefulShutdown(timeoutMs);
|
|
3721
3989
|
this.storage.close();
|
|
3722
3990
|
this.removeAllListeners();
|
|
3723
3991
|
try {
|
|
3724
|
-
await this.wallet
|
|
3992
|
+
await this.wallet?.stop();
|
|
3725
3993
|
}
|
|
3726
3994
|
catch {
|
|
3727
3995
|
}
|
|
@@ -3743,12 +4011,16 @@ class BeignetNode extends events_1.EventEmitter {
|
|
|
3743
4011
|
clearInterval(this._fallbackRecoveryTimer);
|
|
3744
4012
|
this._fallbackRecoveryTimer = undefined;
|
|
3745
4013
|
}
|
|
4014
|
+
if (this._confirmTimer) {
|
|
4015
|
+
clearTimeout(this._confirmTimer);
|
|
4016
|
+
this._confirmTimer = undefined;
|
|
4017
|
+
}
|
|
3746
4018
|
this.paymentQueue?.removeAllListeners();
|
|
3747
|
-
this.node
|
|
4019
|
+
this.node?.destroy();
|
|
3748
4020
|
this.storage.close();
|
|
3749
4021
|
this.removeAllListeners();
|
|
3750
4022
|
try {
|
|
3751
|
-
await this.wallet
|
|
4023
|
+
await this.wallet?.stop();
|
|
3752
4024
|
}
|
|
3753
4025
|
catch {
|
|
3754
4026
|
}
|