アクセスできなくなったLNノードの資金を回収してみる
家のブレーカーが落ちてから、LNノードとして使っていたラズパイが再起不能になりました。
なんとかデータだけでも取り出そうと思ったのですが、ストレージにもアクセスできず。
新しくラズパイ買うかーと思って調べてみると、なんとどこも品切れ、あったとしても以前の価格の2~3倍の値段でした。
まさかここまで高騰してるとは思いませんでした。。。
さすがに買う気になれなかったので、とりあえずはアクセスできなくなった資金の回収をしようと思います。
この記事では、シードとchannel.backupが手元にあることが前提になります。
実行環境
- Windows 10 21H1
- lnd version 0.14.3-beta
1. LNDのインストール
こちらからlndをダウンロードします。
次に、C:\Users\username\AppData\Local\Lndを作成し(usernameはご自身のものに変えてください)、zipファイルを展開してlnd.exeとlncli.exeを作成したフォルダにコピーします。
2. lnd.confの作成
C:\Users\username\AppData\Local\Lndにlnd.confを作成します。
notepad C:\Users\username\AppData\Local\Lnd\lnd.conf
lnd.confは以下のようにします。
[Application Options]
debuglevel=info
feeurl=https://nodes.lightning.computer/fees/v1/btc-fee-estimates.json
[Bitcoin]
bitcoin.active=1
bitcoin.mainnet=1
bitcoin.node=neutrino
[neutrino]
neutrino.connect=btcd-mainnet.lightning.computer
neutrinoで起動し、Lightning Labsの公開ノードに接続します。
3. オンチェーン資金の回収
lndを起動します。
C:\Users\username\AppData\Local\Lnd\lnd.exe
別のセッションで以下のコマンドを実行し、新しくウォレットを作成します。
C:\Users\username\AppData\Local\Lnd\lncli.exe create
ウォレットのパスワードを設定します。
Input wallet password:
Confirm wallet password:
シードを持っているか聞かれるので、24単語のシードを入力します。
Do you have an existing cipher seed mnemonic or extended master root key you want to use?
Enter 'y' to use an existing cipher seed mnemonic, 'x' to use an extended master root key
or 'n' to create a new seed (Enter y/x/n): y
Input your 24-word mnemonic separated by spaces:
シードを作成する際に、パスフレーズを使用した場合はここで入力します(umbrelは無し)。
Input your cipher seed passphrase (press enter if your seed doesn't have a passphrase):
再スキャンする使用済みアドレスの数を入力します。デフォルトで良いと思いますが、オンチェーンを頻繁に使用した場合は値を増やす必要があるかもしれません。
Input an optional address look-ahead used to scan for used keys (default 2500):
問題がなければ、ウォレットが作成されます。
!!!YOU MUST WRITE DOWN THIS SEED TO BE ABLE TO RESTORE THE WALLET!!!
---------------BEGIN LND CIPHER SEED---------------
---------------END LND CIPHER SEED-----------------
!!!YOU MUST WRITE DOWN THIS SEED TO BE ABLE TO RESTORE THE WALLET!!!
lnd successfully initialized!
ウォレットが作成できたら、リカバリーの進捗状況を確認します。
C:\Users\username\AppData\Local\Lnd\lncli.exe getrecoveryinfo
リカバリーが終了したら、オンチェーン残高を確認します。
C:\Users\username\AppData\Local\Lnd\lncli.exe walletbalance
以上がオンチェーン資金の回収方法です。
4. オフチェーン資金の回収
次にオフチェーンの資金を回収します。channel.backupを用意し、最初に作成したフォルダにコピーします。restorechanbackup
コマンドを使用し、 multi_file
にchannel.backupがあるパスを設定します。
C:\Users\username\AppData\Local\Lnd\lncli.exe restorechanbackup --multi_file=C:\Users\username\AppData\Local\Lnd\channel.backup
restorechanbackup
を実行することで、以前のpeerにchannelを強制的に閉鎖するよう依頼します。オフラインのpeerがいた場合、そのpeerとのchannelにある資金は、SCBを使って回収することはできません。
pendingchannels
で、閉鎖待ちのchannelを確認できます。
C:\Users\username\AppData\Local\Lnd\lncli.exe pendingchannels
各channelのclosing_txid
で閉鎖トランザクションIDを確認します。
すべてのトランザクションが承認されれば、オフチェーン資金の回収は完了です。ウォレットに関連するトランザクションはlistchaintxns
で確認できます。
C:\Users\username\AppData\Local\Lnd\lncli.exe listchaintxns
回収したすべての資金を別のアドレスに送金したい場合は以下を実行します。
C:\Users\username\AppData\Local\Lnd\lncli.exe sendcoins --sweepall --sat_per_vbyte 1 addr
addr
は宛先のアドレスに置き換えてください。手数料の過払いを避けたい方はsat_per_vbyte
オプションをつけることで、sat/vbyteの手数料を手動で設定できます。
以上、オンチェーン・オフチェーンの資金の回収方法でした。
有料エリアでは、スマホを使ったもっと簡単な資金の回収方法を紹介しています。