CLN listnodes 命令偶爾會返回過多的功能標誌
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 實現使用。