LDK v0.0.120: Important Bug Fixes, Full Blinded Paths Support & More
LDK/rust-lightning is a highly performant and flexible implementation of the Lightning Network protocol.
- "LDK 0.0.120 is here," announced the Lightning Dev Kit team.
- This release includes important bugfixes, full support for blinded paths, and better BOLT12 payment reliability and privacy, among other things.
- v0.0.120 fixes a denial-of-service vulnerability which is reachable from untrusted input from peers if the
UserConfig::manually_accept_inbound_channelsoption is enabled. - In total, this release features 67 files changed, 3016 insertions, 2473
deletions in 79 commits from 9 authors, in alphabetical order: Elias Rohrer, Jeffrey Czyz, José A.P, Matt Corallo, Tibo-lg, Valentine Wallace, benthecarman, optout, shuoer86.
Release notes
API Updates
- The
PeerManagerbound onUtxoLookupwas removed entirely. This enables use ofUtxoLookupin cases broken in 0.0.119 by #2773 (#2822). - LDK now exposes and fully implements the route blinding feature (#2812).
- The
lightning-transaction-synccrate no longer relies on system time
without thetimefeature (#2799, #2817). lightning::onion_message's module layout has changed (#2821).Event::ChannelClosednow includes thechannel_funding_txo(#2800).CandidateRouteHopvariants were destructured into individual structs,
hiding some fields which were not generally consumable (#2802).
Bug Fixes
- Fixed a rare issue where
lightning-net-tokiomay not fully flush its send buffer, leading to connection hangs (#2832). - Fixed a panic which may occur when connecting to a peer if we opened a second channel with that peer while they were disconnected (#2808).
- Retries for a payment which previously failed in a blinded path will now always use an alternative blinded path (#2818).
Feature'sEqandHashimplementation now ignore dummy bytes (#2808).- Some missing
DiscardFundingorChannelClosedevents are now generated in rare funding-related failures (#2809). - Fixed a privacy issue in blinded path generation where the real
cltv_expiry_deltawould be exposed to senders (#2831).
Security
- A peer that sent an
open_channelmessage with thechannel_typefield
unfilled would trigger a reachableunwrapsince LDK 0.0.117 (#2808). - In protocols where a funding output is shared with our counterparty before it is given to LDK, a malicious peer could have caused a reachable panic by reusing the same funding info in (#2809).