Core Lightning v24.11: BOLT12 by Default, XPAY, Gossip Enhancements & More

Core Lightning is a lightweight, highly customizable and standard compliant implementation of the Lightning Network protocol. The latest version includes updates to enhance the user experience, including refinements to BOLT12 functionality, the new XPAY plugin, improved logging clarity, and more.

Core Lightning v24.11: BOLT12 by Default, XPAY, Gossip Enhancements & More
  • "After a bit of a delay, we are pleased to announce the 24.11 release of Core Lightning, affectionately named by Dusty Daemon. This release comes packed with exciting updates, including enhancements to payments, network performance, and developer tooling," announced the project.
  • This version comes with the new XPAY plugin designed to optimize payments and improve routing accuracy, BOLT12 offers send and receive enabled by default, improvements to the autoclean plugin, cln-grpc plugin enabled by default, gossip enhancements for the network, and much more.
"This release would not have been possible without the contributions of 28 dedicated developers, including four new contributors: Michael Cho, Lakshya Singh, Emmanuel Ferdman, and alfredo-toledano. A big thank you goes out to these developers and to everyone who made v24.11 a reality," was stated in a blog post.
  • Overall, in 2024, the project had 1,706 commits from 106 contributors.

What's new

Highlights for Users

  • xpay is a new experimental payment plugin built on askrene for advanced routing. It has been completely rewritten on top of askrene, a plugin that provides advanced routing advice for payments. The two plugins work in tandem: xpay communicates the outcomes of payment attempts to askrene, allowing it to learn and optimize over time.
    • Additionally, xpay remembers and retries successful payment paths, improving system reliability.
    • The essential development was carried out by @Lagrang3 who designed and refined the minimum-cost-flow solver that serves as the core of askrene.
"For reckless souls, xpay-handle-pay can be set to true (even at runtime, using setconfig) to have xpay take over the simple variants of pay."
  • BOLT12 send and receive are now default, following their September inclusion in BOLT specs.
  • For large nodes:
    • The autoclean plugin would make nodes freeze for 30 seconds at a time when had a lot of work to do: it's now kinder and gentler.
    • gossipd and connectd queues are no longer slow (it was all gossipd's fault, be far too chatty).
    • listpays now takes start and limit parameters to speed it up if you only want recent payments.
  • hsmtool generatehsm can now accept all the parameters on the command line.
  • Fixed several critical bugs, including one where extended downtime prevented fully resolving unilateral closes and delayed fund returns to our wallet.
  • Fixed pyln-client , which accidentally broke compatibility with older CLN versions in v25.08.

Highlights for Developers

  • cln-grpc , a Rust GRPC plugin to provide a GRPC interface, is now enabled by default with a new grpc-host option binding to localhost.
    • Nearly all JSON interfaces are supported, thanks to @daywalker90 for quickly tracking them.
  • RPC documentation improvements: now includes generated, accurate input and output examples.
  • A new dev-splice command from @ddustin allows splice scripts for complex actions, like splicing multiple channels. It enables developers to handle complex channel splicing for greater flexibility and better liquidity.
  • Improved tracing infrastructure, including tracing across database accesses.
  • exposesecret call. If explicitly enabled, provides a way to back up HSM (hardware security module) secrets via the RPC API, allowing for secure backups of critical data.
  • libplugin is made more uniform: all routines now have a struct command context to use, streamlining the development process.

Highlights for the Network

  • Significant improvements to gossiping. "We try to stay connected to 10 nodes (see autoconnect-seeker-peers , picking random ones if we need to. Every hour we ask one peer for all its gossip, and we always send out our own gossip updates to up to 50 peers. This should help everyone stay up-to-date with what's happening in the network."
  • Connectd will connect faster on startup, maintaining up to 10 outgoing connection attempts in parallel, thus ensuring quicker setup for new nodes and better network scalability.

Blog Post / Archive
GitHub Repo