チャンネル閉鎖操作したのにいつまで経っても反映されない時の対処法
この記事の対象者
- RideTheLightning(RTL)やUmbrelダッシュボード上でチャンネル閉鎖操作を行った。
- 画面上はTransactionn IDが表示されているのにmempool等で確認するとトランザクションが見当たらない。
- Why! LightningNetwork!
という方向けです。いるのかそんな人。私はなりました。
上の画像はRTLのものです。
上の画像のように、いつまで経ってもWaiting Closeから閉じたいチャンネルが動かないよ~という人はこの記事が刺さるかもしれません。
対処方法
1) RTLでchannelpointを表示し、":"の手前をメモる。
":"の後ろの番号も覚えておく。後で使う。
2) 自ノードにsshで接続する。
ssh [ユーザ名]@[umbrelのIPアドレス]
umbrelログインパスワード入力
3) LNDコンテナに入る。(省略する方法もありますが手順統一のために必須としています)
docker exec -it lnd bash
4) lncli を使ってチャンネル閉鎖操作を行う。
lncli closechannel --force --funding_txid [ChannelPointの":"より前の文字列] --output_index [ChannelPointの":"より後の数字]
下記の画像は例です。
5) エラーがでなけば "closing_txid"が表示されるので把握したIDをmempoolなどで検索する。
未承認Txとして表示されていれば成功。
承認されるのをねっとりと見守る。
チャンネルによって違うが1日から数日かかる。
6) 資金が回収できるので、先人達に感謝の祈りを捧げる。
用語の説明
LightningNetworkはある二つのノード間がチャンネルを開け閉めした事実をBTCブロックチェーンに記録する仕組みとなっているので、この辺をなんとなく分かった上で以下の用語を見ていきます。今回の事例で必要になる用語です。
Channel Point
書式・・・ [チャンネルを開いた時のトランザクションID]:[インデックス番号]
[トランザクションID]はmempoolなどで検索すると取り込まれたブロックが分かる。
Transaction ID
ブロックに記録される情報(=トランザクション)を特定するためのID。今回の事例ではチャンネルを開く閉じるを行う時に発行される。mempoolなどで検索すると取り込まれるまでの様子を観察できる。楽しい。
Commiment-TX
チャンネルの強制閉鎖を行うと発行されるトランザクションのこと。このトランザクションが承認されると資金が回収される。
Maturity Height
Commiment-TXが承認されるであろうブロック番号(ブロック高さと表現されることもある)。この番号のブロックが生成される様を眺めているとお腹の中で育つ我が子の誕生までの過程を10分くらいで追体験できる。この番号のブロックが作られ始めたとき、完成した時、次のブロックの生成が始まった時など、正確にどのタイミングで資金回収できるのかまでは今回は分からなかった。
Blocks Till Maturity
閉鎖のためのトランザクションが承認されるまで待たなくてはいけないブロックの数。BTCにおける1ブロック生成は約10分間隔なので掛け算して残り時間を指折り数えつつその時をモニタの前で迎えよう!自分で作れる年越しカウントダウンイベントみたいで楽しいぞ!
参考資料
特になし。DHメンバーの名前を言えないあの人からの助言。
この記事の背景
私のumbrelはラズパイ4+HDD+格安SIM(≒回線が貧弱)で運用しているせいか、操作している人が良く分からないままいじることが多い(しかも大体酔ってる)せいか、とんでもない操作を行ってしまい、しょっちゅうトラブルに見舞われています。
今回は、DHコミュニティ内で行っている実験に参加しようと、手持ちの暗号資産の整理やチャンネルの閉鎖をすすめていた時に発生した不具合でした。
spotlightに記録しておけば備忘録にもなるし、誰かの役に立つかもしれないと思えばこそ楽しんで取り組めているんですが、本音は私も「弊ノードのルーティング戦略は~」とか「今月のFeeは~」とか「DBサイズが肥大化した~」とか言ってみたい!LNノード運営してるぜ的な満足を得たい!あと、ドやりたい!
とはいえ、トラブル時の対処法について日本語記事が必要だと思いますので、今後も何かある度に記事化しておこうと思います。
用語の説明もあって分かりやすかったです。
私も前にこの現象を体験しましたが、その時は相手ノードがキシンさんだったので直接連絡して向こうにも強制クローズ処理してもらって解決しました。この方法を知ってれば相手が連絡付かない人でも安心ですね~