闪电节点一旦走到强制关闭、HTLC 到期、惩罚交易广播这些环节,“上链”就不再是业务动作而是生死计时。LND 把这一族链上支出统一交给清扫器(sweeper)处理,而 sweeper 配置组决定它的出价纪律:什么时候打包、最多肯花多少费率、不着急的输出用什么目标确认数、各类输出的手续费预算怎么分。
一、清扫器和普通发币不是一回事
普通钱包付款可以等、可以挑时段。清扫器的输出却大多带截止期:第一层 HTLC 超时不花就永远归对方,单边关闭后的 to_local 输出可能被对方的旧状态反超。所以 sweeper 的设计目标是”在截止期前确定上链”,费率只是约束而不是省钱对象。理解这一定位,才能理解它为什么默认值看起来一点也不”精打细算”。
二、两个直方可调的核心参数
sweeper.maxfeerate 是清扫器允许的费率上限,单位 sat/vB。LND v0.19.0-beta 的默认值为 1000 sat/vB,配置校验器同时规定它不得低于 100、不得高于 10000——想设到三位数以下会被启动时直接拒绝。帮助文本里那句警告值得原样记住:设得过低会导致交易赶不上确认、HTLC 过期,可能直接损失资金。配置层还有一行 sweeper.batchwindowduration(默认 30 秒)用于把多个待清扫输入攒进一笔交易摊薄手续费,该选项在当前版本已标注为弃用且隐藏,新部署不必再调,老部署看到它也不必惊讶。
三、不着急的输出:nodeadlineconftarget
不是所有清扫都有死线。第二层(无到期风险)的输出属于”非时间敏感”,清扫器对它们用 sweeper.nodeadlineconftarget 这个独立的确认目标,默认 1008 块(一周量级),校验下限是 144 块(一天)。这个参数给了运营者一个安全的省钱阀:急的输出照急的办,不急的挂进低费率队列。想加速资金回收可以把数值往小调,但记住它影响面是所有无截止期清扫,调错方向省下的费率远小于暴露的风险。
四、预算组:按输出种类分钱包
sweeper.budget 子组把费用预算按输出类型拆开:tolocal(单边关闭的自有资金输出)及其比例 tolocalratio(默认 0.5)、anchorcpfp 及其 anchorcpfpratio(默认 0.5,用于给锚定输出做 CPFP 加速)、deadlinehtlc 与 nodeadlinehtlc 及各自默认 0.5 的比例。语义是”从该输出自身价值中划出预算付自己的手续费”——绝对额与比例同时设置时,比例算出的值被绝对额封顶,最终费率再被 sweeper.maxfeerate 二次封顶。对托管型节点,这是避免”为一笔小输出烧掉不成比例费用”的主要旋钮;对自有资金为主的小节点,保持默认通常更省心。
五、验证链与启动失败排查
LND v0.19.0-beta 的校验顺序是:批窗口不得为负、maxfeerate 在 100 到 10000 之间、nodeadlineconftarget 不小于 144,然后才进预算组自身的校验;任何一项不过,节点启动直接失败并在日志里点名是哪条规则。升级 LND 大版本后突然起不来,先回滚 sweeper 相关手改项再怀疑数据库;预算比例的语义(谁被谁封顶)跨版本调整过,迁移时不要只搬数值不读当版说明。
六、场景化建议与红线
单人自托管:全部保持默认即可,sweeper 只在异常关闭路径出场。路由业务繁忙:重点核查 maxfeerate 与你所在时期的合理链上费率的相对位置,长期贴着默认上限运行说明配置已经落后于市场,需要按当前费率水位复核。资金托管服务:预算组逐项按输出面值上限设绝对额,防止清算风暴期费率集体失控。红线只有一条:任何让急件走低费率的组合(拉高 nodeadlineconftarget 类参数看似无害,但误把急件归入不急队列的策略改动都是危险的)都应在测试网通道演练过再上生产。
风险提示:本文所述默认值与校验规则以 LND v0.19.0-beta 源码与示例配置文件核对为准,版本迭代可能调整取值范围与语义。强制关闭与清扫涉及真实资金与截止期,测试网演练不能替代对当前版本的参数核对,本文不构成任何投资建议。
发表评论
还没有评论,来说两句吧。
评论区为展示样式,提交不会被处理。