LND getinfo 的两个同步标志:一个管账本、一个管地图 图 1
LND getinfo 的两个同步标志:一个管账本、一个管地图 · 图 1

lncli 的 getinfo 是闪电节点的门面命令:新搭好节点第一条敲的往往是它,出问题排查第一条敲的也常常是它。但很多人只把输出当”节点名片”扫一眼,两个同步标志到底在说什么、别家软件的字段对不上怎么办,值得单独拆开。本文按 LND v0.19.0-beta 的 lnrpc 接口定义核对。

一、名片区的字段分工

输出里 identity pubkey 与 alias 是节点的身份证与昵称:前者是六十六位十六进制的节点公钥,全网唯一;后者可以随意改,只供人眼看。uris 列出可连接的地址(公钥加 host 端口),给别人开通道时贴的就是这个。chains 告诉你这个节点挂在哪条链上——主网、测试网还是 Signet,以及挂的协议版本;字段 testnet 已标记弃用,看网络应该看 chains。version 与 commit hash 字段记录构建版本与提交号,报 bug 时对方要的就是这个。通道与连接的计数三件套 num_active_channels、num_inactive_channels、num_peers 各管一摊:活跃通道可以走账,不活跃通道存在但连不上对端,peers 则是当前活着的对端连接数,三者口径互不覆盖。

二、真正的健康灯在 block_height 与两个 synced

block_height 加 best_header_timestamp 是节点看到的链尖及其时间。它和高度计数器不一样,这是”钱包视角”的链顶。synced_to_chain 的定义是钱包视图是否追上了主链:通道余额是链上资金与通道状态簿的叠加,节点没追平链就报余额,可能把已经被别人单方面广播的通道算成活的。synced_to_graph 则是另一件事——是否追平了公开通道图谱。图谱落后时你的节点还能正常收付款,但路由选路会基于旧地图:新开的热门通道看不见,已关闭的通道还想去借道,表现为”明明有容量却总是路由失败”。两个标志一个管账本、一个管地图,分开看才不会误诊。

三、哪些字段容易读错

color 只是图例颜色,不是状态。num_pending_channels 把”待开”和”在关”都算进来,具体在哪种状态要用 pendingchannels 展开。features 映射是功能位协商的结果,显示某特性为必需或可选,决定的是与对端握手时能不能谈拢,不代表你的通道一定会用到它。require_htlc_interceptor 为 true 说明这个节点有拦截器在守 HTLC,付款时遇到”看起来卡住”可能是业务方在Hold,而不是网络故障。

四、排障顺序示例

怀疑不同步时按这个链条走:best_header_timestamp 与真实时间差多少;差得多就查 synced_to_chain 是否 false 以及节点后端(bitcoind 等)的同步状态;链顶没问题但付款总选不到路,再看 synced_to_graph;图谱也不误但路由失败,去翻 listpeers 与路由记录。把 getinfo 当分流阀——先确认是链视图还是图视图落后,再进对应的深水区,比漫无目的翻日志快得多。

五、它不是监控接口

getinfo 不承诺原子快照:字段来自不同子系统,抓到同一瞬间的可能性不要指望。做监控请用轮询差值判断趋势,别对单次抓拍的字段间关系做强一致假设。

六、一个上手检查清单

新节点接入后按顺序过一遍:先看 chains 确认挂对了网,挂错链的节点同步得再快也不产生任何有效通道;再看 best header timestamp 与真实时钟的偏差,超过十分钟就把后端节点的同步状态查个底;两个 synced 标志都为 true 之后,数一数 active channels 与 peers 是否互为正数——有活跃通道却没有对端,说明状态簿还没和真实连接对齐,重启后端再重连对端是常规解法;最后把 alias、color、uris 按你想要的公众形象设置好,这一步只影响别人怎么看你,不影响资金安全,但总比别人用一串十六进制缩写称呼你的节点体面。

风险提示:本文描述节点软件字段含义,不构成任何运营或投资建议;节点运行有磁盘、带宽与资金安全责任,请自行评估。