Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
86 commits
Select commit Hold shift + click to select a range
76194c7
Upgrade `rand` to v0.9.2
tnull Oct 29, 2025
e173997
Use `os_rng` for seed/mnemonic generation
tnull Oct 29, 2025
7063f2c
No turbofishing for `user_channel_id`
tnull Oct 30, 2025
2c99aa0
Implement Display for UserChannelId
chuksys Oct 31, 2025
222321d
Configurable test store
joostjager Oct 15, 2025
14c1cff
Add async payment throughput benchmark
joostjager Oct 21, 2025
22ae4d2
Merge pull request #664 from joostjager/payment-benchmark
tnull Nov 3, 2025
eaad8f5
Merge pull request #690 from chuksys/impl-display-for-UserChannelId
tnull Nov 3, 2025
2c72e67
Use `[patch]` instead of switching all the dependencies
tnull Nov 5, 2025
fb41112
Elevate permissions of weekly `rustfmt` worflow
tnull Nov 5, 2025
bdb45a4
Merge pull request #694 from tnull/2025-11-use-patch
tnull Nov 5, 2025
dbfbf83
2025-11-05 automated rustfmt nightly
Nov 5, 2025
dcde77a
Merge pull request #695 from lightningdevkit/create-pull-request/patch
tnull Nov 5, 2025
cef82e4
Merge pull request #683 from tnull/2025-10-use-os-rng
tnull Nov 7, 2025
f5822a0
Introduce `InMemoryStore` for testing
tnull Nov 13, 2025
4c72541
Make `EventQueue` persistence `async`
tnull Nov 10, 2025
7c35234
Allow to set optional `RouteParametersConfig` in BOLT12 API
tnull Nov 13, 2025
996b58e
Add explicit type definition for ChannelDetails
chuksys Nov 13, 2025
ac948f6
Replace deprecated thread_rng with rng
chuksys Nov 13, 2025
8cf64ec
Merge pull request #697 from tnull/2025-11-async-event-persistence
tnull Nov 13, 2025
c4992bd
Merge pull request #704 from chuksys/replace-thread_rng-with-rng
tnull Nov 13, 2025
994e23c
Merge pull request #702 from tnull/2025-11-allow-to-set-routeparamete…
tnull Nov 14, 2025
1dd9827
Merge pull request #703 from chuksys/explicit-channel-details-close-c…
tnull Nov 14, 2025
20ffc9c
Implement `lazy` deletes for `VssStore`
tnull Oct 31, 2025
db246fc
f Restore delete_items on failed write
tnull Nov 17, 2025
c2b6b18
Add test for `lazy` deletion behavior
tnull Oct 31, 2025
be3cb48
Merge pull request #689 from tnull/2025-10-bump-to-ldk-2.0rc1
tnull Nov 17, 2025
3d5013b
Introduce schema versioning
tnull Nov 11, 2025
aa25497
Support client_trusts_lsp=true on ldk-node
martinsaposnic Sep 10, 2025
039aad4
Avoid explicit `panic`s in `handle_event`
tnull Nov 17, 2025
357ac29
Merge pull request #687 from martinsaposnic/client-trusts-lsp-2
tnull Nov 17, 2025
65f6f7b
Use obf. key as `aad` for `StorableBuilder` and obfuscate namespaces
tnull Aug 22, 2025
86239cf
Prefactor: move client construction out to `VssStore`
tnull Nov 11, 2025
a375179
Only use internal runtime in `VssStore`
tnull Nov 3, 2025
2af8103
Drop redundant `tokio::timeout`s for VSS IO
tnull Nov 6, 2025
37ee256
Bump retries and timeouts considerably
tnull Nov 10, 2025
37ed5c4
Introduce two separate `VssClient`s for async/blocking contexts
tnull Nov 10, 2025
20a93c5
Determine VSS schema version at startup
tnull Nov 12, 2025
8e5503c
Add test ensuring backwards compatibility with VSS schema `v0`
tnull Nov 13, 2025
d2153f2
Add simple test ensuring we can restart from a VSS backend
tnull Nov 13, 2025
90e9736
Merge pull request #627 from tnull/2025-08-upgrade-vss-encryption-obf…
tnull Nov 17, 2025
5f1a872
Prefactor: Move `ChainSource` creation before `Wallet` creation
tnull Nov 18, 2025
c0880d9
Try to poll chain tip on initialization
tnull Nov 18, 2025
f641845
Merge pull request #706 from tnull/2025-11-poll-tip-on-init
tnull Nov 18, 2025
0a860d4
feat: add configurable BIP39 mnemonic word counts
coreyphillips Nov 10, 2025
3034614
Merge pull request #699 from coreyphillips/feat/configurable-mnemonic…
tnull Nov 18, 2025
ba335eb
Add funding_txo to ChannelReady event
jkczyz Sep 22, 2025
c585275
Add SplicePending and SpiceFailed events
jkczyz Oct 22, 2025
16d43cd
Handle LdkEvent::FundingTransactionReadyForSigning
jkczyz Oct 23, 2025
14ae753
Refactor funds checking logic into reusable method
jkczyz Sep 22, 2025
1a576d0
Add Node::splice_in method
jkczyz Sep 22, 2025
04d1c39
Add Node::splice_out method
jkczyz Oct 23, 2025
a5c9cbf
Accept inbound splice attempts
jkczyz Oct 29, 2025
d9ebd34
Add an integration test for splicing
jkczyz Oct 23, 2025
204e04d
Test splicing in do_channel_full_cycle
jkczyz Oct 29, 2025
998c69e
Expand docs on `LSPS2ServiceConfig::client_trusts_lsp` field
tnull Nov 19, 2025
e9200ab
Merge pull request #677 from jkczyz/2025-10-splicing
tnull Nov 19, 2025
6410f92
Merge pull request #707 from tnull/2025-11-expand-client-trust-lsp-docs
tnull Nov 19, 2025
fe14855
Add draft changelog for LDK Node v0.7.0
tnull Nov 19, 2025
3ed1d13
Merge pull request #708 from tnull/2025-11-cut-0.7.0-rc.1
tnull Nov 19, 2025
31c589a
Replace docs.rs build `doc_auto_cfg` feature with `doc_cfg`
tnull Nov 19, 2025
f78a2a7
Merge pull request #711 from tnull/2025-11-drop-doc-auto-cfg-main
tnull Nov 19, 2025
c3215d5
2025-11-23 automated rustfmt nightly
Nov 23, 2025
37045f4
Merge pull request #714 from lightningdevkit/create-pull-request/patch
tnull Nov 24, 2025
10a8ce4
Move entropy-related types to new `entropy.rs` module
tnull Nov 18, 2025
9040097
Use `build_with_store` in `build_with_vss_store`
tnull Nov 18, 2025
c06b118
Introduce new mandatory `NodeEntropy` object
tnull Nov 18, 2025
8d312eb
Add a `docs.rs` CI job checking documentation builds
tnull Nov 24, 2025
c0b4933
Avoid listening port collision by letting OS assing ports
tnull Nov 25, 2025
9968684
Account for `check_closed_event` being moved on LDK `main`
tnull Nov 25, 2025
451afe5
Merge pull request #715 from tnull/2025-11-add-docsrs-ci-job
tnull Nov 25, 2025
2fb1df5
Add test asserting generated seed bytes can be read back
tnull Nov 26, 2025
0a36d7f
Merge pull request #720 from tnull/2025-11-fix-check-closed-event
tnull Nov 26, 2025
b4b2843
Merge pull request #718 from tnull/2025-11-avoid-port-collisions
tnull Nov 26, 2025
d231642
Update `ChannelDetails` docs for splicing
tnull Dec 1, 2025
89aff7e
Revert batched VSS `lazy` deletes, rather `spawn` them into the backg…
tnull Dec 2, 2025
650fd19
Merge pull request #721 from tnull/2025-12-update-channel-details-docs
tnull Dec 2, 2025
d0b8541
Merge pull request #722 from tnull/2025-12-spawn-lazy-deletes
tnull Dec 2, 2025
9dcc7b4
Merge pull request #716 from tnull/2025-11-introduce-mandatory-node-e…
tnull Dec 2, 2025
6baba6a
Update CHANGELOG for final v0.7.0 release
tnull Dec 3, 2025
ecb9538
Update Swift files for v0.7.0 build
tnull Dec 3, 2025
c9a0381
Update version numbers on `main` post v0.7.0 release
tnull Dec 3, 2025
198ff30
Merge pull request #725 from tnull/2025-12-update-main-post-v0.7.0-re…
tnull Dec 3, 2025
90f719d
feat: introduce and configure node with tiered KVStore
enigbe Oct 6, 2025
178b7a0
refactor: set retry config maximum delay in milliseconds
enigbe Oct 20, 2025
1e7bdbc
test: add comprehensive testing for TierStore
enigbe Oct 20, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 46 additions & 0 deletions .github/workflows/benchmarks.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
name: CI Checks - Benchmarks

