スクリーンショットで見るライトニングノードのリカバリ
仮想マシン上に置いていた umbrel の実験ノードが、仮想マシンごと吹き飛んだので、LNDのリカバリを試してみました。めったにない機会なのでスクショを共有します。
在りし日の実験ノード。吹き飛んでしまったものは仕方ない。リカバリ始めます。
まずはBitcoin Node のインストール。その前にUmbrelのセットアップもあるけど今回は省略。
Lightning Node のインストール。
リカバリの方を選択。
リカバリを選んだら、シークレットワードの入力画面へ。
私の場合、ここで問題が。シークレットワードのメモが複数ある!どれが実験ノードのシークレットワードだったか分からない!幸い一つ目が当たりでしたが、下手すると何度もトライすることになるところでした。シークレットワードの管理、大事ですね。(あたりまえ)
Yes!!!!
同期が終わってからチャンネルリカバリを試してください。OK。
#reckless です。
しばらく待つとオンチェーンのBTCがウォレットに復元されていきます。
来た!
来た来た!
オンチェーン分の復元完了
Recover channels を選んで、ライトニングの方もリカバリします。
準備中
チャネルバックアップファイルをドラッグアンドドロップします。バックアップファイル、ちゃんと残しておいてよかった。
登録。NEXT!
リカバリ開始。オンチェーンに戻ってくるのに2日くらいかかるようです。
(2023/9/25追記)
二日経過してもライトニングの方のビットコインがオンチェーンに戻ってくる気配がない。トランザクション見られないかなと思って、LNDやRide the Rightning、ThunderHub、LNDgを見たけど、それらしきものの記載がない。
と思ってたら、2023/9/24、ほとんど戻ってきた。
あと二つ!
閉じられた7つのうち、今回資金が戻ってきた5つのチャネルは、LNDgによると、Close Typeは、Remote Force になってる。
- フォースクローズ扱いだから資金が戻ってくるのに時間がかかる?
- mempoolが混んでるから手数料が足りてなくてなかなか取り込まれなかった?
辺りでしょうか?
LNDの再インストールのところからもう一度やってみたらよいというのも見たので、私もこれからやってみます。
(2023/10/4追記)
Satoshi Logistics の分も戻ってきました。これであと一つ!
あれ、開始当初は11,000,000Satsなので、もしかして赤字なの?最後のフォースクローズのフィーは確かになかなか重たかったけど。
(2023/10/8追記)
あとはlnbits.comだけなのだが、一向に閉じられる気配がない。
lncli pendingchannels を見てみる。
~/umbrel$ sudo ./scripts/app compose lightning exec lnd lncli pendingchannels
[sudo] password for hide:
{
"total_limbo_balance": "0",
"pending_open_channels": [
],
"pending_closing_channels": [
],
"pending_force_closing_channels": [
],
"waiting_close_channels": [
{
"channel": {
"remote_node_pub": "022bd0aa893db4ac890e457cca8c83f112518d6941bf9153dab4bf904620503a78",
"channel_point": "7533659fd327dafd48ce2880d988e528a3cd7eacdf36802c8e2fcc1bec16de01:1",
"capacity": "1000000",
"local_balance": "0",
"remote_balance": "0",
"local_chan_reserve_sat": "0",
"remote_chan_reserve_sat": "0",
"initiator": "INITIATOR_LOCAL",
"commitment_type": "STATIC_REMOTE_KEY",
"num_forwarding_packages": "0",
"chan_status_flags": "ChanStatusLocalDataLoss|ChanStatusRestored",
"private": true
},
"limbo_balance": "0",
"commitments": {
"local_txid": "",
"remote_txid": "",
"remote_pending_txid": "",
"local_commit_fee_sat": "0",
"remote_commit_fee_sat": "0",
"remote_pending_commit_fee_sat": "0"
},
"closing_txid": ""
}
]
}
channel_point で強制クローズを試してみる。
~/umbrel$ sudo ./scripts/app compose lightning exec lnd lncli closechannel --force 7533659fd327dafd48ce2880d988e528a3cd7eacdf36802c8e2fcc1bec16de01 1
[lncli] rpc error: code = Unknown desc = cannot close channel with state: ChanStatusLocalDataLoss|ChanStatusRestored
まぁ、だめだよね。そろそろ相手から閉じてもらえるように連絡を取ってみる。
(2023/10/9追記)
なかなかに前途多難。
(2023/11/4追記 やっと完了編が書ける。長かった。)
chantools をインストール
chantoolsは、過去にYuyaさんも紹介してくれているツールです。
インストールの仕方は今でも同じなのだけど、現時点のバージョンはv0.12.0でした。
$ cd /tmp
$ wget -O chantools.tar.gz https://github.com/lightninglabs/chantools/releases/download/v0.12.0/chantools-linux-amd64-v0.12.0.tar.gz
$ tar -zxvf chantools.tar.gz
$ sudo mv chantools-*/chantools /usr/local/bin/
解決方法について検索するといくつかのやり方が見つかる。
今回は後者の方のやり方でうまくいきました。具体的には、
chantools triggerforceclose --peer [peer@address:port] --channel_point [channel:id]
peer@address:port は、lnbits.com なので、AMBOSSで検索して、022bd0aa893db4ac890e457cca8c83f112518d6941bf9153dab4bf904620503a78@165.227.164.18:9735
でした。
channel:id は、
7533659fd327dafd48ce2880d988e528a3cd7eacdf36802c8e2fcc1bec16de01:1
なので、
$ chantools triggerforceclose --peer 022bd0aa893db4ac890e457cca8c83f112518d6941bf9153dab4bf904620503a78@165.227.164.18:9735 --channel_point 7533659fd327dafd48ce2880d988e528a3cd7eacdf36802c8e2fcc1bec16de01:1
を実行、
- Input your 24-word mnemonic separated by spaces: を聞かれるので、入力
- Input your cipher seed passphrase (press enter if your seed doesn't have a passphrase): を聞かれるので入力
Found force close transaction 885d6b6ed6e85f7b3102d865a308af7c855eae4423a45a68a8b9803fd43457ed
やっと閉じられた!
これにて完了。