# Lightning Network (LN) と BTCPay Server
# 概要
BTCPay Server のデプロイ後、Bitcoin プロトコル上に構築された革新的なセカンドレイヤー決済システムである Lightning Network (opens new window) を試したくなるかもしれません。
このガイドでは、BTCPay Server で Lightning Network (LN) ノードを設定する方法と基本事項を説明します。
現在、BTCPay Server は次の Lightning Network 実装を提供しています。
- LND (opens new window)
- Core Lightning (CLN) (opens new window)(旧 c-lightning)
- Eclair (opens new window)
DANGER
続行する前に、Lightning Network はまだ実験段階であることを理解してください。 Lightning Network の利用には資金損失リスクがあります。失っても問題ない額以上は使わないでください。
Lightning Network 利用に伴うリスクを十分に理解してください。
BTCPay Server で内部 Lightning Node を運用する場合は、次の点を考慮してください。
- すべての lightning network ノードは on-chain と off-chain の2層で動作します。
- 選択した LN 実装は、off-chain の payment channel 資金に使う on-chain hot wallet を作成します。
- on-chain hot wallet のシードを必ずバックアップしてください(実装ごとの手順は後述)。
- 手順 #3 のシードで復元できるのは on-chain 資金のみ です(ただし off-chain 運用には必要です)。
- チャネルにロックされた off-chain 資金は単一シードではバックアップできません。利用する LN 実装のドキュメントを確認してください。
- off-chain の復旧メカニズムは現在も研究・開発中です。BTCPay Server の消去や安全でない運用(例: ファイルシステム破損、鍵の漏えい)は、恒久的な資金損失につながる可能性があります。
技術が成熟するにつれ、適切なバックアップ機構は BTCPay Server でより実装しやすくなります。 v1.0.3.138 (opens new window) 時点では、BTCPay Server で Lightning シードバックアップ が可能なのは LND のみです。
# Lightning Network 実装の選択
まず、デプロイ前に pruning 済み Bitcoin ノードと lightning network 実装の併用について こちら を確認してください。
インストール時に実装を選択できます。
Web インターフェースでのインストール の場合は、ドロップダウンメニューから実装を選ぶだけです。 それ以外の docker (opens new window) ベースの デプロイ方法 では次を実行します。
sudo su -
cd btcpayserver-docker
export BTCPAYGEN_LIGHTNING="implementationgoeshere"
. ./btcpay-setup.sh -i
- Core Lightning (CLN) は
export BTCPAYGEN_LIGHTNING="clightning"を使用 - LND は
export BTCPAYGEN_LIGHTNING="lnd"を使用 - eclair は
export BTCPAYGEN_LIGHTNING="eclair"とexport BTCPAYGEN_ADDITIONAL_FRAGMENTS="opt-txindex"を使用
最後に、Lightning を使い始めるにはブロックチェーン同期が完了している必要があります。
# BTCPay Server での Lightning ノード設定
# 内部 Lightning Node を接続する
どの LN 実装をデプロイした場合でも、BTCPay Server で内部 Lightning Node を接続する手順は同じです。
- ストアを選択
- "Lightning" > "Use internal node" を選択
- "Save" をクリックし、"BTC Lightning node updated" メッセージを確認
- "Public Node Info" を開き、ノードが "Online" と表示されることを確認

