轻钱包递交的布隆过滤器受三条硬线约束:位图不超 36000 字节、哈希函数不超 50 个、filteradd 单根针不超 520 字节。对照 Bitcoin Core v31.0 源码拆超限后的记账断连路径、服务位检查与老钱包连不上节点的排障线索。
汇总与「节点」相关的文章,帮助你系统了解该主题。
轻钱包递交的布隆过滤器受三条硬线约束:位图不超 36000 字节、哈希函数不超 50 个、filteradd 单根针不超 520 字节。对照 Bitcoin Core v31.0 源码拆超限后的记账断连路径、服务位检查与老钱包连不上节点的排障线索。
比特币核心对带数据交易设了两道控制:-datacarriersize 管装多少,-datacarrier 管装不装。对照 v31.0 源码拆这个布尔开关如何把载数据预算清零、getmempoolinfo 里为什么显示 0、关掉后钱包广播与索引器的真实后果。
比特币核心的尘埃判定不是写死的聪数,而是 -dustrelayfee 这条费率折算出来的:先估花掉输出所需字节,再按费率折成费用与输出价值比大小。对照 v31.0 源码拆这条 DEBUG_ONLY 参数的默认值、判定路径、数量闸门与三层边界。
OP_RETURN 输出与超长脚本输出被 Bitcoin Core 的 IsUnspendable 判为不可花费:不进 UTXO 集合、不进统计与导出、断链回滚同判据、钱包默认拒绝代转超额烧毁金额。对照 v31.0 源码梳理这个函数在共识、账本、索引与钱包四层引发的连锁行为。
Bitcoin Core 的调试参数 -fastprune 把区块文件上限从 128 MiB 缩到 64 KiB、把修剪高度地板从十万降到一百,让剪枝逻辑在几百个区块内就能真实触发。对照 v31.0 源码拆解两处改动的实现、超大区块装不下文件的动态兜底,以及它适合测试教学而不适合生产省磁盘的原因。
比特币节点的 version 与 verack 构成握手窗口,wtxidrelay、sendaddrv2、sendtxrcncl 等协商消息必须在窗口内完成,过晚到达直接断连。对照 Bitcoin Core v31.0 源码拆解 fSuccessfullyConnected 状态机、verack 处理时刻的动作序列,以及库存公告延后计时背后的交易时间隐私设计。
比特币默克尔树对奇数个叶子复制末位哈希,这个先天设计曾让攻击者复制交易就能改变区块哈希(CVE-2012-2459)。对照 Bitcoin Core v31.0 源码拆解 ComputeMerkleRoot 的 mutated 标志、bad-txns-duplicate 拒绝、IsBlockMutated 隔离与 segwit 见证变异检查这四道补丁如何把老洞封死。
比特币节点 REST 接口的批量标头端点共用 MAX_REST_HEADERS_RESULTS 上限 2000,越界直接 400;过滤器标头端点默认只给 5 个。拆解免认证入口为何要设闸、翻页接力写法与排错现场。以 v31.0 源码为准。
dbcache 总预算先被索引层切走:txindex 与 txospenderindex 各按当时余额的八分之一、封顶 1GiB,过滤器索引再合并一份封顶额度。拆解 CalculateCacheSizes 的顺序扣减、32 位封顶与容量规划口径。以 v31.0 源码为准。
estimatesmartfee 的建议费率来自短中长三档统计窗口:SHORT_BLOCK_PERIODS 12、MED 24、LONG 42 段配步长,历史有效期六周,短程衰减半衰约三小时。拆解分桶计数、指数衰减与 conf_target 的对应关系。以 v31.0 源码为准。