nayutaco / ptarmigan

Lightning Network (BOLT)
Apache License 2.0
132 stars 19 forks source link

lnd do not send channel_update soon after announcement_signatures #1592

Closed nayuta-ueno closed 5 years ago

nayuta-ueno commented 5 years ago

だいたいのnodeは、funding_lockedの送信後にchannel_updateを送信する。 これは、invoiceのr-fieldのためと考えている。 https://lists.linuxfoundation.org/pipermail/lightning-dev/2018-April/001220.html

それはよいが、元々channel_updatechannel_announcementと対になるメッセージで、channel_announcementがないchannel_updateは無視することになっている。

The receiving node:

announcement_signaturesを交換するのであれば、channel_announcementはお互いが生成できるので、代替えのメッセージと見なしてもよいと考えている。 もしそうならば、channel_updateannouncement_signaturesの交換後にも送信すべきではないだろうか?

nayuta-ueno commented 5 years ago

本題を書き忘れた。

lndはfunding_locked直後にchannel_updateを送信した後は、announcement_signaturesを送信した後に送信するそぶりを見せなかった。 そのため、ptarmiganはlndのchannel_updateを持たず、他にannouncementを展開しなくなっている。

nayuta-ueno commented 5 years ago

BOLT7では、peer nodeのchannel_updateについては捨てなさそうな記述になっている。 channel_updateで判別に使えるパラメータはshort_channel_idしかない。 short_channel_idはfunding_txがblockに入らないと決められない。 相手がshort_channel_idを持っているかどうかを判断できるとすれば、funding_lockedの受信くらいしかないだろう。

nayuta-ueno commented 5 years ago

BOLTにマージされたので、ptarmiganとしては対応しない。 https://github.com/lightningnetwork/lightning-rfc/blob/master/07-routing-gossip.md#requirements-3

MUST NOT send a created channel_update before funding_locked has been received.