LDK v0.0.113: API Updates and Bug Fixes
Lightning Development Kit (LDK) is a library that allows you to build a lightning node without worrying about implementing low-level lightning logic correctly. LDK is based on Rust-Lightning, a full-featured but also incredibly flexible lightning implementation, allowing you to decide how to use it.
0.0.113 - Dec 16, 2022 - "Big Movement Intercepted"
ChannelManager::send_paymentnow takes an explicit
PaymentIdwhich is a
loose idempotency token. See
send_paymentdocs for more (#1761, #1826).
- HTLCs bound for SCIDs from
intercepted and can be forwarded manually over any channel (#1835, #1893).
Confirm::get_relevant_txidsnow returns a
BlockHash, expanding the set
of cases where
transaction_unconfirmedmust be called, see docs (#1796).
- Pending outbound payments are no longer automatically timed-out a few blocks
after failure. Thus, in order to avoid leaking memory, you MUST call
ChannelManager::abandon_paymentwhen you no longer wish to retry (#1761).
ChannelManager::abandon_paymentdocs were updated to note that the payment
may return to pending after a restart if no persistence occurs (#1907).
Event::PaymentReceivedhas been renamed
Eventhandling is now optionally async for Rust users (#1787).
user_channel_idis now a
u128and random for inbound channels (#1790).
- A new
ChannelReadyevent is generated whenever a channel becomes ready to
be used, i.e., after both sides sent the
NetworkGraphnow prunes channels where either node is offline for 2 weeks
and refuses to accept re-announcements of pruned channels (#1735).
- Onion messages are now read in
CustomOnionMessageHandlerrather than via
- Added a new util to generate an invoice with a custom hash (#1894) -
Signers are now by default re-derived using
Confirm::transactions_confirmedis now idempotent (#1861).
ChannelManager::compute_inflight_htlcshas been added to fetch in-flight
HTLCs for scoring. Note that
InvoicePayerdoes this for you (#1830).
- Added the
node_id(phantom or regular) to payment events (#1766).
- Added the funding transaction
BlindedRoutehas been renamed
- Support for the BOLT 4 "legacy" onion format has been removed, in line with
its removal in the spec and vanishingly rare use (#1413).
ChainMonitor::list_pending_monitor_updateswas added (#1834).
- Signing for non-zero-fee anchor commitments is supported again (#1828).
- Several helpers for transaction matching and generation are now pub (#1839).
- Fixed a rare race where a crash may result in a pending HTLC not being
failed backwards, leading to a force-closure by our counterparty (#1857).
- Avoid incorrectly assigning a lower-bound on channel liquidity when routing
fails due to a closed channel earlier in the path (#1817).
- If a counterparty increases the channel fee, but not enough per our own fee
estimator, we no longer force-close the channel (#1852).
- Several bugs in the
fixed, including requirements doc corrections (#1843, #1845, #1851).
- Some failure messages sent back when failing an HTLC were corrected (#1895).
rapid-gossip-syncno longer errors if an update is applied duplicatively
or in rare cases when the graph is updated from payment failures (#1833).
- Sending onion messages to a blinded path in which we're the introduction
node no longer fails (#1791).
ChannelReadyevents will be generated for previously existing channels,
including those which become ready after upgrading to 0.0.113 (#1743).
UserConfig::accept_intercept_htlcsis set, downgrades to LDK versions
prior to 0.0.113 are not supported (#1835).
- Existing payments may see a
PaymentClaimable::user_channel_idof 0 (#1856)
- When downgrading to a version of LDK prior to 0.0.113 when there are
resolved payments waiting for a small timeout, the payments may not be
removed, preventing payments with the same
In total, this release features 76 files changed, 11639 insertions, 6067
deletions in 210 commits from 18 authors, in alphabetical order:
- Antoine Riard
- Arik Sosman
- Duncan Dean
- Elias Rohrer
- Gleb Naumenko
- Jeffrey Czyz
- John Cantrell
- Matt Corallo
- Tobin C. Harding
- Tristan F
- Valentine Wallace
- Viktor Tigerström
- Wilmer Paulino
Github Release Notes