Releases: synonymdev/ldk-node
Releases · synonymdev/ldk-node
v0.7.0-rc.42
Changes since v0.7.0-rc.41:
- Restored channel peer recovery remains retryable after transient peer-store persistence failures, so later recovery passes can persist missing peers instead of skipping an in-memory-only entry.
- Recovery now collects missing graph peers before peer-store writes, avoiding network graph read-lock blocking during synchronous persistence.
- Explicit disconnects and last-channel closes suppress RGS peer re-persistence for the current node instance; after restart, active restored channels may persist peers again from the graph.
- Rebuilt Swift, Kotlin, and Python binding artifacts for 0.7.0-rc.42.
v0.7.0-rc.41
Changes since v0.7.0-rc.40
- Fixed restored RGS nodes failing to reconnect announced channel counterparties when the graph was empty during initial startup recovery. Peer persistence is retried after Rapid Gossip Sync updates the graph.
- Preserved explicit peer removal during RGS recovery: manual disconnects and last-channel closes now suppress automatic RGS peer re-persistence during the current node instance, including races with an in-flight RGS recovery pass.
- Updated Rust, Kotlin Android/JVM, Python, and Swift package metadata to 0.7.0-rc.41.
- Rebuilt native binding artifacts and Swift xcframework archive.
v0.7.0-rc.40
Restores announced channel counterparties into the peer store at startup so restored channels can reconnect after wallet recovery. Rebuilt Kotlin and Swift bindings.
v0.7.0-rc.39
Merge pull request #81 from synonymdev/codex-receive-address-index-apis feat: Add receive address index APIs
v0.7.0-rc.38
Add receive address index APIs
v0.7.0-rc.37
Adds probe correlation support to the bindings.
- Exposes ProbeHandle values from the BOLT11 and spontaneous send_probes APIs.
- Emits ProbeSuccessful and ProbeFailed events for matching dispatched probe IDs.
- Updates generated Swift, Kotlin, Python bindings and native libraries for v0.7.0-rc.37.
v0.7.0-rc.36
Changes since rc.35
- Fixed orphaned channel migration blocking node startup when the existing monitor
in the KV store can't be deserialized (e.g.,UnknownVersionfrom a newer LDK
version). The migration now skips writing and lets the node start normally,
preserving the existing monitor data. - Switched rust-lightning fork from
ovitrif/rust-lightningtosynonymdev/rust-lightning#0.2.2-accept-stale-monitors.
v0.7.0-rc.35
Changes since rc.34
- Fixed HTLC timeout force-close during stale monitor recovery. The healing keysend
created HTLCs with a stalecltv_expiry(based on the ChannelManager's outdated
best block height for users offline >24h). When chain sync caught up, LDK
force-closed the channel (HTLCsTimedOut). Fix: sync the chain tip before sending
healing payments so HTLCs get a valid CLTV expiry. If sync fails, skip the keysend
to avoid the stale-CLTV force-close. - Fixed native crash (SIGABRT) during stale channel monitor recovery. The
CounterpartyCommitmentSecretsstore was not reset when force-syncing the
monitor'supdate_id, causingprovide_secret()to fail after a few commitment
round-trips, triggering aChannelMonitorUpdateStatusmode mismatch panic.
(rust-lightning fork change)
v0.7.0-rc.34
Changes since rc.33
- Fixed native crash (SIGABRT) during stale channel monitor recovery. The
CounterpartyCommitmentSecretsstore was not reset when force-syncing the
monitor'supdate_id, causingprovide_secret()to fail validation after
a few commitment round-trips. The failed update triggered a
ChannelMonitorUpdateStatusmode mismatch panic in the ChannelManager.
Fix: reset the secrets store inforce_set_latest_update_idso new secrets
build a fresh, consistent tree. (rust-lightning fork change) - Added
set_accept_stale_channel_monitorsbuilder API for one-time recovery when channel
monitors are stale compared to the channel manager (e.g., after migration overwrote newer
monitors with stale backup data). Defers chain sync and sends probes to heal monitors via
commitment round-trips. - Added
BuildError::DangerousValuevariant to distinguish stale channel monitor failures
from otherReadFailedcauses, enabling precise app-side recovery logic. - Depends on patched rust-lightning fork (
ovitrif/rust-lightning#0.2.2-accept-stale-monitors-v2).
v0.7.0-rc.33
Changes since rc.32
- Added
connection_timeout_secsfield toElectrumSyncConfig(default: 10 s) to prevent thread pool exhaustion from dead Electrum sockets - Fixed FS→KV channel data migration blindly overwriting newer state (monitors and channel manager)
- Migration read/deserialization failures now fail-closed to prevent silent data loss
- Reworded changelog and regenerated bindings