Lightning Networkのノードをmainnetに立てました。基本的にはRun your own mainnet Lightning Nodeに従ってやりました。

大まかな流れ

  1. Bitcoinのfull node(bitcoind)を立て、最新のblockまで同期する
  2. Lightningのnode(lightnind)を立てる
  3. Lightningのnodeで、新しくBitcoinのアドレスを作成し、そのアドレスにBitcoinを入金する
  4. 他のLightningのnodeに接続する
  5. 4.で接続したchannelに入金する

です。

1.の同期と、Bitcoinの入金に結構時間がかかります。 あと記事内で使われている lightning-cli getpeers は、 lightning-cli listpeers に名前が変わった様です。 今後も名前が変わる可能性は十分にあるので、 lightning-cli help で確認するのが良さそうです。

Lightning Networkの主な実装には、

  1. lnd: Lightning Labsが主導で開発。Goで書かれている
  2. eclair: ACINQが主導で開発。Scalaで書かれている
  3. c-lightning: Blockstreamが主導で開発。Cで書かれている

があり、今回はc-lightningを使いましたが、開発自体はlndが一番活発な様です。次はlndを立ててみようと思います。

実際にLightning Networkを使って、Lightning支払いを受け付けているBlockstream shopでstickerを買ってみたのですが、本当に支払いが一瞬で終わり、感動を覚えました。

ACINQ社が、testnetで動くandroidアプリを公開していて、実際にモバイルから支払いを試すことができます。Lightningのmobile walletの需要は大きそうなので、iOS向けのライブラリやwalletアプリ開発を時間見つけてやっていきたい。