节点怎么数朋友:出站、入站与探测连接的配额设计 图 1
节点怎么数朋友:出站、入站与探测连接的配额设计 · 图 1

为什么连接数要有总闸

全节点的带宽与安全都直接受连接数影响:连接越多同步越快,但每个连接都占文件描述符、内存缓冲和带宽;同时每个对手方都可能观察你的行为。比特币核心因此给节点加了总闸:连接总数由 maxconnections 封顶(当前源码默认二百,历史上长期默认一百二十五,老教程里仍常见那个数字),并把连接池切成用途不同的几类。理解这套分池,是读懂节点隐私设计与运维手册的第一课。

槽位怎么分配

节点主动发起的连接默认分几个池子。第一类是全中继出站连接,上限八个:交易与区块的双向传播都走它们,是节点网络生活的主力。第二类是块中继专用出站连接,上限两个:只接收区块、不参与交易中继,节点还会按固定节奏额外维持这种只听块的连接。第三类是探测连接:节点周期性用一个临时槽位去连接地址库里尚未验证的地址,只确认可达性,验证完就挂断,从不用于业务转发,作用是持续给地址库体检、淘汰失效条目。手动配置的常驻连接另有独立额度。入站连接填充总上限之下剩下的空间,且可配置入站槽位中允许参与交易中继的比例上限。配置里最常见的 maxconnections 与 addnode 两个旋钮,就是围绕这些池子展开的。

这套切分在防什么

块中继专用连接的设计目标是对抗交易来源分析:观察者在部分网络视野里可以用”谁先收到哪笔交易”的时序信号推断交易源头;把一部分出站连接做成只听块、不碰交易的管道,让节点对外展示的交易传播图更平滑,可被利用的询问面收窄。这类连接也不参与地址广告的常规扩散,减少被污染地址库反向喂养的机会。探测连接则对抗地址污染本身:地址库要持续验证哪些地址还活着、报告的端口是否一致,否则新节点的邻居会越连越陈旧。

调整配额前要算的账

把总上限调高会扩大入站池,改善可达性与传播贡献,代价是带宽与文件描述符开销,入站连接不受你选择对手方的控制,越多意味着越多人能观察你。反过来把连接数压到个位数,抗女巫与抗指纹能力下降。家庭节点常见的稳妥姿势是保持默认、开启 UPnP 或手工端口映射换取入站连接,而不是猛调数字。多机部署与 I2P、Tor 接入时再按拓扑专门设计。

快速问答

问:连接数高等于节点健康吗? 答:不等于。RPC 的 peer 信息要区分入站、出站与块中继三类分别看,总数高但全连接池枯竭同样是病态。

问:探测连接会不会暴露隐私? 答:探测会向陌生地址发起 TCP 连接,本身是一种可被观察的行为,这是地址健康换来的必然代价。

问:家用路由器需要开端口吗? 答:想让入站连接工作,需要公网可达的监听端口;否则你的节点几乎全靠主动出站活着,网络整体也少了一个可连入口。

观测这三类连接

运维视角的体检入口是 RPC 的对等节点列表:每条连接会标明是完整中继、仅块中继还是入站,配合方向与驻留时长就能还原节点的网络画像。健康节点的典型画像是出站八条全中继常年稳定、块中继条数少但驻留久、入站数取决于可达性配置。异常信号包括全中继槽位长期半空、块中继频繁更换、或者入站为零——最后一条最常见,意味着端口没开或防火墙拦了入站。

风险提示:本文仅作技术科普,不构成任何投资建议。