Skip to content

Releases: synonymdev/ldk-node

v0.7.0-rc.42

19 May 12:36
a7b1d60

Choose a tag to compare

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

18 May 17:08
75a7d15

Choose a tag to compare

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

17 May 16:05
40e2d18

Choose a tag to compare

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

12 May 15:36
c3593ae

Choose a tag to compare

Merge pull request #81 from synonymdev/codex-receive-address-index-apis

feat: Add receive address index APIs

v0.7.0-rc.38

11 May 23:17
d096cd3

Choose a tag to compare

Add receive address index APIs

v0.7.0-rc.37

28 Apr 20:27
52f73c4

Choose a tag to compare

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

19 Mar 20:36
ae38ead

Choose a tag to compare

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., UnknownVersion from 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-lightning to synonymdev/rust-lightning#0.2.2-accept-stale-monitors.

v0.7.0-rc.35

19 Mar 10:34
db5ce1b

Choose a tag to compare

Changes since rc.34

  • Fixed HTLC timeout force-close during stale monitor recovery. The healing keysend
    created HTLCs with a stale cltv_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
    CounterpartyCommitmentSecrets store was not reset when force-syncing the
    monitor's update_id, causing provide_secret() to fail after a few commitment
    round-trips, triggering a ChannelMonitorUpdateStatus mode mismatch panic.
    (rust-lightning fork change)

v0.7.0-rc.34

18 Mar 22:21
153ecbe

Choose a tag to compare

Changes since rc.33

  • Fixed native crash (SIGABRT) during stale channel monitor recovery. The
    CounterpartyCommitmentSecrets store was not reset when force-syncing the
    monitor's update_id, causing provide_secret() to fail validation after
    a few commitment round-trips. The failed update triggered a
    ChannelMonitorUpdateStatus mode mismatch panic in the ChannelManager.
    Fix: reset the secrets store in force_set_latest_update_id so new secrets
    build a fresh, consistent tree. (rust-lightning fork change)
  • Added set_accept_stale_channel_monitors builder 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::DangerousValue variant to distinguish stale channel monitor failures
    from other ReadFailed causes, 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

12 Mar 09:04
1531af7

Choose a tag to compare

Changes since rc.32

  • Added connection_timeout_secs field to ElectrumSyncConfig (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