AUG56 bitcoin body 252: wtclient command group
LND 的看门塔客户端有两层控制面:配置文件里的开关和费率参数决定塔怎么工作,而运行期间登记、摘除、盘点塔这几件事全部走 lncli wtclient 命令组。此前对配置项的拆解说的是静态一侧,这一篇把命令组七个子命令逐个对齐源码语义,顺便澄清几个容易混的动作。
登记与改址:add 一个命令两用
lncli wtclient add 只接受一个参数,格式是 pubkey@address,公钥与地址用艾特符号分隔,缺一个分隔符就报错。官方帮助明确:如果这朵塔已经登记过,再执行一次 add 的效果是更新它的可达地址,而不是重复登记。也就是说地址搬家、换了端口,都靠这条命令重发新地址即可,塔侧不需要重新走开户流程。
停用与摘除是两个动作
deactivate 和 remove 的参数都只要公钥(remove 也接受 pubkey@address 写法),但语义差距很大。deactivate 的说明是暂时阻止该塔被使用,登记关系和既有会话都还在,随时可以再启用;remove 则是摘除登记,阻止它用于未来的会话。对临时怀疑有问题的塔,先用 deactivate 观察比直接 remove 温和:前者保留了恢复原状的能力,后者的旧备份条目要重新建立会话才能覆盖。
盘点三件套:towers、tower、stats
towers 列出全部已登记的塔,tower 查一朵塔的细节,参数是公钥。两者共享两个旗标:--include_sessions 把与该塔的会话信息一并带出,--exclude_exhausted_sessions 只在带出会话时才有意义,用来过滤掉额度已耗尽的会话。所谓耗尽,指的是一朵塔的会话备份额度用满;如果监控脚本只看 towers 的默认输出,会话状态是不可见的,必须显式开旗标。stats 则给出客户端整体的会话统计,回答“我一共向塔提交了多少先行更新备份、还剩多少额度”这类总量问题,是日常巡检最值得留档的一屏。
policy:看策略不看塔
policy 子命令显示当前生效的看门塔客户端策略配置,另有一个 --legacy 旗标用于读取旧版塔客户端的策略。它和配置文件的区别在于:这里读出的是进程实际生效的值,改完配置忘了重启、或者环境变量覆盖了你以为的默认值,policy 的输出会当场露馅。
命令组与信任边界
值得重申的是这些命令都不动钱:登记、停用、摘除、盘点全部是客户端对塔的会话管理,塔能看到的只有加密的惩罚备份,它拿不到你的私钥,也不能替你花通道里的钱。所以 wtclient 组的命令可以放心在排障中使用,真正需要谨慎的是登记塔的来源本身——命令不会替你验证那朵塔的运营者是否可信。
一个值得建立的巡检脚本
把这组命令固化成月度任务:towers --include_sessions 导出全部塔的会话状态,stats 记录累计备份提交数,policy 存档当前生效策略,三份输出按日期落盘。塔侧会话是有限额的,帮助文本里那个排除耗尽会话的旗标就是证据——会话会有用完的一天,靠人肉记忆迟早漏掉;脚本化之后,异常只剩三种形态——某朵塔的会话数骤增(节点频繁掉线重连的信号)、额度见底(该登记新塔了)、策略值和你配置文件不一致(改动没生效)。三份输出都只读不改状态,放进只读巡检窗口也不会碰坏任何东西,这也是命令组设计上留给运维的善意。
命令组与配置文件的分工
同一朵塔的信息,配置文件与命令组各管一头:wtclient.active、清扫费率上限、会话关闭区间这些开机就固定的参数归配置文件,改完必须重启才进策略;运行期的登记关系、地址更新、启停状态归命令组,改了立即生效。两边状态可能不一致,比如配置文件里写了两朵塔的初始地址,而 towers 的输出一朵已被运行期命令改了地址、另一朵已被停用。审计节点时永远以命令组的读数为现值、配置文件为意图,两者的差集就是你忘掉的那次热改。
风险提示:看门塔是尽力而为的第三方服务,停用或摘除塔不等于惩罚窗口消失;本文为机制说明,不构成投资建议。
发表评论
还没有评论,来说两句吧。
评论区为展示样式,提交不会被处理。