日報 2018年7月8日 - LightningNetworkを動かしてみる
雑な日報を始めてみます
なんか記事にするまでもない雑多なあれこれを、だからといって放っておくと1ヶ月後に「あれ、この1ヶ月なにやってたんだっけ?」となりがちなんで雑でも記録に残すことにしました。
LightningNetwork
LightningNetworkはbitcoinのレイヤー2技術
lndはLightningNetworkの実装の一つ
これにそってローカル環境にdocker-composeでlightning networkクラスタを作ってみた
github.com
lightning networkはバックエンドにbitcoinノードが必要でこのlndのチュートリアルではbtcdが採用されている。別にbitcoindでもいいみたい。
aliceとbobのlndノードを立ててchannelをつないで送金できた。
次にチュートリアルにはないけど直接channelが開いていないノード間での送信、multihop paymentと言うらしい、をやってみるがだめだった。
alice <--> bob <--> jon の状態でaliceからjonに支払いたいんだけど経路が見つからないというエラーが返ってくる
{ "payment_error": "unable to find a path to destination", "payment_preimage": "", "payment_route": null }
色々調べたけど解決できず。
そもそもlightningnetworkの基礎知識がないのかと思い、これを読んだ。
LND Overview and Developer Guide
まぁ基礎的なことしか書かれてなくてmultihopのルーティングがどうやっているのかは不明。
paymentしたいdestinationとのルートが存在するかどうか確認する方法がある気がするのでまた今度調べる @todo
Flareというルーティングアルゴリズムについての記事を見つけた。
Flare: Lightning Networkルーティングアルゴリズム - United Bitcoiners
まぁ何言っているかわからないのでこれもおいおい調べる @todo
ルーティングアルゴリズムの性能次第で以下のようなものも実現できます。
- 1取引あたり0.1円未満
- 全世界で1秒間に1000万取引以上
- トランザクション手数料が0.000001%未満
自分はLNのマイクロペイメントに着目していたけどたしかにLNの場合はオンチェーンと違ってノードが増えれば増えるほど処理のキャパが上がるよな〜と。
オンチェーンの場合は増すのはセキュリティだけどレイヤー2になると分散の強みを得るの面白い
grep -A
このオプションは知らなかった
grep -A 1 word
でwordにヒットした行とその次の1行をアウトプット
grep -10 word
でヒットした行の前後10行もアウトプット
リンク
- btcdのAPIドキュメント btcd/json_rpc_api.md at master · btcsuite/btcd
- lndのAPIドキュメント LND gRPC API Reference
所感
雑やな〜・・でも雑じゃないと続かないんで・・