ライトニングノード(Lightning Network/Lnd)を立ち上げてみた!
ライトニングネットワークとはビットコインのスケーラビリティ問題を解決するセカンドレイヤーの技術のことで、直接繋がっていない二者間のマイクロペイメントを可能にし、オフチェーンでトランザクションをまとめてからブロックチェーンに書きこむことで取引の高速化と効率化を実現しました。
簡単にいうとライトニングネットワークとはビットコイン実用化への未来を担う重要な技術ということです。
ライトニングネットワークの詳細はこちらの記事をご覧ください。
そんなライトニングネットワークに触れるためにライトニングノードを立ち上げてみました。
今回はLndというLightning-Labs製のライトニングネットワークをテストネットで触れてみたいと思います。
推奨環境はUbuntuのようですが、僕は通常のMac OSで行いました。
また今回はNeutrinoと呼ばれるブロックチェーンのブロックのヘッダーのみを同期させるライト・クライアントを使用しています。これによりユーザーはフルノードと同期せずにライトニングネットワークを使用できます。また、Neutrinoには悪意のあるノードに繋がらないようにするプライバシー保護の役割があります。
まずはじめにlndはGo言語で書かれているので、Go言語をインストールする必要があります。バージョンは1.9以上が必要です。
$ sudo apt-get install golang-1.10-go
Macの方はこちら。
$ brew install go
インストールが完了したらバージョンの確認をして見ましょう。
$ go version
/usr/local/binにシンボリックリンクを貼ります。(Macは不要)
$ sudo apt-get install golang-1.10-go
Go言語のパスを設定します。
$ export GOPATH=~/gocode
続いてlndの実行ファイルの保存先にもパスを通します。
$ export PATH=$PATH:$GOPATH/bin
ログイン毎に上記コードを実行しなくても済むように~/.bashrcに設定をします。
$ vi ~/.bashrc #Vimを開き書きコードを記述したら:qwで保存して終了です。 $ export GOPATH=~/gocode $ export PATH=$PATH:$GOPATH/bin
ここでついにライトニングノードをインストールします。
$ go get -d github.com/lightningnetwork/lnd
インストールには約5分以上かかります。待ちきれない人は下記のコマンドの方が早くインストールできます。
$ git clone https://github.com/lightningnetwork/lnd.git $ GOPATH/src/github.com/lightningnetwork/lnd
コンパイルし、lndの実行ファイルを作成し配置します。
$ cd $GOPATH/src/github.com/lightningnetwork/lnd $ make && make install
そして、ライトニングノードの立ち上げです!
$ lnd --noencryptwallet --bitcoin.active --bitcoin.testnet --bitcoin.node=neutrino --neutrino.connect=faucet.lightning.community
lndログの確認
$ less ~/.lnd/logs/bitcoin/testnet/lnd.log
Macの場合
$ less ~/Library/Application Support/Lnd/data
lndノード情報取得
$ lncli getinfo
補足になりますが、ノード立ち上げ時に設定したオプションをlnd.confにあらかじめ設定しておけば毎回指定する手間が省けます。
$ mkdir ~/.lnd && cd ~/.lnd $ touch lnd.conf
次にlnd.confを開き設定を書き込みます。
$ vi lnd.conf 下記を記述します。 #ノードIPアドレスとライトニングネットワークのポート番号(xxx.xxx.xxx.xxxとなっている部分にIPアドレスを入れる) #ノードを立ち上げるだけなら不要 externalip=xxx.xxx.xxx.xxx:9735 #テストネットのための設定 noencryptwallet=1 #ノードの名称 #立ち上げるだけなら不要 alias=xxxxxx #ビットコインのP2Pネットワークに接続 bitcoin.active=1 #ネットワークの接続先を指定(この場合はテストネット) bitcoin.testnet=1 #ビットコインフルノードの接続先を指定(今回はneutrino) bitcoin.node=neutrino #他ノードに対してチャネルを貼る際の承認数を指定(テストネットなので1を指定するが、メインネットの場合は3以上) bitcoin.defaultchanconfs=1 #neutrinoの接続先を指定 neutrino.connect=faucet.lightning.community #autopilotをon(自動的に他ノードに接続しチャネルを貼る) autopilot.active=1
以上でセットアップは完了です!
暗号通貨界隈の技術の発展スピードはとても早いので、もしうまくいかない方は公式のGithubをチェックしてみてください。英語ですが、とても詳しく記述されているのでどこかしらに答えが書いてあるはずです。(インストール方法は/docs/INSTALL.md)
続編も近日公開するので、しばしお待ちを!
よろしければTwitterのフォローもよろしくお願いします!