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."
- "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 newrestore
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."
- "To enable developer functionality, one now simply needs to start
- "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 fieldlast_used
for theshowrunes
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 byinvoice
. 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 forlistsendpays
andlistforwards
. - 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 forsqlite3
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.