lncli networkinfo:闪电公开图谱的一屏体检报告 图 1
lncli networkinfo:闪电公开图谱的一屏体检报告 · 图 1

lncli networkinfo 返回的是闪电网络公开拓扑的体检报告:全图有多少节点、多少通道、平均每个节点向外连几条边、通道容量的均值和中位数,外加一个”僵尸边”计数。对评估自己节点在网络中的位置、判断流动性大环境来说,它比 describegraph 的百万级点边列表轻量得多,也更适合作为日常监控指标。

一、字段逐项含义 在 LND v0.19.0-beta 的接口定义里,NetworkInfo 响应包含:graph_diameter 图的直径,即公开图中两点间最短路径长度的最大估计;avg_out_degree 每个节点的平均出边数,闪电通道是双向报价的,统计上按有向边处理;max_out_degree 单个节点出边数的最大值,通常被大型路由节点拉高;num_nodes 与 num_channels 公开图里的节点数和通道数;total_network_capacity 全图通道容量总和,单位聪;avg_channel_size、min_channel_size、max_channel_size、median_channel_size_sat 分别是容量的均值、最小、最大与中位数(中位数单独给字段,因为闪电的容量分布严重右偏,均值会被少数巨通道带偏);num_zombie_chans 被标记为僵尸的边数——那些长期收不到公告刷新、被路由层降权处理的通道边缘。

二、这个数字从哪来、什么时候更新 所有统计都是从节点本地缓存的通道图现算出来的。你的图有多新,取决于你与对端的 gossip 同步是否健康:如果节点长期离线、或者连接的 gossip 对端太少,num_channels 会系统性偏低。另一个容易被忽略的来源是”公开性”——只有双方都同意公开的通道才进图,私有通道、以及公告校验失败的信息根本不在统计口径里。所以不同节点、不同实现报出的总量允许有差异,这不代表谁在说谎,只代表各自看到的地图版本不同。

三、僵尸边计数怎么解读 闪电的公告机制要求通道定期重发更新,超过一个观察窗(实现层的默认约半个月量级)没有任何新公告的边,会被路由器标记为僵尸并在找路时忽略。num_zombie_chans 高,往往意味着网络里有大量节点开完通道就不维护公告——通道可能仍然存在甚至可用,只是路由层不敢信。把僵尸数与 num_channels 相除得到的”僵尸率”,是观察网络维护纪律的粗略指标;把它当精确值看就过了,僵尸的判定窗口本身在不同版本间调过参。

四、直径与出度的实用读法 avg_out_degree 结合 num_channels 可以粗算图的连通冗余度:出度越高,绕开单点故障的备选路径越多。graph_diameter 则在告你”最多跳几跳就能到全网”——直径越大,付款路径越长,超时与费率的预算就要留得越宽。自己做路由节点时,拿自己节点的 getnodemetrics 介数中心性与这两个全局量对照,能判断”我的连接数在全网算什么水平”。

五、与其它统计命令的分工 getinfo 说的是你自己的节点连了什么、同步到哪;describegraph 给你完整的点边档案,适合离线分析;getnodealiases/querygraphinfo 一类(视版本与实现)偏局部查询;networkinfo 独占的生态位是”一屏全局画像”。监控面板上合理的组合是:networkinfo 的全量与中位数按天记录趋势,getinfo 的同步标志做告警,describegraph 只在排查具体路径时调用——全图导出既慢又吃内存,不要放进高频任务。

六、口径陷阱清单 一,total_network_capacity 与”全网实际可动用的流动性”是两回事:容量双边重复计入同一条通道,且通道两侧的余额分布完全不影响这个数。二,容量字段跨版本有过单位口径的差异(比特币与聪的历史包袱),对照旧数据前先查当前版本的字段注释。三,统计随你看到的图刷新而波动,若节点刚重启还在补 gossip,数值会先低后高地爬升,别把爬升曲线当成网络变化。四,僵尸边在重新收到公告后会复活,计数骤降未必是网络清理了死通道,可能只是一批节点恢复了公告。

风险提示:本文所述字段以 LND v0.19.0-beta 源码与官方接口定义核对为准,不同版本与实现口径存在差异。网络统计用于技术与流动性研究参考,不构成任何投资建议。