闪电 init 消息交换功能位图:奇数位 optional、偶数位 compulsory,未知奇数位必须忽略、未知偶数位必须断连。本文按 BOLT #9 与 BOLT #1 拆解编号规则、高频位清单与依赖声明,以及 open_channel 里显式 channel_type 的收敛作用。
汇总与「比特币」相关的文章,帮助你系统了解该主题。
闪电 init 消息交换功能位图:奇数位 optional、偶数位 compulsory,未知奇数位必须忽略、未知偶数位必须断连。本文按 BOLT #9 与 BOLT #1 拆解编号规则、高频位清单与依赖声明,以及 open_channel 里显式 channel_type 的收敛作用。
打开 -logthreadnames 后日志行出现方括号线程名。本文按 Bitcoin Core v31.0 源码列出显式命名线程(net、msghand、addcon、opencon、scheduler、http、torcontrol、mapport、privbcast、initload、shutoff、scriptch 系列与各索引线程)的职责,并给出日志在动但功能失联类故障的排法。
BOLT #4 规定洋葱错误回包总长不超过 32768 字节,中间节点遇超长回包截取前 32 KiB 而非拒收;失败载荷加填充至少 256 字节;预算另一头是让位给记录各跳 100 毫秒粒度滞留时长的归属数据。本文按规范原文拆开这套体积规则。
BOLT #4 把旧版区分金额错误与哈希未知的最终节点失败码合并为编号 15 的永久码,动机是堵住用错误码差分定位收款节点的探测攻击。本文核对合并语义、htlc_msat 冗余字段、height 字段用途与失败码分层。
Bitcoin Core v31.0 移除了 tor 网络名称(v0.17.0 起由 onion 取代),onlynet=tor 会直接报错;同时 torcontrol 的 ADD_ONION 自动隐藏服务链路完整保留,v31 还新增依赖 Tor 与 I2P 的 -privatebroadcast。本文拆开网络名与 Tor 功能两层。
Bitcoin Core v31.0 的 debug.log 前缀由四个启动参数控制:时间戳默认开,微秒、线程名、源码位置默认关。本文按 logging 源码与发布说明核对默认值、拼装顺序、v31 把源码位置收敛为函数名的改动,以及 logging RPC 热开关的真实边界。
Bitcoin Core v31.0 的 RPC 服务端只实现 Basic 认证,凭据默认来自每次启动重新生成的随机 cookie 文件。本文按 httprpc.cpp 与 request.cpp 核对 cookie 校验、rpccookieperms 三档权限、cookie 与 rpcauth 共存关系,以及 JSON-RPC 批量数组在 HTTP 层的 200/204 规则。
闪电协议在通道开通前后使用两套通道编号:开通前是双方各自构造的 temporary_channel_id,开通后是从资金交易哈希与输出序号做大端异或得到的 channel_id。本文按 BOLT 2 原文拆解两种编号的构造规则与撞号处理。
比特币核心用 version 消息里的 8 字节 nonce 与自家在途外连比对,命中即记 connected to self 并断开;私有广播连接的 nonce 被有意排除,源码注释给出一条完整的钓鱼反例。本文讲机制、触发场景与边界。