Windows 10でstream-lnd-htlcsを実行する
Umbrelって設置に関してはGUIで全てできてしまいます。びっくりするくらい簡単にできます。ただし、障害が起こった時とかちょっと詳しく掘り下げたい時とかはSSHでログインしてからのCUI操作が必須になります。コマンドに慣れてない人にとっては下手にいじって環境潰してしまったらと思うと非常に恐怖を感じると思います。しかも対象が資産を管理している端末ならなおさらの事。仕事で多少LINUXを使う自分でさえUmbrelでのコマンド操作はかなりビビります。
そこでルーティング情報を取得するstream-lnd-htlcsを極力Umbrel側に手を加えずにWindowsメインで動かす手順を紹介します。
①lnd.confの変更
このファイルはおそらく過去にaliasの設定で触った事があると思います。その時と同じ手順でSSHで接続してnanoエディタでファイルを開きます。tlsextraipがすでに設定されていると思いますが、すぐ下にUmbrelのローカルIPを追加で設定します。私の場合はtlsextraip=192.168.11.2で追加しています。
UmbrelのローカルIPがわからない時はDOSプロンプトよりping -4 umbrel.localと打てばローカルIPが返ってきます。lnd.confの設定を保存したらSSHからexitし、UmbrelのWEB画面より再起動を行ってください。注意が必要なのはUmbrelはデフォルトではDHCPで動いるので将来IPアドレスが変更になる可能性があります。その場合は再度設定変更が必要になるので固定IPで設定しておくか、別の方法でIPが変わらないようにしましょう。自分はルーター側でMACアドレス指定でIPを固定しています。
②証明書関連ファイルのダウンロード
次にUmbrelからファイルのダウンロードが必要になりますが、私は普段WindowsからLinuxにファイルアップロードやダウンロードする時はWinSCPというソフトを使っています。エクスプローラーライクでドラッグアンドドロップで操作できるのでかなり便利です。で、ダウンロード必要なファイルは
/home/umbrel/umbrel/lnd/tls.cert
/home/umbrel/umbrel/lnd/data/chain/bitcoin/mainnet/readonly.macaroon
になります。いったんデスクトップにでも保存しておいてください。tls.certファイルは上のUmbrel再起動で更新されるので、その後のダウンロードでないと実行時にエラーになります。
③Pythonのインストール、stream-lnd-htlcsのダウンロード
WindowsにPythonをインストールし、stream-lnd-htlcsをZIPダウンロードします。ZIPを解凍したらstream-lnd-htlcs-masterフォルダができるのでその中にlndtempフォルダを新規作成し、上でダウンロードした二つの証明書関連ファイルをlndtempの中に入れます。requirements.txtも忘れずに適用させましょう。
④ソースの修正、プログラム実行
以下の要領でstream-lnd-htlcs-master内にある二つのソースファイルを変更します。
1.stream-lnd-htlcs.py
"--lnd-dir", default="~/.lnd", dest="lnddir", help="lnd directory; default ~/.lnd",
↓
"--lnd-dir", default="lndtemp", dest="lnddir", help="lnd directory; default ~/.lnd",
"--host", default="localhost:10009", dest="host", help="host address; default localhost:10009",
↓
"--host", default="192.168.11.2:10009", dest="host", help="host address; default 192.168.11.2:10009",
with open(args.outfile, 'a') as f:
↓
with open(args.outfile, 'a', encoding='UTF-8') as f:
2.lnd.py
macaroon_path = lnd_dir + '/data/chain/bitcoin/mainnet/readonly.macaroon'
↓
macaroon_path = lnd_dir + '/readonly.macaroon'
いざ、実行!
Windowsでも動きました。(ルーティングは失敗!)
Umbrel端末への変更はlnd.confへ1行追加のみです。ソース変更の要点としては「証明書ファイルへのパス」と「LNDエンドポイント」の2点となり、そこを正しく設定できればおそらく同じ要領でrebalance-lndとかもWindowsで動かせると思います。これでビビらずに色んな事を試せますね。
後、Umbrel内で動かさないメリットとしてもう一つあり、ラズパイのリソースを喰わないという面もあります。電源周りが特にシビアなラズパイの場合は大きなメリットになると個人的には思います。
なるほど、外からRPCを叩いて情報を取得するのか
この手のHTLC解析はラズパイ内でやるんだなと発想してたので気が付かなかったです。