v0.0.115
object b73473579e21a62327f663723ef46920042988bf
authorMatt Corallo <git@bluematt.me>
Tue, 25 Apr 2023 00:21:13 +0000 (00:21 +0000)
0.0.115 - Apr 24, 2023 - "Rebroadcast the Bugfixes"

API Updates
===========

 * The MSRV of the main LDK crates has been increased to 1.48 (#2107).
 * Attempting to claim an un-expired payment on a channel which has closed no
   longer fails. The expiry time of payments is exposed via
   `PaymentClaimable::claim_deadline` (#2148).
 * `payment_metadata` is now supported in `Invoice` deserialization, sending,
   and receiving (via a new `RecipientOnionFields` struct) (#2139, #2127).
 * `Event::PaymentFailed` now exposes a failure reason (#2142).
 * BOLT12 messages now support stateless generation and validation (#1989).
 * The `NetworkGraph` is now pruned of stale data after RGS processing (#2161).
 * Max inbound HTLCs in-flight can be changed in the handshake config (#2138).
 * `lightning-transaction-sync` feature `esplora-async-https` was added (#2085).
 * A `ChannelPending` event is now emitted after the initial handshake (#2098).
 * `PaymentForwarded::outbound_amount_forwarded_msat` was added (#2136).
 * `ChannelManager::list_channels_by_counterparty` was added (#2079).
 * `ChannelDetails::feerate_sat_per_1000_weight` was added (#2094).
 * `Invoice::fallback_addresses` was added to fetch `bitcoin` types (#2023).
 * The offer/refund description is now exposed in `Invoice{,Request}` (#2206).

Backwards Compatibility
=======================

 * Payments sent with the legacy `*_with_route` methods on LDK 0.0.115+ will no
   longer be retryable via the LDK 0.0.114- `retry_payment` method (#2139).
 * `Event::PaymentPathFailed::retry` was removed and will always be `None` for
    payments initiated on 0.0.115 which fail on an earlier version (#2063).
 * `Route`s and `PaymentParameters` with blinded path information will not be
   readable on prior versions of LDK. Such objects are not currently constructed
   by LDK, but may be when processing BOLT12 data in a coming release (#2146).
 * Providing `ChannelMonitorUpdate`s generated by LDK 0.0.115 to a
   `ChannelMonitor` on 0.0.114 or before may panic (#2059). Note that this is
   in general unsupported, and included here only for completeness.

Bug Fixes
=========

 * Fixed a case where `process_events_async` may `poll` a `Future` which has
   already completed (#2081).
 * Fixed deserialization of `u16` arrays. This bug may have previously corrupted
   the historical buckets in a `ProbabilisticScorer`. Users relying on the
   historical buckets may wish to wipe their scorer on upgrade to remove corrupt
   data rather than waiting on it to decay (#2191).
 * The `process_events_async` task is now `Send` and can thus be polled on a
   multi-threaded runtime (#2199).
 * Fixed a missing macro export causing
   `impl_writeable_tlv_based_enum{,_upgradable}` calls to not compile (#2091).
 * Fixed compilation of `lightning-invoice` with both `no-std` and serde (#2187)
 * Fix an issue where the `background-processor` would not wake when a
   `ChannelMonitorUpdate` completed asynchronously, causing delays (#2090).
 * Fix an issue where `process_events_async` would exit immediately (#2145).
 * `Router` calls from the `ChannelManager` now call `find_route_with_id` rather
   than `find_route`, as was intended and described in the API (#2092).
 * Ensure `process_events_async` always exits if any sleep future returns true,
   not just if all sleep futures repeatedly return true (#2145).
 * `channel_update` messages no longer set the disable bit unless the peer has
   been disconnected for some time. This should resolve cases where channels are
   disabled for extended periods of time (#2198).
 * We no longer remove CLN nodes from the network graph for violating the BOLT
   spec in some cases after failing to pay through them (#2220).
 * Fixed a debug assertion which may panic under heavy load (#2172).
 * `CounterpartyForceClosed::peer_msg` is now wrapped in UntrustedString (#2114)
 * Fixed a potential deadlock in `funding_transaction_generated` (#2158).

Security
========

 * Transaction re-broadcasting is now substantially more aggressive, including a
   new regular rebroadcast feature called on a timer from the
   `background-processor` or from `ChainMonitor::rebroadcast_pending_claims`.
   This should substantially increase transaction confirmation reliability
   without relying on downstream `TransactionBroadcaster` implementations for
   rebroadcasting (#2203, #2205, #2208).
 * Implemented the changes from BOLT PRs #1031, #1032, and #1040 which resolve a
   privacy vulnerability which allows an intermediate node on the path to
   discover the final destination for a payment (#2062).

In total, this release features 110 files changed, 11928 insertions, 6368
deletions in 215 commits from 21 authors, in alphabetical order:
 * Advait
 * Alan Cohen
 * Alec Chen
 * Allan Douglas R. de Oliveira
 * Arik Sosman
 * Elias Rohrer
 * Evan Feenstra
 * Jeffrey Czyz
 * John Cantrell
 * Lucas Soriano del Pino
 * Marc Tyndel
 * Matt Corallo
 * Paul Miller
 * Steven
 * Steven Williamson
 * Steven Zhao
 * Tony Giorgio
 * Valentine Wallace
 * Wilmer Paulino
 * benthecarman
 * munjesi
-----BEGIN PGP SIGNATURE-----

iHUEABYIAB0WIQRUmemmLvhKZH3sJ5aNfcEH7gHylAUCZEcdLwAKCRCNfcEH7gHy
lNd2AQDK/Ephz/D5VxbXSPKFiEKh9ci+Dm/S+yK8LMcl0s7ZvQD+KGWZIVuptnVC
KUxK8ZIARGyTQznUqVCT2dlXAgJBQw4=
=atg0
-----END PGP SIGNATURE-----