Second release candidate for v0.17.0. Testers wanted: the rebalancer is new, so please run it on a node you watch and report what you see. Not yet recommended for unattended production use.
Changes since rc1
- Earnings attribution no longer misses rebalance parts and forwards through a channel younger than the last
listpeerchannelssnapshot: the scid-to-peer table learns a channel from CLN'schannel_state_changednotification as soon as it carries a short channel id, and a part with one end still unknown is attributed to the end that is known (#337). - The
XRebalancer: transfer ...log line reported0 part(s), no pending note, and no closest failure with xrebalance plugin v0.4.4 or later, which returns the per-part arrays only on request. It now reads the plugin'ssummaryobject and falls back to the parts arrays for older responses (#338). - A missing
xrebalanceplugin is reported instead of logged away: the first cycle that finds it not loaded logs a warning naming the remedies, repeated once an hour while it stays missing, and the first cycle it answers again logs that it is back.clboss-statusgains anxrebalancerentry with the plugin state, the time of its last answer, the count of consecutive failed calls, and the last error. cln-plugin-bounceapplies config-file edits only after checking, against the restarted plugins, that every config-file option is still registered. An option a new build dropped leaveslightningdholding a stale configvar that makes any optionedplugin startorsetconfigcrash it until it restarts.- Upgrading note for development builds from between 0.16.x and this release: remove the persistent
askrenelayers they created (clbossandclboss-xrebalance); see "Upgrading from 0.16.x" in CHANGELOG.md. Release builds of 0.16.x created no layers. - Tests for the CLN version gate and the dynamic-option handler; documentation fixes.
What changed in v0.17.0
- Rebalancing moves to a new engine, xrebalance: circular rebalances planned from each peer's earnings record and executed through the external
xrebalanceplugin on CLN'saskrenemin-cost-flow router. Cycles run on a Poisson clock and on demand when a forward drains a channel. Pricing is strict: a cycle's fee budget comes from what the involved peers actually earn. - The built-in rebalancer (JIT, earnings, initial,
FundsMover,clboss-movefunds) is removed. JIT rebalancing is removed deliberately: holding an incoming HTLC while a rebalance runs delays the whole payment path; demand-triggered cycles cover the same need without holding HTLCs. If you relied on JIT rebalancing, please open an issue describing your case. - Channel-open candidates are ranked by their earnings track record (keepers first, unknowns next, underperformers last); among unknowns, peers advertising splicing are preferred.
clboss-track-record <nodeid>shows the verdict. - Many options are dynamic:
lightning-cli setconfigchanges them without a restart, and bad values are rejected instead of silently ignored. - New contrib tools:
clboss-xrebalance-view(the rebalancer's view of your node and the request the next cycle would send) andcln-plugin-bounce.
Requirements and upgrading from 0.16.x
- Core Lightning v26.04 or later (v25.09 is the hard floor; below v26.04 CLBOSS starts with a warning).
- Install the
xrebalanceplugin, v0.4.5 or later, and load it alongside CLBOSS -- see "The xrebalance plugin" under Installing in the README. Without it CLBOSS runs everything except rebalancing. - Remove
clboss-max-rebalance-fee-ppmfrom your configuration;lightningdrefuses to start on an unknown option. - Nothing else to set; the new
clboss-xrebalance-*options default to values run on live nodes.
Reporting
- The
XRebalancer:log lines describe every cycle (candidates, floor, request, and the transfer summary). Please include them, yourclboss-xrebalance-*settings, and the CLN and plugin versions in reports.
See CHANGELOG.md for details.