getaddrmaninfo的new和tried怎么读? 图 1
getaddrmaninfo的new和tried怎么读? · 图 1

Bitcoin Core能连接多少peer,不只取决于当前网络是否通,还取决于地址管理器积累了哪些候选。getaddrmaninfo把地址池按new和tried拆开:前者是发现但尚未成功连接的地址,后者是过去连接成功的地址。两者都不是当前在线列表。

先区分地址池与连接表

getaddrmaninfo返回节点地址管理器信息,按网络类型给出new、tried与total计数。

对象代表的时间范围查询入口
new地址已发现、尚无成功连接记录getaddrmaninfo
tried地址过去成功连接过getaddrmaninfo
当前peer此刻已建立连接getpeerinfo
手工节点配置或RPC指定对象getaddednodeinfo

因此new很多不等于连接健康,tried很多也不保证这些地址现在可达。当前连接少时,应同时查看网络活动开关、代理、DNS、封禁、端口和getpeerinfo错误,而不是仅凭地址池总数重建数据目录。

new描述发现面,tried描述历史成功面

new表示节点发现但尚未成功连接的潜在peer地址。

tried表示节点过去曾成功连接的peer地址。

new长期为零,可能是节点刚初始化、发现路径受限、仅使用固定peer或特定网络未启用;也可能是采集器读错节点。tried缓慢增长通常代表成功连接经验积累,但单次下降需要结合版本升级、数据目录更换和地址管理文件状态解释。

不要追求“new越多越好”或手工填充陌生地址。地址管理器的内部策略包含去重、网络分组和选择机制,外部监控只需观察趋势与明显退化。为提高数字而随意连接未知节点,可能扩大攻击面。

按网络类型拆分才能看见退化

网络键可包括ipv4、ipv6、onion、i2p、cjdns和all_networks。

IPv4正常而onion为零,可能是Tor未配置;IPv6突然归零,可能是主机或出口策略变化。all_networks适合总览,根因分析必须回到单网络。不同节点角色的正常分布不同,公网节点、仅Tor节点和内网节点不能共用一条固定阈值。

为每种网络记录new、tried、total和采集时间,再与当前入站/出站连接数对齐。建议关注连续窗口:单点波动只做观察,地址池持续萎缩且新连接失败才升级告警。进程重启和版本维护要在图上标注。

三种异常需要不同动作

第一类是new和tried都存在但连接为零,重点查网络活动、代理、防火墙和封禁。第二类是某网络池长期归零,重点查该网络是否启用和发现入口。第三类是tried持续下降且连接质量恶化,需检查地址管理数据、磁盘和异常退出记录。

不能根据地址池计数识别某个peer恶意,也不能从计数反推具体IP。安全排障只收集必要的peer与错误信息,避免把完整网络拓扑公开到工单或日志。RPC接口必须保留在受控边界。

维护后的验收是发现和连接同时恢复

升级、迁移数据目录或更改网络配置后,先核对网络类型仍存在,再观察new/tried趋势和实际出站连接。一次连接建立不代表发现机制健康;同样,地址池恢复也不代表应用层区块同步正常。

配合getpeerinfo连接质量节点封禁审计getnodeaddresses地址采样建立证据链。本文用于节点防御性运维,不提供peer操纵方法,也不构成比特币网络可用性保证。

资料入口和限制

  1. Bitcoin Core getaddrmaninfo 31.0:new、tried、total与网络类型。
  2. Bitcoin Core getpeerinfo 31.0:当前连接字段用于交叉验证。

资料访问时间为2026-08-12。仍需留意:计数不直接证明地址可达,也不代表当前连接;阈值需按网络策略和历史基线制定。