0.7.0 - Dec. 3, 2025
This seventh minor release introduces numerous new features, bug fixes, and API improvements. In particular, it adds support for channel Splicing, Async Payments, as well as sourcing chain data from a Bitcoin Core REST backend.
Feature and API updates
- Experimental support for channel splicing has been added. (#677)
- Note: Splicing-related transactions might currently still get misclassified in the payment store.
- Support for serving and paying static invoices for Async Payments has been added. (#621, #632)
- Sourcing chain data via Bitcoin Core's REST interface is now supported. (#526)
- A new
Builder::set_chain_source_esplora_with_headersmethod has been added
that allows specifying headers to be sent to the Esplora backend. (#596) - The ability to import and merge pathfinding scores has been added. (#449)
- Passing a custom pre-image when sending spontaneous payments is now supported. (#549)
- When running in the context of a
tokioruntime, we now attempt to reuse the
outer runtime context for our main runtime. (#543) - Specifying a
RouteParametersConfigwhen paying BOLT12 offers or sending refunds is now supported. (#702) - Liquidity service data is now persisted across restarts. (#650)
- The bLIP-52/LSPS2 service now supports the 'client-trusts-LSP' model. (#687)
- The manual-claiming flow is now also supported for JIT invoices. (#608)
- Any key-value stores provided to
Builder::build_with_storeare now
required to implement LDK'sKVStoreas well asKVStoreSyncinterfaces.
(#633) - The
generate_entropy_mnemonicmethod now supports specifying a word count. (#699)
Bug Fixes and Improvements
- Robustness of the shutdown procedure has been improved, minimizing risk of blocking during
Node::stop. (#592, #612, #619, #622) - The VSS storage backend now supports 'lazy' deletes, allowing it to avoid
unnecessarily waiting on remote calls for certain operations. (#689, #722) - The encryption and obfuscation scheme used when storing data against a VSS backend has been improved. (#627)
- Transient errors during
bitcoindRPC chain synchronization are now retried with an exponential back-off. (#588) - Transactions evicted from the mempool are now correctly handled when syncing via
bitcoindRPC/REST. (#605) - When sourcing chain data from a Bitcoin Core backend, we now poll for the
current tip inBuilder::build, avoiding re-validating the chain from
genesis on first startup. (#706) - A bug that could result in the node hanging on shutdown when sourcing chain data from a Bitcoin Core backend has been fixed. (#682)
- Unnecessary fee estimation calls to Bitcoin Core RPC are now avoided. (#631)
- The node now persists differential updates instead of re-persisting full channel monitor, reducing IO load. (#661)
- The previously rather restrictive
MaximumFeeEstimatewas relaxed. (#629) - The node now listens on all provided listening addresses. (#644)
Compatibility Notes
- The minimum supported Rust version (MSRV) has been bumped to
rustcv1.85 (#606) - The LDK dependency has been bumped to v0.2.
- The BDK dependency has been bumped to v2.2. (#656)
- The VSS client dependency has been updated to utilize the new
vss-client-ngcrate v0.4. (#627) - The
rust-bitcoindependency has been bumped to v0.32.7. (#656) - The
uniffidependency has been bumped to v0.28.3. (#591) - The
electrum-clientdependency has been bumped to v0.24.0. (#602) - For Kotlin/Android builds we now require 16kb page sizes, ensuring Play Store compatibility. (#625)
In total, this release features 77 files changed, 12350 insertions, 5708
deletions in 264 commits from 14 authors in alphabetical order:
- aagbotemi
- alexanderwiederin
- Andrei
- Artur Gontijo
- benthecarman
- Chuks Agbakuru
- coreyphillips
- Elias Rohrer
- Enigbe
- Joost Jager
- Jeffrey Czyz
- moisesPomilio
- Martin Saposnic
- tosynthegeek
Please note the attached LDKNodeFFI.xcframework archive is intended to be used via SwiftPM.