on: [push, pull_request]

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
benchmark:
runs-on: ubuntu-latest
env:
TOOLCHAIN: stable
steps:
- name: Checkout source code
uses: actions/checkout@v3
- name: Install Rust toolchain
run: |
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile=minimal --default-toolchain stable
rustup override set stable
- name: Enable caching for bitcoind
id: cache-bitcoind
uses: actions/cache@v4
with:
path: bin/bitcoind-${{ runner.os }}-${{ runner.arch }}
key: bitcoind-${{ runner.os }}-${{ runner.arch }}
- name: Enable caching for electrs
id: cache-electrs
uses: actions/cache@v4
with:
path: bin/electrs-${{ runner.os }}-${{ runner.arch }}
key: electrs-${{ runner.os }}-${{ runner.arch }}
- name: Download bitcoind/electrs
if: "(steps.cache-bitcoind.outputs.cache-hit != 'true' || steps.cache-electrs.outputs.cache-hit != 'true')"
run: |
source ./scripts/download_bitcoind_electrs.sh
mkdir bin
mv "$BITCOIND_EXE" bin/bitcoind-${{ runner.os }}-${{ runner.arch }}
mv "$ELECTRS_EXE" bin/electrs-${{ runner.os }}-${{ runner.arch }}
- name: Set bitcoind/electrs environment variables
run: |
echo "BITCOIND_EXE=$( pwd )/bin/bitcoind-${{ runner.os }}-${{ runner.arch }}" >> "$GITHUB_ENV"
echo "ELECTRS_EXE=$( pwd )/bin/electrs-${{ runner.os }}-${{ runner.arch }}" >> "$GITHUB_ENV"
- name: Run benchmarks
run: |
cargo bench
5 changes: 5 additions & 0 deletions .github/workflows/cron-weekly-rustfmt.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,9 @@
name: Nightly rustfmt

