github ksedgwic/clboss v0.17.0-rc2

pre-release4 hours ago

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 listpeerchannels snapshot: the scid-to-peer table learns a channel from CLN's channel_state_changed notification 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 reported 0 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's summary object and falls back to the parts arrays for older responses (#338).
  • A missing xrebalance plugin 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-status gains an xrebalancer entry with the plugin state, the time of its last answer, the count of consecutive failed calls, and the last error.
  • cln-plugin-bounce applies config-file edits only after checking, against the restarted plugins, that every config-file option is still registered. An option a new build dropped leaves lightningd holding a stale configvar that makes any optioned plugin start or setconfig crash it until it restarts.
  • Upgrading note for development builds from between 0.16.x and this release: remove the persistent askrene layers they created (clboss and clboss-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 xrebalance plugin on CLN's askrene min-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 setconfig changes 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) and cln-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 xrebalance plugin, 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-ppm from your configuration; lightningd refuses 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, your clboss-xrebalance-* settings, and the CLN and plugin versions in reports.

See CHANGELOG.md for details.

Don't miss a new clboss release

NewReleases is sending notifications on new releases.