Lightning Network実装のc-lightningノードの建て方




Lightning Networkの実装には有名なものにBlockstrem社のc-lightning(C)、Lightning Labs社のlnd(Go)、ACINQ社のeclair(scala)があります。

今回はc-lightningノードの建て方と簡単な使い方を紹介します。

c-lightningのGitHubはこちら

ノードを建てるための前提知識

まずはこれから建てるc-lightningの前提知識を入れておきます。これが頭に入っていると理解しやすいと思います。

c-lightningはbitcoin-cli経由でbitcoindからトランザクションやブロック情報を取得したりチャネルを開くためのトランザクション作成してブロードキャストします。

なのでbitcoindのノードを建てないといけないし、bitcoin-cliを使えるようにしないといけないです。bitcoin-cliはbitcoindを建てれば使えるようになります。

インストール方法

普段Macを使っているのでMacでのインストール方法になります。bitcoindのインストール

まずはbitcoindです。下記コマンドを順番に実行していけばインストールできます。makeの実行に時間がかかるので気長に待ってください。

今回はtestnetでbitcoindを建てます。ノードの同期には半日くらいかかるので気長に待ってください。容量を結構必要とするのローカルではなくどこかのサーバに建てた方がいいかと思います。

bitcoindの起動は下記コマンドで簡単にできます。testnet=3とすることでテストネットのブロックを同期できます。

c-lightningのインストール

基本的に公式ドキュメントにある通りにインストールしていきます。

c-lightningを起動する前にbitcoindに接続する設定ファイルを作ります。

設定ファイルは~/.lightning/configに作ります。中身はホスト、Basic認証、ネットワーク、aliasなどを設定します。

rpcportはテストネットだと18832、livenetだと8332になります。

c-lightningの起動コマンドは下記です。ログが出力されるようにしておくとちゃんと起動できているかわかりやすいです。

正常に起動できたらbitcoindから最新のブロック情報を取得しているログを確認できます。

lightning-cliでチャネルを開くまで

まずはじめにnewaddrコマンドでc-lightningノードで使うアドレスを生成します。

このアドレスに対してBTCを送っておきます。

今回はbitcoindにあるテストネットのBTCを送っておきます。sendtoaddressコマンドでBTCを送ることができます。

受け取ったBTCはlistfundsコマンドで確認できます。

ペイメントチャネルを作るために接続するLNノードを下記リンクから探します。

testnet(https://1ml.com/testnet/)、livenet(https://explorer.acinq.co/)それぞれあるので適当に選んでください。

選んだノードに対してconnectコマンドを使ってはP2Pの接続を行います。パブリックキー、IP、ポートを指定します。

接続が完了したら、ペイメントチャネルの作成は下記コマンドだけです。作成用のトランザクションがブロックに取り込まれればペイメントチャネルの作成が完成です。

接続状況はlistpeersコマンドで確認できます。

支払いはinvoiceに対して支払いを行うことができます。これは今後追記します。

The following two tabs change content below.

髙妻智一

2013年CyberAgent新卒入社 スマホゲームを作る子会社に所属し、サーバーサイドのエンジニアを担当。2年目の終わりから新規子会社の立ち上げに参加し、サーバーサイドのエンジニアリーダーとしてサービースのリリースから運用までを担当。 2018年仮想通貨のスマホウォレットを提供するGinco Incにブロックチェーンエンジニアとして入社。






よく読まれている関連記事はこちら



コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です