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"
API Updates
ChannelManager::send_payment
now takes an explicitPaymentId
which is a
loose idempotency token. Seesend_payment
docs for more (#1761, #1826).- HTLCs bound for SCIDs from
ChannelManager::get_intercept_scid
are now
intercepted and can be forwarded manually over any channel (#1835, #1893). Confirm::get_relevant_txids
now returns aBlockHash
, expanding the set
of cases wheretransaction_unconfirmed
must 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 callChannelManager::abandon_payment
when you no longer wish to retry (#1761). ChannelManager::abandon_payment
docs were updated to note that the payment
may return to pending after a restart if no persistence occurs (#1907).Event::PaymentReceived
has been renamedEvent::PaymentClaimable
(#1891).Event
handling is now optionally async for Rust users (#1787).user_channel_id
is now au128
and random for inbound channels (#1790).- A new
ChannelReady
event is generated whenever a channel becomes ready to
be used, i.e., after both sides sent thechannel_ready
message (#1743). NetworkGraph
now 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
CustomOnionMessageHandler
rather than viaMaybeReadableArgs
(#1809). - Added a new util to generate an invoice with a custom hash (#1894) -
create_invoice_from_channelmanager_and_duration_since_epoch_with_payment_hash
Sign
ers are now by default re-derived usingKeysInterface
's newderive_channel_signer
rather thanread_chan_signer
(#1867).Confirm::transactions_confirmed
is now idempotent (#1861).ChannelManager::compute_inflight_htlcs
has been added to fetch in-flight
HTLCs for scoring. Note thatInvoicePayer
does this for you (#1830).- Added
PaymentClaimable::via_channel_id
(#1856). - Added the
node_id
(phantom or regular) to payment events (#1766). - Added the funding transaction
confirmations
toChannelDetails
(#1856). BlindedRoute
has been renamedBlindedPath
(#1918).- 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_updates
was added (#1834).- Signing for non-zero-fee anchor commitments is supported again (#1828).
- Several helpers for transaction matching and generation are now pub (#1839).
Bug Fixes
- 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
lightning-background-processor
future
feature were
fixed, including requirements doc corrections (#1843, #1845, #1851). - Some failure messages sent back when failing an HTLC were corrected (#1895).
rapid-gossip-sync
no 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).
Backwards Compatibility
- No
ChannelReady
events will be generated for previously existing channels,
including those which become ready after upgrading to 0.0.113 (#1743). - Once
UserConfig::accept_intercept_htlcs
is set, downgrades to LDK versions
prior to 0.0.113 are not supported (#1835). - Existing payments may see a
PaymentClaimable::user_channel_id
of 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 samePaymentId
(#1761).
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
- Devrandom
- Duncan Dean
- Elias Rohrer
- Gleb Naumenko
- Jeffrey Czyz
- John Cantrell
- Matt Corallo
- Tee8z
- Tobin C. Harding
- Tristan F
- Valentine Wallace
- Viktor Tigerström
- Wilmer Paulino
- benthecarman
- jurvis
- ssbright
Github Release Notes