Bitcoin Core 31.0 源码视角拆解 -i2psam:SAM 代理的出入站双角色、缺省端口 7656、入站接受开关与 listen=0 的联动降级,以及不支持 UNIX 套接字的值格式约束。
汇总与「比特币节点」相关的文章,帮助你系统了解该主题。
Bitcoin Core 31.0 源码视角拆解 -i2psam:SAM 代理的出入站双角色、缺省端口 7656、入站接受开关与 listen=0 的联动降级,以及不支持 UNIX 套接字的值格式约束。
用 Bitcoin Core 31.0 源码讲清 -blocksdir 的容器语义:目录必须预先存在、网络子目录自动分层、区块文件与混淆密钥随迁,而区块索引与链状态留在数据目录,以及漏搬 xor.dat 的后果与迁移顺序。
关闭节点网络活动但不停进程:Bitcoin Core 31.0 源码拆解 setnetworkactive 命令与 -networkactive 参数触发的三层连锁——拆散存量连接、拒收新来电、挂起 DNS 种子查询——以及它管不到的防火墙与持久化。
Bitcoin Core 的地址库空空如也时,出站连接线程会按十秒一拍的节奏向种子节点域名发起专门的 addrfetch 连接补货。本文基于 31.0 源码拆解这条冷启动通道:触发条件、队列与五兆位节流、专用连接类型与 v2 传输尝试,以及它与 feeler 探针的分工。
uptime RPC 返回的节点运行秒数,背后是单调时钟与进程起点两行实现。本文基于 Bitcoin Core 31.0 源码讲清这个数字从哪起算、系统时钟跳变会不会影响它、它与操作系统开机时长差在哪,以及监控里哪些解读方式会出错。
压缩区块传播依赖 sendcmpct 消息谈定的高带宽席位,而节点最多同时保留三个这样的对端。本文基于 Bitcoin Core 31.0 源码拆解 sendcmpct 的版本协商、三席轮换逻辑与保护出站席位的细节。
inv 与 getdata 是比特币节点之间最繁忙的清单类消息,而它们的清单长度并非没有边界。本文基于 Bitcoin Core 31.0 源码拆解 MAX_INV_SZ 五万条上限:接收侧超限即记过断连、发送侧达到上限自动分批,以及这个数字与四十兆消息总闸之间的账目关系。
新节点要一次性讨回一整份地址簿,靠的是 getaddr 消息。本文基于 Bitcoin Core 31.0 源码拆解 getaddr 的三道处理纪律:只为入站对端作答、每条连接只答一次、单次回复最多一千条,并解释背后防指纹追踪与防地址盖章的攻防考虑。
Bitcoin Core 会用对端上报的时间给自己的时钟体检:样本只收出站连接、上限五十条、够五条才取中位数、偏差超过十分钟才弹出时钟警告。本文基于 31.0 源码与 timeoffsets 模块拆解这条报警链路。
比特币节点主动连邻居时,TCP 连接最长等多久由 -timeout 说了算。本文基于 Bitcoin Core 31.0 源码拆解这五秒等待的发生位置、超时后的行为,以及它与 -peertimeout、RPC 等待的分工边界。