permissions:
contents: write
pull-requests: write

on:
schedule:
- cron: "0 0 * * 0" # runs weekly on Sunday at 00:00
Expand Down
16 changes: 11 additions & 5 deletions .github/workflows/rust.yml
Original file line number Diff line number Diff line change
Expand Up @@ -72,11 +72,6 @@ jobs:
- name: Build with UniFFI support on Rust ${{ matrix.toolchain }}
if: matrix.build-uniffi
run: cargo build --features uniffi --verbose --color always
- name: Build documentation on Rust ${{ matrix.toolchain }}
if: "matrix.platform != 'windows-latest' || matrix.toolchain != '1.85.0'"
run: |
cargo doc --release --verbose --color always
cargo doc --document-private-items --verbose --color always
- name: Check release build on Rust ${{ matrix.toolchain }}
run: cargo check --release --verbose --color always
- name: Check release build with UniFFI support on Rust ${{ matrix.toolchain }}
Expand All @@ -90,3 +85,14 @@ jobs:
if: "matrix.platform != 'windows-latest' && matrix.build-uniffi"
run: |
RUSTFLAGS="--cfg no_download" cargo test --features uniffi

doc:
name: Documentation
runs-on: ubuntu-latest
env:
RUSTDOCFLAGS: -Dwarnings
steps:
- uses: actions/checkout@v6
- uses: dtolnay/rust-toolchain@nightly
- uses: dtolnay/install@cargo-docs-rs
- run: cargo docs-rs
67 changes: 67 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,70 @@
# 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_headers` method 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 `tokio` runtime, we now attempt to reuse the
outer runtime context for our main runtime. (#543)
- Specifying a `RouteParametersConfig` when 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_store` are now
required to implement LDK's `KVStore` as well as `KVStoreSync` interfaces.
(#633)
- The `generate_entropy_mnemonic` method 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 `bitcoind` RPC chain synchronization are now retried with an exponential back-off. (#588)
- Transactions evicted from the mempool are now correctly handled when syncing via `bitcoind` RPC/REST. (#605)
- When sourcing chain data from a Bitcoin Core backend, we now poll for the
current tip in `Builder::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 `MaximumFeeEstimate` was relaxed. (#629)
- The node now listens on all provided listening addresses. (#644)

## Compatibility Notes
- The minimum supported Rust version (MSRV) has been bumped to `rustc` v1.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-ng` crate v0.4. (#627)
- The `rust-bitcoin` dependency has been bumped to v0.32.7. (#656)
- The `uniffi` dependency has been bumped to v0.28.3. (#591)
- The `electrum-client` dependency 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

# 0.6.2 - Aug. 14, 2025
This patch release fixes a panic that could have been hit when syncing to a
TLS-enabled Electrum server, as well as some minor issues when shutting down
Expand Down
Loading
Loading