C-Lightning
為什麼 c-lightning 不允許您與同一個對等方打開多個通道?
這個問題是由 Telegram 上的不同人提出的。
規範 ( BOLT 2 ) 允許在相同的兩個對等點之間使用多個通道:
請注意,多個通道可以並行執行,因為所有通道消息都由 a
temporary_channel_id
(在創建資金交易之前)或 achannel_id
(從資金交易派生)標識。
temporary_channel_id
僅在單個連接中是唯一的,因此意味著每個對等/連接可能有多個通道。就 c-lightning 而言,在嘗試為同一對等方的第二個通道提供資金時出現以下錯誤:
Peer already CHANNELD_NORMAL
為什麼 c-lightning 不遵循這裡的規範?
克里斯蒂安·德克爾在 Telegram 上回答了這個問題。
僅僅因為規範允許某些東西並不意味著每個實現都必須實現它並支持它。在 c-lightning 的案例中,它既是一種架構選擇(將多個通道多路復用到一個 TCP 連接上並非易事),也是一種信念(對等點的多樣性勝過在具有多個通道的單個對等點上加倍,並避免創建單點失敗)。畢竟雙重融資和拼接提供了與通道多路復用相同的能力,同時減少了鏈上的佔用空間,並降低了 gossip 網路的複雜性和負載。
Rene Pickhardt 在下面的評論中添加:
並行渠道也可能是支付流程的挑戰。首先,計算變得更加昂貴,其次,分配的流動性被人為地分配在兩個單獨的通道之間。因此,與平行渠道相比,人們應該始終更喜歡雙重融資、拼接和再平衡