|  | 
|  | 1 | +# 0.0.119 - Dec 15, 2023 - "Spring Cleaning for Christmas" | 
|  | 2 | + | 
|  | 3 | +## API Updates | 
|  | 4 | + * The LDK crate ecosystem MSRV has been increased to 1.63 (#2681). | 
|  | 5 | + * The `bitcoin` dependency has been updated to version 0.30 (#2740). | 
|  | 6 | + * `lightning-invoice::payment::*` have been replaced with parameter generation | 
|  | 7 | +   via `payment_parameters_from[_zero_amount]_invoice` (#2727). | 
|  | 8 | + * `{CoinSelection,Wallet}Source::sign_tx` are now `sign_psbt`, providing more | 
|  | 9 | +   information, incl spent outputs, about the transaction being signed (#2775). | 
|  | 10 | + * Logger `Record`s now include `channel_id` and `peer_id` fields. These are | 
|  | 11 | +   opportunistically filled in when a log record is specific to a given channel | 
|  | 12 | +   and/or peer, and may occasionally be spuriously empty (#2314). | 
|  | 13 | + * When handling send or reply onion messages (e.g. for BOLT12 payments), a new | 
|  | 14 | +   `Event::ConnectionNeeded` may be raised, indicating a direct connection | 
|  | 15 | +   should be made to a payee or an introduction point. This event is expected to | 
|  | 16 | +   be removed once onion message forwarding is widespread in the network (#2723) | 
|  | 17 | + * Scoring data decay now happens via `ScoreUpDate::time_passed`, called from | 
|  | 18 | +   `lightning-background-processor`. `process_events_async` now takes a new | 
|  | 19 | +   time-fetch function, and `ScoreUpDate` methods now take the current time as a | 
|  | 20 | +   `Duration` argument. This avoids fetching time during pathfinding (#2656). | 
|  | 21 | + * Receiving payments to multi-hop blinded paths is now supported (#2688). | 
|  | 22 | + * `MessageRouter` and `Router` now feature methods to generate blinded paths to | 
|  | 23 | +   the local node for incoming messages and payments. `Router` now extends | 
|  | 24 | +   `MessageRouter`, and both are used in `ChannelManager` when processing or | 
|  | 25 | +   creating BOLT12 structures to generate multi-hop blinded paths (#1781). | 
|  | 26 | + * `lightning-transaction-sync` now supports Electrum-based sync (#2685). | 
|  | 27 | + * `Confirm::get_relevant_txids` now returns the height at which a transaction | 
|  | 28 | +   was confirmed. This can be used to assist in reorg detection (#2685). | 
|  | 29 | + * `ConfirmationTarget::MaxAllowedNonAnchorChannelRemoteFee` has been removed. | 
|  | 30 | +   Non-anchor channel feerates are bounded indirectly through | 
|  | 31 | +   `ChannelConfig::max_dust_htlc_exposure` (#2696). | 
|  | 32 | + * `lightning-invoice` `Description`s now rely on `UntrustedString` for | 
|  | 33 | +   sanitization (#2730). | 
|  | 34 | + * `ScoreLookUp::channel_penalty_msat` now uses `CandidateRouteHop` (#2551). | 
|  | 35 | + * The `EcdsaChannelSigner` trait was moved to `lightning::sign::ecdsa` (#2512). | 
|  | 36 | + * `SignerProvider::get_destination_script` now takes `channel_keys_id` (#2744) | 
|  | 37 | + * `SpendableOutputDescriptor::StaticOutput` now has `channel_keys_id` (#2749). | 
|  | 38 | + * `EcdsaChannelSigner::sign_counterparty_commitment` now takes HTLC preimages | 
|  | 39 | +   for both inbound and outbound HTLCs (#2753). | 
|  | 40 | + * `ClaimedHTLC` now includes a `counterparty_skimmed_fee_msat` field (#2715). | 
|  | 41 | + * `peel_payment_onion` was added to decode an encrypted onion for a payment | 
|  | 42 | +   without receiving an HTLC. This allows for stateless verification of if a | 
|  | 43 | +   theoretical payment would be accepted prior to receipt (#2700). | 
|  | 44 | + * `create_payment_onion` was added to construct an encrypted onion for a | 
|  | 45 | +   payment path without sending an HTLC immediately (#2677). | 
|  | 46 | + * Various keys used in channels are now wrapped to provide type-safety for | 
|  | 47 | +   specific usages of the keys (#2675). | 
|  | 48 | + * `TaggedHash` now includes the raw `tag` and `merkle_root` (#2687). | 
|  | 49 | + * `Offer::is_expired_no_std` was added (#2689). | 
|  | 50 | + * `PaymentPurpose::preimage()` was added (#2768). | 
|  | 51 | + * `temporary_channel_id` can now be specified in `create_channel` (#2699). | 
|  | 52 | + * Wire definitions for splicing messages were added (#2544). | 
|  | 53 | + * Various `lightning-invoice` structs now impl `Display`, now have pub fields, | 
|  | 54 | +   or impl `From` (#2730). | 
|  | 55 | + * The `Hash` trait is now implemented for more structs, incl P2P msgs (#2716). | 
|  | 56 | + | 
|  | 57 | +## Performance Improvements | 
|  | 58 | + * Memory allocations (though not memory usage) have been substantially reduced, | 
|  | 59 | +   meaning less overhead and hopefully less memory fragmentation (#2708, #2779). | 
|  | 60 | + | 
|  | 61 | +## Bug Fixes | 
|  | 62 | + * Since 0.0.117, calling `close_channel*` on a channel which has not yet been | 
|  | 63 | +   funded would previously result in an infinite loop and hang (#2760). | 
|  | 64 | + * Since 0.0.116, sending payments requiring data in the onion for the recipient | 
|  | 65 | +   which was too large for the onion may have caused corruption which resulted | 
|  | 66 | +   in payment failure (#2752). | 
|  | 67 | + * Cooperative channel closure on channels with remaining output HTLCs may have | 
|  | 68 | +   spuriously force-closed (#2529). | 
|  | 69 | + * In LDK versions 0.0.116 through 0.0.118, in rare cases where skimmed fees are | 
|  | 70 | +   present on shutdown the `ChannelManager` may fail to deserialize (#2735). | 
|  | 71 | + * `ChannelConfig::max_dust_exposure` values which, converted to absolute fees, | 
|  | 72 | +   exceeded 2^63 - 1 would result in an overflow and could lead to spurious | 
|  | 73 | +   payment failures or channel closures (#2722). | 
|  | 74 | + * In cases where LDK is operating with provably-stale state, it panics to | 
|  | 75 | +   avoid funds loss. This may not have happened in cases where LDK was behind | 
|  | 76 | +   only exactly one state, leading instead to a revoked broadcast and funds | 
|  | 77 | +   loss (#2721). | 
|  | 78 | + * Fixed a bug where decoding `Txid`s from Bitcoin Core JSON-RPC responses using | 
|  | 79 | +   `lightning-block-sync` would not properly byte-swap the hash. Note that LDK | 
|  | 80 | +   does not use this API internally (#2796). | 
|  | 81 | + | 
|  | 82 | +## Backwards Compatibility | 
|  | 83 | + * `ChannelManager`s written with LDK 0.0.119 are no longer readable by versions | 
|  | 84 | +   of LDK prior to 0.0.113. Users wishing to downgrade to LDK 0.0.112 or before | 
|  | 85 | +   can read an 0.0.119-serialized `ChannelManager` with a version of LDK from | 
|  | 86 | +   0.0.113 to 0.0.118, re-serialize it, and then downgrade (#2708). | 
|  | 87 | + * Nodes that upgrade to 0.0.119 and subsequently downgrade after receiving a | 
|  | 88 | +   payment to a blinded path may leak recipient information if one or more of | 
|  | 89 | +   those HTLCs later fails (#2688). | 
|  | 90 | + * Similarly, forwarding a blinded HTLC and subsequently downgrading to an LDK | 
|  | 91 | +   version prior to 0.0.119 may result in leaking the path information to the | 
|  | 92 | +   payment sender (#2540). | 
|  | 93 | + | 
|  | 94 | +In total, this release features 148 files changed, 13780 insertions, 6279 | 
|  | 95 | +deletions in 280 commits from 22 authors, in alphabetical order: | 
|  | 96 | + * Arik Sosman | 
|  | 97 | + * Chris Waterson | 
|  | 98 | + * Elias Rohrer | 
|  | 99 | + * Evan Feenstra | 
|  | 100 | + * Gursharan Singh | 
|  | 101 | + * Jeffrey Czyz | 
|  | 102 | + * John Cantrell | 
|  | 103 | + * Lalitmohansharma1 | 
|  | 104 | + * Matt Corallo | 
|  | 105 | + * Matthew Rheaume | 
|  | 106 | + * Orbital | 
|  | 107 | + * Rachel Malonson | 
|  | 108 | + * Valentine Wallace | 
|  | 109 | + * Willem Van Lint | 
|  | 110 | + * Wilmer Paulino | 
|  | 111 | + * alexanderwiederin | 
|  | 112 | + * benthecarman | 
|  | 113 | + * henghonglee | 
|  | 114 | + * jbesraa | 
|  | 115 | + * olegkubrakov | 
|  | 116 | + * optout | 
|  | 117 | + * shaavan | 
|  | 118 | + | 
|  | 119 | + | 
| 1 | 120 | # 0.0.118 - Oct 23, 2023 - "Just the Twelve Sinks" | 
| 2 | 121 | 
 | 
| 3 | 122 | ## API Updates | 
|  | 
0 commit comments