|
| 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