Skip to content

Commit bd467be

Browse files
authored
Merge pull request #213 from guggero/zombierecovery-command-generator
doc: add command-generator page for zombie recovery process
2 parents bc5a1d7 + faa2b92 commit bd467be

File tree

10 files changed

+693
-173
lines changed

10 files changed

+693
-173
lines changed

.github/workflows/main.yml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,18 @@ jobs:
2828
with:
2929
fetch-depth: 0
3030

31+
- name: linter cache
32+
uses: actions/cache@v4
33+
with:
34+
path: |
35+
/tmp/go-lint-cache
36+
key: ${{ runner.os }}-go-${{ env.GO_VERSION }}-linter-${{ hashFiles('**/go.sum') }}
37+
38+
- name: Cache Docker images.
39+
uses: ScribeMD/[email protected]
40+
with:
41+
key: docker-${{ runner.os }}-${{ hashFiles('**/go.sum') }}
42+
3143
- name: lint
3244
run: make lint
3345

README.md

Lines changed: 178 additions & 167 deletions
Large diffs are not rendered by default.

cmd/chantools/zombierecovery_findmatches.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ func newZombieRecoveryFindMatchesCommand() *cobra.Command {
138138
cc := &zombieRecoveryFindMatchesCommand{}
139139
cc.cmd = &cobra.Command{
140140
Use: "findmatches",
141-
Short: "[0/3] Match maker only: Find matches between " +
141+
Short: "[0/3] Matchmaker only: Find matches between " +
142142
"registered nodes",
143143
Long: `Match maker only: Runs through all the nodes that have
144144
registered their ID on https://www.node-recovery.com and checks whether there

doc/chantools_zombierecovery.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@ to help with recovering funds stuck in zombie channels.
1010
Please visit https://github.com/lightninglabs/chantools/blob/master/doc/zombierecovery.md
1111
for more information on how to use these commands.
1212

13+
Check out https://guggero.github.io/chantools/doc/command-generator.html for an
14+
interactive GUI that guides you through the different steps.
15+
1316
```
1417
chantools zombierecovery [flags]
1518
```
@@ -33,7 +36,7 @@ chantools zombierecovery [flags]
3336
### SEE ALSO
3437

3538
* [chantools](chantools.md) - Chantools helps recover funds from lightning channels
36-
* [chantools zombierecovery findmatches](chantools_zombierecovery_findmatches.md) - [0/3] Match maker only: Find matches between registered nodes
39+
* [chantools zombierecovery findmatches](chantools_zombierecovery_findmatches.md) - [0/3] Matchmaker only: Find matches between registered nodes
3740
* [chantools zombierecovery makeoffer](chantools_zombierecovery_makeoffer.md) - [2/3] Make an offer on how to split the funds to recover
3841
* [chantools zombierecovery preparekeys](chantools_zombierecovery_preparekeys.md) - [1/3] Prepare all public keys for a recovery attempt
3942
* [chantools zombierecovery signoffer](chantools_zombierecovery_signoffer.md) - [3/3] Sign an offer sent by the remote peer to recover funds

doc/chantools_zombierecovery_findmatches.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
### Synopsis
66

7-
Match maker only: Runs through all the nodes that have
7+
Matchmaker only: Runs through all the nodes that have
88
registered their ID on https://www.node-recovery.com and checks whether there
99
are any matches of channels between them by looking at the whole channel graph.
1010

doc/command-generator/src/App.vue

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,16 @@
11
<template>
22
<div id="app" class="container mt-5">
33
<h1 class="mb-4">chantools command generator</h1>
4+
<p class="lead">
5+
This tool helps you generate the correct command line arguments for
6+
various chantools commands based on your scenario.<br/>
7+
You must have <code>chantools</code> installed on your system to run the
8+
generated commands. See the
9+
<a href="https://github.com/lightninglabs/chantools#installation">installation instructions</a>.
10+
<br/><br/>
11+
Once you have installed <code>chantools</code>, start by specifying the
12+
global options below, then pick a command to run.
13+
</p>
414
<GlobalOptions @global-args-changed="updateGlobalArgs" />
515
<CommandSelector
616
v-if="!selectedCommand"

doc/command-generator/src/components/CommandGenerator.vue

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,10 @@
44
:is="command.name"
55
@generate-args="onGenerateArgs"
66
:command="command"
7+
:global-args="globalArgs"
78
v-if="command.name"
89
/>
9-
<div class="generated-command mt-4">
10+
<div class="generated-command mt-4" v-if="!hideCommandOutput">
1011
<h3>Generated Command:</h3>
1112
<pre
1213
class="alert alert-secondary"
@@ -19,6 +20,7 @@
1920
<script>
2021
import SweepRemoteClosed from './SweepRemoteClosed.vue';
2122
import TriggerForceClose from './TriggerForceClose.vue';
23+
import ZombieRecovery from './ZombieRecovery.vue';
2224
2325
function commandString(comp) {
2426
let commandName = comp.command.name || '';
@@ -67,6 +69,7 @@ export default {
6769
components: {
6870
SweepRemoteClosed,
6971
TriggerForceClose,
72+
ZombieRecovery,
7073
},
7174
props: {
7275
command: {
@@ -85,19 +88,27 @@ export default {
8588
return {
8689
generatedCommand: commandString(this),
8790
pageArgs: {},
91+
hideCommandOutput: false,
8892
};
8993
},
9094
methods: {
9195
goBack() {
9296
this.$emit('back');
9397
},
9498
onGenerateArgs(args) {
95-
this.pageArgs = args;
99+
if (args.hide) {
100+
this.hideCommandOutput = true;
101+
this.pageArgs = {};
102+
} else {
103+
this.hideCommandOutput = false;
104+
this.pageArgs = args;
105+
}
96106
this.generatedCommand = commandString(this);
97107
},
98108
},
99109
watch: {
100110
command() {
111+
this.hideCommandOutput = false;
101112
this.generatedCommand = commandString(this);
102113
},
103114
globalArgs() {

doc/command-generator/src/components/CommandSelector.vue

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,12 @@
2626
the channels that were just force-closed and confirmed in the previous
2727
step.
2828
</li>
29+
<li>
30+
For any remaining channels where neither party has channel data
31+
anymore, run <code>ZombieRecovery</code> to try and recover funds
32+
with the cooperation of the remote peer (requires you to be in contact
33+
with the remote node operator).
34+
</li>
2935
</ol>
3036
<div class="command-list">
3137
<div
@@ -64,6 +70,12 @@ export default {
6470
'Requires the peer to be online, reachable and still have the ' +
6571
'channel data.',
6672
},
73+
{
74+
name: 'ZombieRecovery',
75+
description: 'A multi-step process to rescue funds from channels ' +
76+
'where both nodes have lost their channel data. This requires ' +
77+
'cooperation from the channel peer.',
78+
},
6779
],
6880
};
6981
},

0 commit comments

Comments
 (0)