regtestでLightning Terminalを動かす
小ネタです。
LightningLabsのロードマップ説明会で Lightning Terminal を推しているような感じがしたので動かしてみました。
まずは Bitcoin regtestで試そうとしたのですが、すんなりとはいかなかったので変更した記録を残しておきます。
Lightning Terminal は v0.10.4-alpha を使いました。
Lightning Terminalには、lndやpoolなどを一緒に動かす integrated mode と、既に動作している環境に接続する remote mode があります。今回は自分のテスト環境が既にあるので remote mode を使います。
lndのビルド
lndはビルドするときに使用できるRPCをtagsで指定するのですが、Lightning Terminal を動作するには ”signrpc walletrpc chainrpc invoicesrpc” がいるそうです。
自分が使っている lnd がどうなっているかは lncli version
で確認しましょう。
lnd.confの変更
remote modeの場合、lnd.conf に rpcmiddleware.enable=true
がいるそうです(ちなみに lnd.conf のセクションは、全部に付けるか全部取り除くかの2択だそうです)。
[rpcmiddleware]
rpcmiddleware.enable=true
lit.conf
動かしているlndを指すように書きます。localhost で複数の lnd を立ち上げているので rpcserver
のポートがデフォルトと異なっていますが、ここはご自分の環境に合わせてください。admin.macaroon や tls.cert も同様です。フルパスじゃないとダメそうでした。
lnd-mode=remote
network=regtest
remote.lnd.rpcserver=127.0.0.1:10011
remote.lnd.macaroonpath=/home/xxx/my-lnd/data/chain/bitcoin/regtest/admin.macaroon
remote.lnd.tlscertpath=/home/xxx/my-lnd/tls.cert
Lightning Terminalのビルド
ビルドには golang と yarn が必要でした。他にも何かあるかも。
v0.10.4-alpha を使うと書きましたが、このバージョンでは Pool などのサービスがないと動かないようでした。
これらを disable にできるプルリクエストがあったので、それをマージして使いました。私はマージしましたが、直接このブランチを clone してもよかったかもしれません。
私がやったときのおおよその手順を書いておきます。
git clone https://github.com/lightninglabs/lightning-terminal.git
cd lightning-terminal
git checkout -b test v0.10.4-alpha
git remote add ellemouton https://github.com/ellemouton/lightning-terminal.git
git fetch ellemouton
git merge ellemouton/disableSubservers
make install
litd起動
カレントディレクトリに lit.conf がある場合はこういう立ち上げ方になりました。 --uipassword
は本番で使う場合はきちんと設定しましょう。
litd --lit-dir . --uipassword=hogehoge --autopilot.disable --loop-mode=disable --pool-mode=disable --faraday-mode=disable
ブラウザからのアクセス
ちゃんと起動すると、起動ログの途中にURLが出力されます。
----------------------------------------------------------
Lightning Terminal (LiT) by Lightning Labs
LND Operating mode remote
LND Node status online
LND Alias Test Hub
LND Version ...
LiT Version 0.10.4-alpha commit=v0.10.4-alpha-3-g165e5fba62cee97c4fc3954c6d1efb241d5635bd
Web interface 127.0.0.1:8443 (open https://127.0.0.1:8443 in your browser)
----------------------------------------------------------
ただアクセスすると「not secure」みたいにブラウザから警告されました。ちゃんとTLSの設定をしていないから? localhost なのでその辺は無視してやるとブラウザで表示されました。
litd
のオプション — uipassword
にしたものがパスワードになるので、ちゃんとやるときはちゃんとしたパスワードにしましょう。
おわりに
私も初めて使うのでよくわかっていませんが、Loop や Pool を使わないのだったらあまり意味が無いのかもしれません。