Lightning-Network

CLN listnodes 命令偶爾會返回過多的功能標誌

  • November 28, 2022

BOLT #9 規範顯示了一個 52 位欄位,代表各種功能標誌。這應該不超過 7 個字節,或更少。

當我執行listnodes命令時,一些節點包含在預期長度範圍內的特徵欄位,例如808252a1小於 7 個字節,但其他節點出乎意料地長,總是以字節開頭,80後跟一長串00字節和然後似乎是實際的功能標誌。

其中一個看起來像這樣:800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000802000888252a1

這是某種錯誤,還是從這些長長的功能標誌序列中可以解釋一些其他資訊?

BOLT#9 規範列出了所有標準化或即將標準化的功能,但開發人員可以自由選擇更高的位來表示他們的自定義功能。通常,規範工程師在開發功能時也會使用高位以避免衝突,然後將其降低到較低位以進行標準化(如您所見,這可以節省字節)。

上述特徵位集解碼為:

['option_data_loss_protect',
'option_upfront_shutdown_script(opt)',
'gossip_queries(opt)',
'var_onion_optin(opt)',
'option_static_remotekey',
'payment_secret',
'basic_mpp(opt)',
'option_anchors_zero_fee_htlc_tx(opt)',
'option_channel_type',
'AMP(LND)(opt)',
'ExplicitChannelType(LND)(opt)',
'unknown[55]',
'ScriptEnforcedLease(LND)(opt)']

(保持位在位集中設置的順序)

大量的0是由於位 2023 被設置:script_enforced_lease,這是 的一項實驗性功能lnd,iirc 由其專有的 Pool 實現使用。

引用自:https://bitcoin.stackexchange.com/questions/116150