regtestでLightning Terminalを動かす

uenohiro
Nayuta エンジニアブログ
7 min readAug 5, 2023

--

小ネタです。

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 を使わないのだったらあまり意味が無いのかもしれません。

チャネルの一覧は出るようだ

株式会社Nayuta

--

--