|
| 1 | +# 0.0.104 - XXX |
| 2 | + |
| 3 | +## API Updates |
| 4 | + * A `PaymentFailed` event is now provided to indicate a payment has failed |
| 5 | + fully. This event is generated either after |
| 6 | + `ChannelManager::abandon_payment` is called for a given payment, or the |
| 7 | + payment times out, and there are no further pending HTLCs for the payment. |
| 8 | + This event should be used to detect payment failure instead of |
| 9 | + `PaymentPathFailed::all_paths_failed`, unless no payment retries occur via |
| 10 | + `ChannelManager::retry_payment` (#1202). |
| 11 | + * Payment secrets are now generated deterministically using material from |
| 12 | + the new `KeysInterface::get_inbound_payment_key_material` (#1177). |
| 13 | + * A `PaymentPathSuccessful` event has been added to ease passing success info |
| 14 | + to a scorer, along with a XXX method to accept such info (#XXX). |
| 15 | + * `Score::channel_penalty_msat` has additional arguments describing the |
| 16 | + channel's capacity and intended HTLC amounts (#XXX). |
| 17 | + * A new log level `Gossip` has been added, which is used for verbose |
| 18 | + information generated during network graph sync. Enabling the |
| 19 | + `max_level_trace` feature or ignoring `Gossip` log entries reduces log |
| 20 | + growth during initial start up from many GiB to several MiB (#XXX). |
| 21 | + * The `allow_wallclock_use` feature has been removed in favor of only using |
| 22 | + the `std` and `no-std` features (#1212). |
| 23 | + * `NetworkGraph` can now remove channels which we haven't heard updates for in |
| 24 | + two weeks with `NetworkGraph::remove_stale_channels{,with_time}`. The first |
| 25 | + is called automatically if a `NetGraphMsgHandler` is passed to |
| 26 | + `BackgroundProcessor::start` (#1212). |
| 27 | + * `InvoicePayer::pay_pubkey` was added to enable sending "keysend" payments to |
| 28 | + supported recipients, using the `InvoicePayer` to handle retires (#1160). |
| 29 | + * `user_payment_id` has been removed from `PaymentPurpose`, and |
| 30 | + `ChannelManager::create_inbound_payment{,_for_hash}` (#XXX). |
| 31 | + * Updated documentation for several `ChannelManager` functions to remove stale |
| 32 | + references to panics which no longer occur (#XXX). |
| 33 | + * The `Score` and `LockableScore` objects have moved into the |
| 34 | + `routing::scoring` module instead of being in the `routing` module (#XXX). |
| 35 | + * The `Time` parameter to `ScorerWithTime` is no longer longer exposed, |
| 36 | + instead being fixed based on the `std`/`no-std` feature (#XXX). |
| 37 | + * An explicit `UserConfig::accept_inbound_channels` flag is now provided, |
| 38 | + removing the need to set `min_funding_satoshis` to > 21 million BTC (#XXX). |
| 39 | + * Inbound Channels which fail to see the funding transaction confirm within |
| 40 | + 2016 blocks are automatically force-closed with |
| 41 | + `ClosureReason::FundingTimedOut` (#XXX). |
| 42 | + * `NetAddress::OnionV2` parsing was removed as version 2 onion services are no |
| 43 | + longer supported in modern Tor (#XXX). |
| 44 | + |
| 45 | +## Bug Fixes |
| 46 | + * Fixed a race condition in `InvoicePayer` where paths may be retried after |
| 47 | + the retry count has been exceeded. In this case the |
| 48 | + `Event::PaymentPathFailed::all_paths_failed` field is not a reliable payment |
| 49 | + failure indicator. There is no acceptable alternative indicator (#1201). |
| 50 | + * Reduced the number of blocks in the future we expect outgoing HTLCs to be |
| 51 | + before failing them without forwarding. This check was overly strict and |
| 52 | + resulted in refusing to forward some HTLCs to a next hop which had a lower |
| 53 | + security threshold than us (#XXX). |
| 54 | + * LDK no longer attempt to update the channel fee for outbound channels when |
| 55 | + we cannot afford the new fee. This could have caused force-closure by our |
| 56 | + channel counterparty (#XXX). |
| 57 | + * Fixed several bugs which may have prevented the reliable broadcast of our |
| 58 | + own channel announcements and updates (#XXX). |
| 59 | + * Fixed a rare bug which may have resulted in spurious route finding failures |
| 60 | + when using last-hop hints and MPP with large value payments (#1168). |
| 61 | + * `KeysManager::spend_spendable_outputs` will no longer add a change output |
| 62 | + which is below the dust threshold for change scripts which are non-standard |
| 63 | + (#XXX). |
| 64 | + |
| 65 | +## Serialization Compatibility |
| 66 | + * All above new Events/fields are ignored by prior clients. All above new |
| 67 | + Events/fields are not present when reading objects serialized by prior |
| 68 | + versions of the library. |
| 69 | + * Payment secrets are now generated deterministically. This reduces the memory |
| 70 | + footprint for inbound payments, however, newly-generated inbound payments |
| 71 | + using `ChannelManager::create_inbound_payment{,_for_hash}` will not be |
| 72 | + receivable using versions prior to 0.0.104. |
| 73 | + `ChannelManager::create_inbound_payment{,_for_hash}_legacy` are provided for |
| 74 | + backwards compatibility (#1177). |
| 75 | + * `PaymentPurpose::InvoicePayment::user_payment_id` will be 0 when reading |
| 76 | + objects written with 0.0.104 when read by 0.0.103 and previous (#XXX). |
| 77 | + |
1 | 78 | # 0.0.103 - 2021-11-02
|
2 | 79 |
|
3 | 80 | ## API Updates
|
|
0 commit comments