【Umbrel】BlueWallet Lightning & tailscaleで便利で快適なLightningウォレットを作ろう!
BlueWallet(https://bluewallet.io/)はビットコインオンチェーンウォレットだけではなくLightningウォレットとしても使えます。Lightningウォレット(以下BWLウォレット)はLigtning Networkノードとしての機能は持っておらず、LNDと通信してそのLNDが持つチャネル残高・流動性やインボイス発行・決済機能など利用させてもらうという形となります。
BWLウォレットはLNDと直接接続できません。LNDhubというソフトウェアと通信し、LNDhubがBWLウォレットとLNDの仲介役として機能することでBWLウォレットはLightningウォレットとして機能できます。
Umbrelをお持ちの方は"BlueWallet Lightning(以下BWL)"というアプリをインストールすればUmbrelにLNDhubが追加できます。BlueWallet Lightningと名前こそ違いますが、その実体はLNDhubです。
デフォルトのBWL運用ではBWLウォレットとBWL間はTorで接続することを想定しています。ですがTorでは通信が遅く、取引履歴・残高の更新やLN支払いのたびに遅延するので使い勝手はよろしくありません。そこでTorの替わりに無料のVPNサービス「tailscale」を使うことでレスポンスを向上させることができます。
<参照> Bluewallet Ligthningウォレット、LNDhub、LNDの3者関係の図解
BWLウォレットで表示される残高とはLNDhubのデータベース(Redis)で管理されている数値です。データベースにBWLウォレットを使ってLN入出金したビットコイン額、オンチェーン入金したビットコイン額が記録され、その収支残高がBWLウォレットにおけるビットコイン残高として表示されています。
以下パートでTor(遅い)の替わりにtailscaleでBWLウォレットとBWLの運用するための設定手順を説明します。
手順概要
- Umbrelに "BlueWallet Lightning" および "tailscale"をUmbrelアプリストアからインストール。tailscaleを起動してログインする。
- 自分のスマホに "tailscale"をアプリストアからインストール。
tailscaleを起動してログインする。
Umbrelに割り当てられたIPアドレスをメモしておく。 - 自分のスマホに"BlueWallet" をアプリストアからインストール。
Lightningウォレットを作成する。
この時LNDhub接続先を http://Umbrelのtailscale IPアドレス:3008 とする。
手順詳細
1.
・Umbrelダッシュボードにログイン。
・App Storeにて "BlueWallet Lightning"をインストールする。
・続いて"Talescale"をインストールする。
・インストール完了後OPENをクリックする。
・Log inページが開くのでLog inをクリック。
・Googleアカウント、Microsoftアカウント、Githubアカウントのいずれかを使ってtailscaleにログイン。
2.
※ここではAndroidスマートフォンで手順を解説します。
・Google Play Storeを起動し、"tailscale" (https://play.google.com/store/apps/details?id=com.tailscale.ipn)をインストールする。
・インストール完了後にログインするが、手順【1】と同じアカウントを使ってログインする。
・画面上部のスイッチをタップしてActiveにする。
tailscaleのアプリ画面にはtailscaleに追加されてるスマホやUmbrelがホスト名およびそれらに自動的に割り当てられたIPアドレスが表示されています。
下記スクショでは私のスマホ(Google Pixel3a)とUmbrel(ホスト名blackthunder)が表示されています。Umbrelのホスト名を変更していなければumbrelと表示されています。
・このUmbrelに割り当てられたIPアドレスをメモしておく。
3.
・Google Play Storeで "Blue Wallet" (https://play.google.com/store/apps/details?id=io.bluewallet.bluewallet)をインストールする。
・ウォレットを追加 ”今すぐ追加”をタップ。
・"ライトニング"をタップ。
・"あなたのLNDhubに接続"の下欄に先程メモしたUmbrelに割り当てられたIPアドレスを使って以下の通りの書式で入力する。
http://Umbrelに割り当てられたIPアドレス:3008
上記tailscaleのスクショではUmbrelに割り当てられたIPアドレスは100.78.97.96だったので 下記画面では http://100.78.97.96:3008 と入力しています。httpsではないのでhttpによる通信は暗号化されていませんが、自分のtailscaleに参加した機器(スマホとUmbrel)間では暗号通信となるので外部からは内容はわかりません。
・”作成”をタップ。
※ :3008のポート番号を入力せずに追加をタップしたBlueWalletは強制終了します。
UmbrelのBlueWallet Lightningと通信できていれば、ウォレット設定データをバックアップする画面に替わります。
※この画面はスクショできません。
・”はい、書きとめました”をタップする。
以上の手順により自分のUmbrelに接続したBlueWallet Lightningウォレットが出来ます。お疲れ様でした!
2つ以上のBWLウォレットが欲しい場合は3.の”今すぐ追加”をタップ。以降の手順を繰り返すだけです。
【Tips】
- 設定→ネットワーク→Lightning設定で、ここに http://Umbrelに割り当てられたIPアドレス:3008 を入れておくと、次にLightningウォレット作った時のデフォルトLNDhub接続先設定となる。
- 今回の設定の応用。設定→ネットワーク→Electrum Serverで、IPアドレスにUmbrelに割り当てられたIPアドレス、ポート番号に50001、use SSLチェックオフと設定しておくと、UmbrelのElectrumサーバ(electrs)をBlueWalletで使用することができる。
- BWLウォレットの残高を直接データベースをいじって増やすのは難しい。なのでルーティングFeeのかからないLN入手金で残高を増やす方法をつかう。WalletOfSatoshi.comや2台目Umbrelとチャネルを開設してそこに一旦出金、BWLウォレットでインボイスを作り、そこから支払う。するとルーティングFeeが0で残高を増やすことができる。※WoSは2022/5/2現在出金手数料というものは無い。
- Umbrel LNDのオンチェーンウォレットからBWLウォレットの補充先ビットコインアドレスに送金しても、BWLウォレット上の残高は増えない。
- Umbrelアプリの「LNbits」もLNDhubとしての機能を持っている。なのでBWLの代わりにLNbitsを使うのもアリ。
【有料パートについて】
BWLウォレットから支払いした時、出金手数料として支払い額の0.3%(3,000ppm)が徴収されます。これはBWLデータベース上の残高から減らすことによって実現しています。実際にアウトバンドキャパシティが0.3%分減っているわけではありません。とはいえBWLウォレット上は0.3%支払っている表示になるので不快です。
有料パートにはこの内部処理を書き換えて0%にする手順を書きました。
CLI操作が必要でvimエディタを使います。ファイルが壊れて直せないとBWLのアンインストールして再度インストールが必要になります。正直素人向けじゃないです。
元ネタは下記LNDhubのIssueです。
https://github.com/BlueWallet/LndHub/issues/294
tailescaleとBWの接続できました。俺もiPhoneです。
有料パートはビビってやれてませんがテスト用のUmbrelで試せるよう勉強します!