BOLT 9:已分配的特性标志

  • lightning
  • 发布于 2025-04-09 23:12
  • 阅读 12

本文档追踪了闪电网络 BOLT 9 中 init 消息、channel_announcementnode_announcement 消息里的 features 标志的分配。

BOLT #9: 分配的特性标志

本文档跟踪 init 消息 (BOLT #1) 中的 features 标志的分配,以及 channel_announcementnode_announcement 消息中的 features 字段 ([BOLT

7](07-routing-gossip.md))。 这些标志被单独跟踪,因为随着时间的推移可能会添加新的标志。

一些特性被引入并变得如此广泛,以至于所有节点都假定它们存在,并且可以安全地忽略它们(并且语义仅在规范的先前版本中定义)。

标志从最低有效位开始编号,位于位 0(即 0x1,一个偶数位)。 它们通常成对分配,以便特性可以作为可选(奇数位)引入,然后升级为强制(偶数位),这将不被过时的节点接受: 请参阅 BOLT #1: The init Message

某些特性在每个通道或每个节点的基础上没有意义,因此每个特性定义了它在这些上下文中如何呈现。 某些特性可能是打开通道所必需的,但不是使用该通道的要求,因此这些特性的呈现取决于特性本身。

“上下文”列的解码如下:

  • I:在 init 消息中呈现。
  • N:在 node_announcement 消息中呈现
  • C:在 channel_announcement 消息中呈现。
  • C-:在 channel_announcement 消息中呈现,但始终为奇数(可选)。
  • C+:在 channel_announcement 消息中呈现,但始终为偶数(必需)。
  • 9:在BOLT 11 发票中呈现。
  • B:在盲路径的 allowed_features 字段中呈现。
位数 名称 描述 上下文 依赖项 链接
0/1 option_data_loss_protect 假定
4/5 option_upfront_shutdown_script 在打开通道时提交到关闭 scriptpubkey IN BOLT #2
6/7 gossip_queries 对等方有用的gossip可以分享
8/9 var_onion_optin 假定
10/11 gossip_queries_ex Gossip查询可以包含其他信息 IN BOLT #7
12/13 option_static_remotekey 假定
14/15 payment_secret 假定 IN9 Routing Onion Specification
16/17 basic_mpp 节点可以接收基本的多部分支付 IN9 payment_secret BOLT #4
18/19 option_support_large_channel 可以创建大型通道 IN BOLT #2
22/23 option_anchors 具有零费用 HTLC 交易的锚定承诺类型 IN BOLT #3, lightning-dev
24/25 option_route_blinding 节点支持盲路径 IN9 BOLT #4
26/27 option_shutdown_anysegwit shutdown 中允许未来的隔离验证版本 IN BOLT #2
28/29 option_dual_fund 使用通道打开的 v2 版本,启用双重注资 IN BOLT #2
34/35 option_quiesce 支持 stfu 消息 IN BOLT #2
38/39 option_onion_messages 可以转发 onion 消息 IN BOLT #7
42/43 option_provide_storage 可以存储其他节点的加密备份数据 IN BOLT #1
44/45 option_channel_type 节点支持 open/accept 中的 channel_type 字段 IN BOLT #2
46/47 option_scid_alias 提供用于路由的通道别名 IN BOLT #2
48/49 option_payment_metadata tlv 记录中的支付元数据 9 BOLT #11
50/51 option_zeroconf 理解 zeroconf 通道类型 IN option_scid_alias BOLT #2
60/61 option_simple_close 简化的关闭协商 IN option_shutdown_anysegwit BOLT #2

要求

原始节点:

  • 如果它支持上述特性,则应该在上下文列指示的所有特性字段中设置相应的奇数位,除非 指示它必须设置偶数特性位。
  • 如果它需要上述特性,则必须在上下文列指示的所有特性字段中设置相应的偶数特性位, 除非指示它必须设置奇数特性位。
  • 必须不设置它不支持的特性位。
  • 必须不在上表未指定的字段中设置特性位。
  • 必须不设置可选位和强制位。
  • 必须设置所有传递特性依赖项。
  • 必须支持:
    • var_onion_optin

接收节点:

  • 如果一对中的可选和强制特性位都已设置, 该特性应被视为强制性的。

接收特定位的要求在上面表格中的链接部分中定义。 上面未定义的特性位的要求可以在 BOLT #1: The init Message 中找到。

理由

请注意,对于在 node_announcementBOLT 11 发票上下文中都可用的特性标志,BOLT 11 发票中设置的特性应覆盖 node_announcement 中设置的特性。 这使得事情与 BOLT 7 中指定的未知特性行为保持一致。

原始节点必须设置所有传递特性依赖项,以便创建格式良好的特性向量。 通过预先验证所有已知的依赖项,这简化了由单个特性位控制的逻辑; 已知该特性的依赖项已设置,并且不需要在每个特性门处进行验证。

Creative Commons License <br> 本作品根据 Creative Commons Attribution 4.0 International License 获得许可。

  • 原文链接: github.com/lightning/bol...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
lightning
lightning
江湖只有他的大名,没有他的介绍。