给 LND 的路由学习调旋钮:getmccfg 与 setmccfg 的现役参数清单 图 1
给 LND 的路由学习调旋钮:getmccfg 与 setmccfg 的现役参数清单 · 图 1

LND 的支付路径规划依赖一个叫任务控制的学习系统:它给每条通道与每个节点的转发成功率打分,失败越多分数越低,分数低的路由会被尽量绕开。打分逻辑是算法层的事,运营者真正能碰的是它的配置面——四个命令:读取配置、修改配置、导出学习状态、清空学习状态。本文基于 0.19.0-beta 源码,把这条配置面的旋钮逐个拧一遍。

四件套的分工

getmccfg 打印任务控制当前使用的配置,是改动前的基准留档;setmccfg 把修改后的配置写回,命令行旗标对应配置的各个字段;querymc 导出内部学习状态的完整快照——那是一张逐通道记录成功失败历史的表,数据量随支付历史增长;resetmc 清空内部状态,一切从头再学。四者构成”看配置、调配置、看学到什么、清空学的结果”两对动作,前两个动策略,后两个动记忆。

给 LND 的路由学习调旋钮:getmccfg 与 setmccfg 的现役参数清单 图 2
给 LND 的路由学习调旋钮:getmccfg 与 setmccfg 的现役参数清单 · 图 2

配置结构的时代断层

配置消息里最显眼的是三个已标记弃用的字段:半衰期秒数、跳点概率、历史权重——它们分别是惩罚恢复速度、无信息跳点的先验概率、历史结果所占权重的老版本旋钮,如今同样的语义整体搬进了名为 apriori 的参数组,还补了一个新成员:容量比例惩罚,当支付金额逼近通道容量的某个比例时追加罚分。现役的通用字段还有两个:最多存储多少条支付结果,以及两次上调失败记录之间至少要间隔多久。结构上最值得关注的是模型开关:任务控制的概率估计器有 apriori 与 bimodal 两种,配置里的模型字段选择其一,参数组也随选择二选一填写——bimodal 在 proto 注释中明确标注为实验性,切过去之前应当清楚自己在做前沿试验。

每个旋钮的语义坐标

按源码注释翻译成人话:半衰期决定一次失败要”记仇”多久——惩罚对象恢复到五成成功率所需的时间越长,系统越不敢碰出过问题的节点和通道;跳点概率决定”新大陆”的待遇,值高更愿意去走从未见过的跳点,值低则龟缩在熟路;历史权重在零与一之间调节证据的话语权,一等于完全无视历史只看先验,零等于只看历史证据。bimodal 一侧的旋钮换了语义坐标系:节点权重决定同一节点其他通道的转发史在多大程度上影响当前判断(零等于只信这条通道的直接记录);尺度参数刻画统计上认为通道还剩流动性的量级,值大意味着假设余额分布均匀、值小假设通道很不平衡;衰减时间窗则决定旧证据多久被逐步翻篇。这些值没有普适答案,调它们的合理动机都来自你自己的支付画像:大额低频路由要谨慎,小额高频可以大胆探路。

修改配置前的三条纪律

第一,先取基线:任何调整前把当前配置留档,出问题才有回滚坐标;第二,理解 querymc 的体量:学习快照是逐通道逐方向的记录,路由节点上它可以非常庞大,导出前想清楚用途,它更多是给概率算法调试与长期失败审计用的,不是日常面板数据;第三,分清 resetmc 与 setmccfg 的层次:清记忆(reset)抹掉的是学到的结果,改策略(set)动的是未来的学习规则,支付长期失败却频繁 reset,往往说明问题在配置或网络条件本身,清空只会让系统反复交学费。学打分、调旋钮、清黑板是三个不同动作,面板上把它们混成一个按钮的系统,值得警惕。

风险提示:概率模型的参数调整会直接改变支付路由行为,错误配置可能推高失败率或造成手续费与时间成本浪费;实验性模型的行为边界仍在演进,重要路径变更请留观察期;本文不构成任何投资建议。