ライトニングノードを簡単な立て方を書きます。
有料版のほうでは使い方ふくめ詳しいレポートを書いたのですが、ここでは簡単な立て方を紹介します。
基本的に、このブログの翻訳です。レポジトリなどこちらのブログの作者のものをそのまま紹介します。
ライトニングはいろんな実装がありますが、bitcoindと親和性の高い、c-lightningを使うことにします。
まず、bitcoindをインストールしてない人は前段階として、bitcoindを入れて、ブロックをすべて同期するひつようがあります。(およそ容量180GBで、12時間ほど要します)
blog作者のDockerをつかった簡単な方法を転載します
blog作者レポジトリに接続
root@docker-s-6vcpu-16gb-nyc3-01:~# git clone https://github.com/dougvk/lightning-node.git
bitcoindのDockerイメージをbuild
root@docker-s-6vcpu-16gb-nyc3-01:~# cd lightning-node
root@docker-s-6vcpu-16gb-nyc3-01:~/lightning-node# docker build . -t dougvk/bitcoind
bitcoindイメージを走らせる
root@docker-s-6vcpu-16gb-nyc3-01:~# mkdir -p /scratch/bitcoin/mainnet/bitcoind
root@docker-s-6vcpu-16gb-nyc3-01:~# docker run --name bitcoind_mainnet -d -v /scratch/bitcoin/mainnet/bitcoind:/data -p 8333:8333 -p 9735:9735 dougvk/bitcoind:latest
こちらのコマンドで同期の状況を確認
root@docker-s-6vcpu-16gb-nyc3-01:~# docker logs bitcoind_mainnet --tail "10"
ネットワークの設定として、ポートは、8333(bitcoin)と9735(lihgtningd)を開けておいてください
bitcoin-cliのショートカットを作ります。
getinfoとやって、うまく情報がでればうごいてます。
root@docker-s-6vcpu-16gb-nyc3-01:~# cat /usr/local/bin/bitcoin-cli
#!/usr/bin/env bash
docker run --rm --network container:bitcoind_mainnet -v /scratch/bitcoin/mainnet/bitcoind:/data dougvk/bitcoind:latest bitcoin-cli "$@"
root@docker-s-6vcpu-16gb-nyc3-01:~# chmod +x /usr/local/bin/bitcoin-cli
root@docker-s-6vcpu-16gb-nyc3-01:~# bitcoin-cli getinfo
{
"deprecation-warning": "WARNING: getinfo is deprecated and will be fully removed in 0.16. Projects should transition to using getblockchaininfo, getnetworkinfo, and getwalletinfo before upgrading to 0.16",
"version": 150100,
"protocolversion": 70015,
"walletversion": 139900,
"balance": 0.00038800,
"blocks": 505216,
"timeoffset": -1,
"connections": 15,
"proxy": "",
"difficulty": 2227847638503.628,
"testnet": false,
"keypoololdest": 1516416352,
"keypoolsize": 1999,
"paytxfee": 0.00050000,
"relayfee": 0.00500000,
"errors": ""
}
さてブロックの同期には12時間はかかるので、寝ましょう。
以上は、Bitcoindのセットアップです。もしすでにBitcoindを走らせているノードをお持ちでしたら、下記のLigtnigdのセットアップからやってください。
ブロックが同期し終わったら、Lightnindをセットアップします。
root@docker-s-6vcpu-16gb-nyc3-01:~# mkdir -p /scratch/bitcoin/mainnet/clightning
root@docker-s-6vcpu-16gb-nyc3-01:~# docker run --rm --name lightning --network container:bitcoind_mainnet -v /scratch/bitcoin/mainnet/bitcoind:/root/.bitcoin -v /scratch/bitcoin/mainnet/clightning:/root/.lightning --entrypoint /usr/bin/lightningd cdecker/lightningd:master --network=bitcoin --log-level=debug
ログがでるかどうか確認
...
lightningd(1): Hello world from 03e71ed1bbedcf41d97e06ef3dfe4cdf79e871e9a3c809ab32b78e71dea45bf78c aka SLICKERGOPHER #03e71e (version v0.5.2-2016-11-21-1414-g5eceaa7)!
...
lightningd(1): Adding block 00000000000000000055234efac33e0ea30cc8e84ded7997f9e434534fd6f1bb
lightningd(1): Adding block 0000000000000000006fcfbab65ccb4634a800c5b12913b8379e6704b42db663
lightningd(1): Adding block 0000000000000000003f350dcff4fa5b1df61355cd80e9b06be55654d6384518
Lightning-cliのショートカットを作成します
#!/usr/bin/env bash
docker run --rm -v /scratch/bitcoin/mainnet/clightning:/root/.lightning --entrypoint /usr/bin/lightning-cli cdecker/lightningd:master "$@"
root@docker-s-6vcpu-16gb-nyc3-01:~# chmod +x /usr/local/bin/lightning-cli
root@docker-s-6vcpu-16gb-nyc3-01:~# lightning-cli getinfo
{ "id" : "03e71ed1bbedcf41d97e06ef3dfe4cdf79e871e9a3c809ab32b78e71dea45bf78c", "port" : 9735, "address" :
[ ], "version" : "v0.5.2-2016-11-21-1414-g5eceaa7", "blockheight" : 505236 }
これも、lightning-cli getinfoとやって、ノードの情報が表示されればOk
以下から、ライトニングの操作です。
ライトニングのウォレットのアドレスを作成。
root@docker-s-6vcpu-16gb-nyc3-01:~# lightning-cli newaddr
{ "address" : "3Dx1XCcBsTtUQmWW6KD8PfMx6fB9saejYM" }
上記にビットコインをいくらか入金してください。6 confirm 後に、ウォレットにあるかどうか確認できます
root@docker-s-6vcpu-16gb-nyc3-01:~# lightning-cli listfunds
{ "outputs" :
[
{ "txid" : "[HIDDEN]", "output" : 0, "value" : 300000 } ] }
他のノードに接続してみましょう。ノードは、https://lnmainnet.gaben.win/とかのライトニングのマップで調べるのがよいです。
よくわからければ、おすすめノードに接続してみてください。
blog作者のノードは、SLEEPYARKという名前で、
私のノードは、ln.inazuma.ccです。
以下、私のノードのpub idとIPを載せておきます。
ln.inazuma.cc:
pub key :
03dcd840ff15d19792e8a8d704bbbbafc629c22324f0d002d8f4cc87c8798f03ef
IP: 133.18.56.130
接続するには、connectとします。
%lightning-cli connect 03dcd840ff15d19792e8a8d704bbbbafc629c22324f0d002d8f4cc87c8798f03ef 133.18.56.130
{ "id" : "03dcd840ff15d19792e8a8d704bbbbafc629c22324f0d002d8f4cc87c8798f03ef" }
で接続できます。ノードIDが帰ってきたらOK
(手数料は手動設定しなくても、問題ないですが)、デフォルト値があまりに低くすると、チャネルが閉じられないく成る可能性があるので、適時リーズナブルな値に設定すること。
root@docker-s-6vcpu-16gb-nyc3-01:~# bitcoin-cli settxfee 0.0005
次にチャネルにBTCをデポジットします。
%lightning-cli fundchannel 03dcd840ff15d19792e8a8d704bbbbafc629c22324f0d002d8f4cc87c8798f03ef 100000
指定する金額の単位は、Satoshiです。ここでは、10万サトシつまり、1000円くらいデポジットしてます。
手数料の状況ではコレだと足りないかもしれないので、適時増減してください。
ここで、チャネルが確立するまで、6 confirmまってください。
%lightning-cli listnodes
で、チャネルの状況がモニターできますので、CHANNEL_NORMAL、CONNECTEDとなっていれば、チャネル確立完了
支払いの方法ですが、BOLT11のペイメントコードを取得してください。
ためしにブロックストリームストアかなにかなで何か買うのがいいかもです。
https://store.blockstream.com/
こういう奴です。
で、
%lightning-cli pay lnbc1712393610p1pdx8n8mpp5c72tc40vzyf9deqm5lzn76404heejady02l494ykke3vm3x44y8qdy2gfkx7cmtwd68yetpd5azqv339cunvgz42dzzqen0wgsyymr0vd4hxarjv4sk6gznv96x2mrvd96x2grnw35kx6m9wgs8sgp5ypskuepqf35kw6r5de5kueeqwd6xjcmtv4ezq7pqxvcqpggq86huylgdcd4st0d8thgdlw67tefjkhrnssyf8zk2s9cu37hdanwm6q96llg5zgjckwe7jamsmxnp4vy4q7vyulv57d9yg0wm7df0cpgwgu2m
とかやれば、支払いできます。
以上です。
有料サロンの方では、ブログ翻訳ではなく、c-lightningをソースからビルドする方法で、詳しくコマンドの使い方など含め書き起こして解説していますので、ご興味があれば、こちらからよろしくねがいします。
【レポート096】ライトニングネットワークスタートマニュアル(ノードの立て方、チャネルの貼り方、支払いまで)