Channel Establishment

この辺は、よく説明されている部分にもリンクするので、イメージは多少しやすい。 まず、原理的な部分。

lncli openchannel --nodekey= --localamt=1000000

  1. open TXの作成
  2. secret hashの交換
  3. commitTXの作成
  4. 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'

一つづつのメッセージのパラメータを愚直に見ていく。