内部接続に失敗する場合は、次を確認してください。
- Bitcoin on-chain ノードの同期が完了している
- "Lightning" > "Settings" > "BTC Lightning Settings" で Internal lightning node が "Enabled" になっている
Lightning ノードに接続できない場合は、サーバー再起動 または トラブルシューティングガイド を確認してください。Lightning ノードが "Online" になるまで、ストアで lightning 決済は受け付けられません。"Public Node Info" リンクをクリックして接続テストしてください。
# 外部 Lightning Node を BTCPay Server に接続する
BTCPay Server は外部 Lightning ノード接続にも対応しています。設定手順は以下です。
- Lightning ノード未設定の場合、"Lightning" > "Use custom node" を選択
- 既存接続を変更する場合、"Lightning" > "Settings" > "Change connection" > "Use custom node" を選択
- 利用実装に合わせた接続情報を入力し、"Test connection" を実行
# BTCPay Server と LND の開始手順
# Ride The Lightning (RTL) で LND を操作する
BTCPay Server で LND 実装を使う最も簡単な方法は、Ride The Lightning (opens new window) (RTL) サービスです。RTL は Lightning Network 用の Web UI で、ブラウザから BTCPay Server を離れずにノードを運用できます。
BTCPay Server で RTL を開始するには、Server Settings > Services > Ride The Lightning > See information へ進みます。
# Zap で LND を操作する
iOS や PC から LND ノードをリモート利用する場合は、Zap ウォレット連携 (opens new window) を利用できます。 \
\ Zap 以外にも、LND ノードをリモート操作できるウォレットとして [Nayuta wallet](https://nayuta.co/) と [ZeusLN](https://github.com/ZeusLN/zeus) があります。いずれもコミュニティでの十分な検証はまだ行われていません。# Lightning Joule で LND を操作する
Web ブラウザ経由で LND ノードをリモート操作するには Lightning Joule を利用できます。 \
# コマンドラインで LND を操作する: lncli
LND は bitcoin-lncli.sh シェルスクリプトでコマンドラインから利用できます。
Docker 環境の場合は docker ディレクトリにいることを確認してください。
sudo su -
cd btcpayserver-docker
./bitcoin-lncli.sh $command
./bitcoin-lncli.sh getinfo #show info about the node
./bitcoin-lncli.sh --help を実行するとコマンド一覧を表示できます。詳細は API ドキュメント (opens new window) も参照してください。
# BTCPay Server と Core Lightning (CLN) の開始手順
# Ride The Lightning (RTL) で CLN を操作する
BTCPay Server で CLN 実装を使う最も簡単な方法は、Ride The Lightning (opens new window) (RTL) サービスです。RTL は Lightning Network 用の Web UI で、ブラウザから BTCPay Server を離れずにノードを運用できます。
BTCPay Server で RTL を開始するには、Server Settings > Services > Ride The Lightning > See information へ進みます。
# コマンドラインで CLN を操作する: lightning-cli
lncli と同様に、CLN も bitcoin-lightning-cli.sh シェルスクリプトでコマンドラインから利用できます。
Docker 環境の場合は docker ディレクトリにいることを確認してください。
sudo su -
cd btcpayserver-docker
./bitcoin-lightning-cli.sh $command
./bitcoin-lightning-cli.sh getinfo #show info about the node
./bitcoin-lightning-cli.sh help を実行するとコマンド一覧を表示できます。詳細は API ドキュメント (opens new window) を参照してください。
# Lightning ノードのバックアップ
新しい lightning ノードで取引を始める前に、on-chain ウォレットのバックアップを検討してください。手順:
- LND の場合: LND seed のコピーを保存。 "Server Settings" > "Services" > "LND Seed Backup" > "See information" を選択
- CLN の場合: hsm_secret (opens new window) のコピーを保存
CLN の $LIGHTNINGDIR は/var/lib/docker/volumes/generated_clightning_bitcoin_datadir/_data/bitcoinにあります。
off-chain payment channel バックアップの制約と関連リスクを理解してください。
Docker で BTCPay Server を運用している場合は バックアップ FAQ も参照してください。
# on-chain ウォレットへ資金を入れる
Lightning ノードが有効になったら、payment channel を開く前に on-chain ウォレットへ資金を入れる必要があります。
on-chain への資金投入は次の2つの方法で行えます。
- Ride The Lightning (RTL) UI から行う
- "Store" を選択し、"Lightning" セクションへ移動
- "Services" の "Ride The Lightning" を選択
- RTL アプリで "On-chain" を開き、"On-chain Transactions" メニューの "Receive" を選択
- "Generate Address" を選び、資金送付先として使用
bitcoin-lncli.shまたはbitcoin-lightning-cli.shを使いコマンドラインで行う
sudo su -
cd btcpayserver-docker
./bitcoin-lncli.sh newaddress p2wkh #for LND
./bitcoin-lightning-cli.sh newaddr #for CLN
{
"address" / "bech32": "bc1..........." #use this as the destination for the allocated funds
}
on-chain lightning ノードへの資金投入が完了したら、ネットワーク上の他ノードへ接続して payment channel を開く段階です。
payment channel の開設、流動性管理などの推奨事項は Payment channels(支払いチャネル) を参照してください。
# Alby 拡張機能
Alby (opens new window) は、Bitcoin Lightning Network 上で通常のブラウザから簡単に Bitcoin 決済を送受信できる、無料で高速かつシンプルな手段です。BTCPay ウォレットを Alby アカウントへ直接接続できます。詳細は BTCPay ウォレットを Alby に接続する方法 (opens new window) を参照してください。