チャネルバックアップファイルを自動でコピーしてみる!

チャネルバックアップファイルを自動でコピーしてみる!

はじめまして!

自分はDiamond Handsに参加しようと思って最近umbrelの運用を始めたのですが(みなさんのumbrelの記事めちゃくちゃ参考になりました)、同じ理由で始めた方も少なからずいらっしゃるんじゃないでしょうか?

DHのノードへのチャネル開設には最低100万satoshi, 現在のBTC価格で約3万円が必要になります。
もちろんそれ以上のキャパシティでチャネルを開設している方もたくさんいらっしゃると思います。

貴重なBTCをGOXしないためにもバックアップは常日頃から心掛けたいところです!

最近知って焦ったんですが、オンチェーンのBTCはセットアップ時に表示される24単語のシードで復元可能ですが、LNのチャネルにあるBTCはシードでは復元できません!
何らかの理由でノードにアクセスできなくなった場合は、バックアップファイルが必要になります。バックアップファイルを使って相手ノードにチャネルを閉じてもらうことで、オンチェーンにBTCを戻すことができるみたいです。(今度実際にやってみて記事にしたいと思います)

umbrelではバックアップファイルを暗号化した上で、定期的にtor経由でアップロードしていて、シードが入力されたタイミングでサーバーからバックアップファイルが送られ、復号化される仕組みみたいです(たぶん笑)。
またダッシュボードから手動でダウンロードも可能です。+open channelの右側にある・・・ボタンからダウンロードできます。

なのでumbrelだとシードだけで大丈夫っちゃ大丈夫な感じはしますが、チャネル開設のたびに手動で取るのも手間がかかるし、umbrelのサーバーにアクセスできなくなる可能性もゼロではないので、念には念を入れて、今回は自分でバックアップのコピーを取りたいと思います!

1. SSHでumbrelにログイン

まずはターミナルからsshでumbrelにログインします。

ssh umbrel@umbrel.local

2. inotify-toolsのインストール

umbrelにログインしたら、下記コマンドでinotify-toolsをインストールします。

sudo apt-get install inotify-tools

inotify-toolsは監視対象のファイルのイベント(変更,保存,削除など)を検知できるツールです。今回はchannel.backup(lndのバックアップファイル)を監視対象にします。チャネルが新しく開設されるとchannel.backupも更新されるので、そのタイミングで任意の場所にコピーをとりたいと思います。

3. サービスの作成

inotify-toolsのインストールが完了したので、次はコピーを行うサービスを作成します。

cd /usr/local/bin

スクリプトを作成し、編集します。

sudo nano copy-channel-backup.sh

nanoエディタが開くので以下のコードを貼り付けて保存します。COPYをコピーを置きたいパスに変更してください。Ctrl+Oで保存し、Ctrl+Xで終了できます。

#!/bin/bash
FILE='/home/umbrel/umbrel/lnd/data/chain/bitcoin/mainnet/channel.backup'
COPY='コピーしたいパス/channel.backup'

while true; do
    inotifywait $FILE
    cp $FILE $COPY
done

保存ができたら実行権限を与えます。

sudo chmod +x copy-channel-backup.sh

4. サービス設定ファイルの作成

スクリプトが作成できたので、次にサービスの設定ファイルを作成します。

cd /etc/systemd/system/

設定ファイルを作成し、編集します。

sudo nano copy-channel-backup.service

以下を貼り付け保存します。

[Service]
ExecStart=/usr/local/bin/copy-channel-backup.sh
Restart=always
RestartSec=1
User=root
Group=root
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=copy-channel-backup

[Install]
WantedBy=multi-user.target

5. サービスの有効化,動作確認

準備が整ったのでサービスを起動します。

sudo systemctl start copy-channel-backup

次にログを確認します。

journalctl -fu copy-channel-backup

ログにWatches establishedと出力されていれば正常に起動しています。(Ctrl+Cで終了)
次にサービスを有効化します。

sudo systemctl enable copy-channel-backup

最後に動作確認をしてみたいと思います。下記コマンドを実行します。

touch ~/umbrel/lnd/data/chain/bitcoin/mainnet/channel.backup

3. で指定したパスにchannel.backupがコピーされていたら成功です!

6. 最後に

お疲れ様でした!

これでバックアップのコピーを自動で取ることができました!これで一安心、、、ではないですね笑

これでも結局umbrelにアクセスできなくなった場合に困ってしまいます。コピーをとっただけでは少し心もとないですね。

なので次回は、バックアップを自動でクラウドにアップロードしてみたいと思います!

Remaining : 0 characters / 0 images
100

Sign up / Continue after login

Related stories

Writer

いろいろ勉強中。よろしくお願いします!

Share

Popular stories

チャネルバックアップファイルを自動でクラウドに保存してみる

12