gossip 協議將如何從頻道工廠宣布頻道?
我剛剛和 Christian Decker 一起聽SLP59。他們主要討論渠道工廠。雖然多方通道和從它們派生的更高階系統(子通道)的建構似乎很清楚並且在本文中進行了描述,但我想知道如何調整gossip 協議以便人們能夠宣布這些通道?
通常有必要指向支付渠道的資金交易,以防止垃圾
channel announcment
郵件和驗證渠道。然而,對於渠道工廠,多方渠道只有一筆大筆資金交易。子頻道是脫鏈的。gossip 協議的解決方案是什麼樣的?
幾乎一切都會保持不變。如果您查看相關消息
channel_announcement
,channel_update
我們有以下格式:
channel_announcement
- 類型:256 (
channel_announcement
)- 數據:
* [
64
:node_signature_1
] * [64
:node_signature_2
] * [64
:bitcoin_signature_1
] * [64
:bitcoin_signature_2
] * [2
:len
] * [len
:features
] * [32
:chain_hash
] * [8
:short_channel_id
] * [33
:node_id_1
] * [33
:node_id_2
] * [33
:bitcoin_key_1
] * [33
:bitcoin_key_2
]
channel_update
- 類型:258 (
channel_update
)- 數據:
* [
64
:signature
] * [32
:chain_hash
] * [8
:short_channel_id
] * [4
:timestamp
] * [1
:message_flags
] * [1
:channel_flags
] * [2
:cltv_expiry_delta
] * [8
:htlc_minimum_msat
] * [4
:fee_base_msat
] * [4
:fee_proportional_millionths
] * [8
:htlc_maximum_msat
] (option_channel_htlc_max)如果您查看此內容,您會看到其中
channel_announcement
包含按字典順序排序的節點和比特幣簽名列表及其對應的公鑰。通過使這個列表的長度可變,這很容易擴展到任意數量的參與者。特別是
short_channel_id
仍然指的是打開鏈下合約的單一輸出,它也保持不變。
channel_update
可能看起來有點複雜,因為現在有n*(n-1)
可能的方向(發送方-接收方對)可以遍歷這個合約,而在簡單的 2 參與者通道中,我們只有 2 個方向。然而,方向概念可以很容易地擴展到僅按字典順序排列所有發送者-接收者對並使用索引來辨識該對。很可能需要修改一些消息格式(可變長度的公鑰和簽名列表),並明確一些欄位(發送者-接收者對的排名索引),但一般概念保持不變。