Core Lightning v23.11: Dual Funding Cross-Compatibility with Eclair, More Powerful RPCs & More

"After the huge v23.08 release, this update is a bit smaller in scope and mainly offers improvements and follow-ups. Nonetheless, it includes some noteworthy features that we are excited to share with you."

Core Lightning v23.11: Dual Funding Cross-Compatibility with Eclair,  More Powerful RPCs & More
  • "Today, we welcome the latest Core Lightning release, v23.11, codenamed Bitcoin Orangepaper (courtesy of Shahana Farooqui)."
"We want to give a shout out to the contributors (a total of 29 for the v23.11 release) who continue to help us improve CLN with every update. We are grateful for your support; your dedication and feedback made the new release possible."

What's new

  • Dual funding reached compatibility level: After a long journey, the dual funding process finally reached cross implementation compatibility.
    • "Lisa Neigut's recent contributions to the implementation of dual funding in Core Lightning allow the funding process to continue in the event of a temporary connection loss. This was the final step for Core Lightning and Eclair to achieve cross-compatibility."
  • RPC command updates: This release has some exciting additions and updates for the Core Lightning API, including a much more powerful check command and a brand new restore command.
  • Core Lightning for developers: Core Lightning’s various interfaces keep growing and runes got an exciting new field. We also got some new options!
    • "To enable developer functionality, one now simply needs to start lightningd with the --developer runtime variable. This is a huge simplification for developers."
  • "Core Lightning now enables large channels by default. This release sets the indicators by default enabling “wumbology for all”. Users can still disable wumbo channels by setting the --large-channels=false option."
  • "Finally, this release also adds the ability to create invoices that include a fallback P2TR address. This way an invoice can also be paid on-chain, for example, when there is not enough inbound liquidity at the time of payment.

Highlights for Users

  • The check command just got more powerful. Instead of only checking the parameters of a command, it will do all checks up to the point where something in the system would need to be altered now.
  • Control all the runes! Runes got an additional restriction field per for even more powerful access control. This also comes with a new field last_used for the showrunes command.
  • Users can now verify the validity of their existing emergency backups using the decode command.
  • When the new config option invoices-onchain-fallback is set, Core-Lightning automatically adds a taproot fallback address to all invoices produced by invoice. This allows for onchain payments as a fallback mechanism.

Highlights for the Network

  • Wumbology for all! The configuration option large-channels is now set by default.
  • The dual-funding process stores the state when sending commitment_signed now. This allows to continue the funding process after a temporary connection loss.
  • A new flag --commit-fee-offset allows to set an offset that can potentially reduce disagreements on feerate updates.
  • Plugins can now allow even unknown messages by registration and also are allowed sending them.
  • Some stability improvements and bugfixes regarding splices.
  • A whole lot of cleanups to stay on track with small specification changes. This adds additional stability and reduces disconnects.

Highlights for Developers

  • Wait a second: The wait and pagination api got extended, one can now also wait for listsendpays and listforwards.
  • A new recover command can now be used to recover an unused node from a hsmsecret just as the --recover flag would do. This currently only works for sqlite3 backends.
  • Ever wondered how much space a plugin occupies in your database? The new datastoreusage command will tell you.
  • The rust bindings got some more coverage.
  • Core-Lightning can no longer be build with --developer-enabled. To enable developer features use ./configure --enable-debugbuild and set the config option --developer instead.

Full Blog Post / Archive
GitHub Repo