LNDでLoutingNode

Lightning Networkでlouting nodeをやろうと思ったら、ハードルは高くなる。
ルーティングの概要と、いくつかの基本的なlndオプションとパラメーター、およびそれらがルーティングノードオペレーターに適用される方法をまとめる。
ルーティングノードになると、少しはお金が稼げたりする。かなり複雑なオペレーションを必要とするので、まだまだ参入障壁は高い。

ルーティングノードとはなにか

lightning networkにおいて、bitcoinを資本として、支払いのroutingを担当できるnodeのことだ。
たくさんのbitcoinを保持して多数のチャンネルを設定するノードと、少額のbitcoinしか保持しないノードがあるが、いづれにしても高い可用性が必要となる。 
だからGKEを使うのが現実的だと書いた。

必要なもの

これが多い。列挙する 1. 資本力(Bitcoin)
2. 高い可用性を実現できるインフラ
3. 一般的なbitcoinセキュリティを操作の知識
4. lightningのshellによる操作スキル

しかも、上記をすべてクリアしても、適切なチャネル配置が必要で、それをクリアしても収益性は見込めない。5重苦だな。

追加オプション

LNDの立ち上げかたの記事はわりとある。それらに加えて、louting nodeでは必要なオプションがいくつか増える。

-externalip-

ルーティングノードは、外部のインターネットから接続できないといけないので、このオプションが必要になる。
重要な点は、ポート9735(Lightning NetworkのデフォルトのP2Pポート)に外部からアクセスできる必要があること。
GUIDE TO NETWORKING FOR LNDが詳しいので、後ほど和訳する。

-minchansize -

最小の接続先nodeのBTC保有率を指定することができる。最初は20$程度が推奨される。

–lnddir -

-lndがデータベース、ログ、マカロン、およびノー​​ドに関連するその他のデータを保存する場所を決定するlndベースディレクトリを指定する。

-tlsextradomain、-tlsextraip-

デフォルトのTLS証明書はlnd、localhostからのRPCおよびREST接続のみ許可する。
他のマシンからの接続を許可する場合は、これらのフラグを使用して、lndノードへの接続を許可する追加のドメインまたはIPアドレスを指定する必要がある。

-profile-

プロファイリングを有効にする。
これは、ノードが正常に実行されていない場合のパフォーマンスのボトルネックを特定するのに役立ちます。引数は、メトリックをサーバープロファイルするポートにする必要がある。

-unsafe-disconnect-

デフォルトでは、LNDはチャンネルの切断を許可しない。切断と再接続によりバグが解消されることもあるので、これを有効にすると良い。

運用

ノードを立ち上げたら動作確認が必要だ。まず、チャンネルが動くこと、次に、ハードウェアとネットワークが正常なこと、双方を確認しなければいけない。

updatechanpolicy-

チャンネルの設定を色々行うことができる。time_lock_deltaでnode間裏切りがあった場合のしめきり時間を設定でき、base_fee_msatはfee rateを決定できる。しょっちゅうこのパラメータを更新すべきではない。それをやりすぎるとnodeのscoringが下がる。

describegraph-

ネットワークに存在するnodeをリスト表示することができる。接続すべきnodeを発見したり、現在存在するnetworkの課題を発見したりするのに役立つ。

listchannels

チャネルの状態とバランスを確認するために使用する。

feereport-

獲得した料金を表示する。一番おもしろいやつ。

一旦ここまで。routing nodeを運用しようとすると、lightning networkの全容が見えてくる。