Channel Establishment
この辺は、よく説明されている部分にもリンクするので、イメージは多少しやすい。 まず、原理的な部分。
lncli openchannel --nodekey=
--local amt=1000000
- open TXの作成
- secret hashの交換
- commitTXの作成
- openTXのbroadcast
これをコードレベルで。 この場合だと、commitTXをinputにopenTXに署名するわけだけど、それってそもそもboltではどう書かれるのか。
さらっと読んだところ、まさにこの動きをしているが、どうやら実際にtxをやり取りするわけではなく、鍵の交換等をうまくやるかんじか。
+-------+ +-------+
| |--(1)--- open_channel ----->| |
| |<-(2)-- accept_channel -----| |
| | | |
| A |--(3)-- funding_created --->| B |
| |<-(4)-- funding_signed -----| |
| | | |
| |--(5)--- funding_locked ---->| |
| |<-(6)--- funding_locked -----| |
+-------+ +-------+
- where node A is 'funder' and node B is 'fundee'
一つづつのメッセージのパラメータを愚直に見ていく。