ライトニングノードの簡単な立て方

レポート「アルトコイン図鑑」では30種類以上のコインの概要と見通しを解説(詳しく)

ライトニングノードを簡単な立て方を書きます。

有料版のほうでは使い方ふくめ詳しいレポートを書いたのですが、ここでは簡単な立て方を紹介します。

基本的に、このブログの翻訳です。レポジトリなどこちらのブログの作者のものをそのまま紹介します。

ライトニングはいろんな実装がありますが、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です。

Screenshot from 2018-01-30 22-08-45

以下、私のノードの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/

Screenshot from 2018-01-30 22-05-59
こういう奴です。

で、

%lightning-cli pay lnbc1712393610p1pdx8n8mpp5c72tc40vzyf9deqm5lzn76404heejady02l494ykke3vm3x44y8qdy2gfkx7cmtwd68yetpd5azqv339cunvgz42dzzqen0wgsyymr0vd4hxarjv4sk6gznv96x2mrvd96x2grnw35kx6m9wgs8sgp5ypskuepqf35kw6r5de5kueeqwd6xjcmtv4ezq7pqxvcqpggq86huylgdcd4st0d8thgdlw67tefjkhrnssyf8zk2s9cu37hdanwm6q96llg5zgjckwe7jamsmxnp4vy4q7vyulv57d9yg0wm7df0cpgwgu2m

とかやれば、支払いできます。

以上です。

有料サロンの方では、ブログ翻訳ではなく、c-lightningをソースからビルドする方法で、詳しくコマンドの使い方など含め書き起こして解説していますので、ご興味があれば、こちらからよろしくねがいします。

【レポート096】ライトニングネットワークスタートマニュアル(ノードの立て方、チャネルの貼り方、支払いまで)

 

・おしらせ
ビットコイン研究所の有料版サロンでは、平易な言葉で最近の技術や業界事情などについて解説するレポートを毎週配信しています。

暗号通貨について、もっと知りたい、勉強をしたいというかたに情報を提供しています。サロン内では疑問点も質問できます。

一度登録いただけると100本以上の過去レポートが読み放題で、大変お得です。レポート一覧がこちらのページありますので、よろしければいちど目をとおしてみてください。
(詳細情報)

Ledger Nano S - The secure hardware wallet