Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
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
57 changes: 57 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,60 @@
# 0.5.0 - Apr. 29, 2025
Besides numerous API improvements and bugfixes this fifth minor release notably adds support for sourcing chain and fee rate data from an Electrum backend, requesting channels via the [bLIP-51 / LSPS1](https://github.com/lightning/blips/blob/master/blip-0051.md) protocol, as well as experimental support for operating as a [bLIP-52 / LSPS2](https://github.com/lightning/blips/blob/master/blip-0052.md) service.

## Feature and API updates
- The `PaymentSuccessful` event now exposes a `payment_preimage` field (#392).
- The node now emits `PaymentForwarded` events for forwarded payments (#404).
- The ability to send custom TLVs as part of spontaneous payments has been added (#411).
- The ability to override the used fee rates for on-chain sending has been added (#434).
- The ability to set a description hash when creating a BOLT11 invoice has been added (#438).
- The ability to export pathfinding scores has been added (#458).
- The ability to request inbound channels from an LSP via the bLIP-51 / LSPS1 protocol has been added (#418).
- The `ChannelDetails` returned by `Node::list_channels` now exposes fields for the channel's SCIDs (#444).
- Lightning peer-to-peer gossip data is now being verified when syncing from a Bitcoin Core RPC backend (#428).
- The logging sub-system was reworked to allow logging to backends using the Rust [`log`](https://crates.io/crates/log) facade, as well as via a custom logger trait (#407, #450, #454).
- On-chain transactions are now added to the internal payment store and exposed via `Node::list_payments` (#432).
- Inbound announced channels are now rejected if not all requirements for operating as a forwarding node (set listening addresses and node alias) have been met (#467).
- Initial support for operating as an bLIP-52 / LSPS2 service has been added (#420).
- **Note**: bLIP-52 / LSPS2 support is considered 'alpha'/'experimental' and should *not* yet be used in production.
- The `Builder::set_entropy_seed_bytes` method now takes an array rather than a `Vec` (#493).
- The builder will now return a `NetworkMismatch` error in case of network switching (#485).
- The `Bolt11Jit` payment variant now exposes a field telling how much fee the LSP withheld (#497).
- The ability to disable syncing Lightning and on-chain wallets in the background has been added. If it is disabled, the user is responsible for running `Node::sync_wallets` manually (#508).
- The ability to configure the node's announcement addresses independently from the listening addresses has been added (#484).
- The ability to choose whether to honor the Anchor reserves when calling `send_all_to_address` has been added (#345).
- The ability to sync the node via an Electrum backend has been added (#486).

## Bug Fixes and Improvements
- When syncing from Bitcoin Core RPC, syncing mempool entries has been made more efficient (#410, #465).
- We now ensure the our configured fallback rates are used when the configured chain source would return huge bogus values during fee estimation (#430).
- We now re-enabled trying to bump Anchor channel transactions for trusted counterparties in the `ContentiousClaimable` case to reduce the risk of losing funds in certain edge cases (#461).
- An issue that would potentially have us panic on retrying the chain listening initialization when syncing from Bitcoin Core RPC has been fixed (#471).
- The `Node::remove_payment` now also removes the respective entry from the in-memory state, not only from the persisted payment store (#514).

## Compatibility Notes
- The filesystem logger was simplified and its default path changed to `ldk_node.log` in the configured storage directory (#394).
- The BDK dependency has been bumped to `bdk_wallet` v1.0 (#426).
- The LDK dependency has been bumped to `lightning` v0.1 (#426).
- The `rusqlite` dependency has been bumped to v0.31 (#403).
- The minimum supported Rust version (MSRV) has been bumped to v1.75 (#429).

In total, this release features 53 files changed, 6147 insertions, 1193 deletions, in 191 commits from 14 authors in alphabetical order:

- alexanderwiederin
- Andrei
- Artur Gontijo
- Ayla Greystone
- Elias Rohrer
- elnosh
- Enigbe Ochekliye
- Evan Feenstra
- G8XSU
- Joost Jager
- maan2003
- moisesPompilio
- Rob N
- Vincenzo Palazzo

# 0.4.3 - Jan. 23, 2025

This patch release fixes the broken Rust build resulting from `cargo` treating the recent v0.1.0 release of `lightning-liquidity` as API-compatible with the previous v0.1.0-alpha.6 release (even though it's not).
Expand Down
2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "ldk-node"
version = "0.5.0-rc.1"
version = "0.5.0"
authors = ["Elias Rohrer <dev@tnull.de>"]
homepage = "https://lightningdevkit.org/"
license = "MIT OR Apache-2.0"
Expand Down
2 changes: 1 addition & 1 deletion Package.swift
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

import PackageDescription

let tag = "v0.4.2"
let tag = "v0.5.0"
let checksum = "95ea5307eb3a99203e39cfa21d962bfe3e879e62429e8c7cdf5292cae5dc35cc"
let url = "https://github.com/lightningdevkit/ldk-node/releases/download/\(tag)/LDKNodeFFI.xcframework.zip"

Expand Down
2 changes: 1 addition & 1 deletion bindings/kotlin/ldk-node-android/gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@ org.gradle.jvmargs=-Xmx1536m
android.useAndroidX=true
android.enableJetifier=true
kotlin.code.style=official
libraryVersion=0.4.2
libraryVersion=0.5.0
2 changes: 1 addition & 1 deletion bindings/kotlin/ldk-node-jvm/gradle.properties
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
org.gradle.jvmargs=-Xmx1536m
kotlin.code.style=official
libraryVersion=0.4.2
libraryVersion=0.5.0
2 changes: 1 addition & 1 deletion bindings/python/pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "ldk_node"
version = "0.4.2"
version = "0.5.0"
authors = [
{ name="Elias Rohrer", email="dev@tnull.de" },
]
Expand Down
14 changes: 8 additions & 6 deletions scripts/uniffi_bindgen_generate_swift.sh
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
#!/bin/bash
set -eox pipefail

BINDINGS_DIR="./bindings/swift"
UNIFFI_BINDGEN_BIN="cargo run --manifest-path bindings/uniffi-bindgen/Cargo.toml"

Expand All @@ -8,19 +10,19 @@ $UNIFFI_BINDGEN_BIN generate bindings/ldk_node.udl --language swift -o "$BINDING
mkdir -p $BINDINGS_DIR

# Install rust target toolchains
rustup install 1.73.0
rustup component add rust-src --toolchain 1.73.0
rustup target add aarch64-apple-ios x86_64-apple-ios --toolchain 1.73.0
rustup target add aarch64-apple-ios-sim --toolchain 1.73.0
rustup target add aarch64-apple-darwin x86_64-apple-darwin --toolchain 1.73.0
rustup upgrade stable
rustup component add rust-src --toolchain stable
rustup target add aarch64-apple-ios x86_64-apple-ios --toolchain stable
rustup target add aarch64-apple-ios-sim --toolchain stable
rustup target add aarch64-apple-darwin x86_64-apple-darwin --toolchain stable

# Build rust target libs
cargo build --profile release-smaller --features uniffi || exit 1
cargo build --profile release-smaller --features uniffi --target x86_64-apple-darwin || exit 1
cargo build --profile release-smaller --features uniffi --target aarch64-apple-darwin || exit 1
cargo build --profile release-smaller --features uniffi --target x86_64-apple-ios || exit 1
cargo build --profile release-smaller --features uniffi --target aarch64-apple-ios || exit 1
cargo +1.73.0 build --release --features uniffi --target aarch64-apple-ios-sim || exit 1
cargo +stable build --release --features uniffi --target aarch64-apple-ios-sim || exit 1

# Combine ios-sim and apple-darwin (macos) libs for x86_64 and aarch64 (m1)
mkdir -p target/lipo-ios-sim/release-smaller || exit 1
Expand Down
Loading