|
| 1 | +# 0.0.116rc1 - Jul 14, 2023 - "Anchoring the Roadmap" |
| 2 | + |
| 3 | +## API Updates |
| 4 | + |
| 5 | + * Support for zero-HTLC-fee anchor output channels has been added and is now |
| 6 | + considered beta (#2367). Users who set |
| 7 | + `ChannelHandshakeConfig::negotiate_anchors_zero_fee_htlc_tx` should be |
| 8 | + prepared to handle the new `Event::BumpTransaction`, e.g. via the |
| 9 | + `BumpTransactionEventHandler` (#2089). Users who set the same and wish to |
| 10 | + accept inbound anchor-based channels must do so manually by setting |
| 11 | + `UserConfig::manually_accept_inbound_channels` (#2368). |
| 12 | + * Support forwarding and accepting HTLCs with a reduced amount has been added, |
| 13 | + to support LSPs skimming a fee on the penultimate hop (#2319). |
| 14 | + * BOLT11 and BOLT12 Invoice and related types have been renamed to include a |
| 15 | + BOLTNN prefix, ensuring uniqueness in `lightning{,-invoice}` crates (#2416). |
| 16 | + * `Score`rs now have an associated type which represents a parameter passed |
| 17 | + when calculating penalties. This allows for the same `Score`r to be used with |
| 18 | + different penalty calculation parameters (#2237). |
| 19 | + * `DefaultRouter` is no longer restrained to a `Mutex`-wrapped `Score`, |
| 20 | + allowing it to be used in `no-std` builds (#2383). |
| 21 | + * `CustomMessageHandler::provided_{node,init}_features` and various custom |
| 22 | + feature bit methods on `*Features` were added (#2204). |
| 23 | + * Keysend/push payments using MPP are now supported when receiving if |
| 24 | + `UserConfig::accept_mpp_keysend` is set and when sending if specified in the |
| 25 | + `PaymentParameters`. Note that not all recipients support this (#2156). |
| 26 | + * A new `ConfirmationTarget::MempoolMinimum` has been added (#2415). |
| 27 | + * `SpendableOutputDescriptor::to_psbt_input` was added (#2286). |
| 28 | + * `ChannelManager::update_partial_channel_config` was added (#2330). |
| 29 | + * `ChannelDetails::channel_shutdown_state` was added (#2347). |
| 30 | + * The shutdown script can now be provided at shutdown time via |
| 31 | + `ChannelManager::close_channel_with_feerate_and_script` (#2219). |
| 32 | + * `BroadcasterInterface` now takes multiple transactions at once. While not |
| 33 | + available today, in the future single calls should be passed to a full node |
| 34 | + via a single batch/package transaction acceptance API (#2272). |
| 35 | + * `Balance::claimable_amount_satoshis` was added (#2333). |
| 36 | + * `payment_{hash,preimage}` have been added to some `Balance` variants (#2217). |
| 37 | + * The `lightning::chain::keysinterface` is now `lightning::sign` (#2246). |
| 38 | + * Routing to a blinded path has been implemented, though sending to such a |
| 39 | + route is not yet supported in `ChannelManager` (#2120). |
| 40 | + * `OffersMessageHandler` was added for offers-related onion messages (#2294). |
| 41 | + * The `CustomMessageHandler` parameter to `PeerManager` has moved to |
| 42 | + `MessageHandler` from `PeerManager::new` explicitly (#2249). |
| 43 | + * Various P2P messages for dual funding channel establishment have been added, |
| 44 | + though handling for them is not yet in `ChannelManager` (#1794) |
| 45 | + * Script-fetching methods in `sign` interfaces can now return errors, see docs |
| 46 | + for the implications of failing (#2213). |
| 47 | + * The `data_loss_protect` option is now required when reading |
| 48 | + `channel_reestablish` messages, as many others have done (#2253). |
| 49 | + * `InFlightHtlcs::add_inflight_htlc` has been added (#2042). |
| 50 | + * The `init` message `networks` field is now written and checked (#2329). |
| 51 | + * `PeerManager` generics have been simplified with the introduction of the |
| 52 | + `APeerManager` trait (#2249). |
| 53 | + * `ParitalOrd` and `Ord` are now implemented for `Invoice` (#2279). |
| 54 | + * `ParitalEq` and `Debug` are now implemented for `InMemorySigner` (#2328). |
| 55 | + * `ParitalEq` and `Eq` are now implemented for `PaymentError` (#2316). |
| 56 | + * `NetworkGraph::update_channel_from_announcement_no_lookup` was added (#2222). |
| 57 | + * `lightning::routing::gossip::verify_{channel,node}_announcement` was added |
| 58 | + (#2307). |
| 59 | + |
| 60 | +## Backwards Compatibility |
| 61 | + * `PaymentParameters` written with blinded path info using LDK 0.0.115 will not |
| 62 | + be readable in LDK 0.0.116, and vice versa. |
| 63 | + * Forwarding less than `Event::HTLCIntercepted::expected_outbound_amount_msat` |
| 64 | + in `ChannelManager::forward_intercepted_htlc` may prevent the |
| 65 | + `ChannelManager` from being read by LDK prior to 0.0.116 (#2319) |
| 66 | + * Setting `ChannelConfig::accept_underpaying_htlcs` may prevent the |
| 67 | + `ChannelManager` from being read by LDK prior to 0.0.116 and un-setting the |
| 68 | + parameter between restarts may lead to payment failures (#2319). |
| 69 | + * `ChannelManager::create_inbound_payment{,_for_hash}_legacy` has been removed, |
| 70 | + removing the ability to create inbound payments which are claimable after |
| 71 | + downgrade to LDK 0.0.103 and prior. In the future handling such payments will |
| 72 | + also be removed (#2351). |
| 73 | + * Some fields required by LDK 0.0.103 and earlier are no longer written, thus |
| 74 | + deserializing objects written by 0.0.116 with 0.0.103 may now fail (#2351). |
| 75 | + |
| 76 | +## Bug Fixes |
| 77 | + * `ChannelDetails::next_outbound_htlc_limit_msat` was made substantially more |
| 78 | + accurate and a corresponding `next_outbound_htlc_minimum_msat` was added. |
| 79 | + This resolves issues where unpayable routes were generated due to |
| 80 | + overestimation of the amount which is payable over one of our channels as |
| 81 | + the first hop (#2312). |
| 82 | + * A rare case where delays in processing `Event`s generated by |
| 83 | + `ChannelMonitor`s could lead to loss of those events in case of an untimely |
| 84 | + crash. This could lead to the loss of an `Event::SpendableOutputs` (#2369). |
| 85 | + * Fixed a regression in 0.0.115 which caused `PendingHTLCsForwardable` events |
| 86 | + to be missed when processing phantom node receives. This caused such |
| 87 | + payments to be delayed until a further, unrelated HTLC came in (#2395). |
| 88 | + * Peers which are unresponsive to channel messages for several timer ticks are |
| 89 | + now disconnected to allow for on-reconnection state machine reset. This |
| 90 | + works around some issues in LND prior to 16.3 which can cause channels to |
| 91 | + hang and eventually force-close (#2293). |
| 92 | + * `ChannelManager::new` now requires the current time (either from a recent |
| 93 | + block header or the system clock), ensuring invoices created immediately |
| 94 | + after startup aren't already expired (#2372). |
| 95 | + * Resolved an issue where reading a `ProbabilisticScorer` on some platforms |
| 96 | + (e.g. iOS) can lead to a panic (#2322). |
| 97 | + * `ChannelConfig::max_dust_htlc_exposure` is now allowed to scale based on |
| 98 | + current fees, and the default has been updated to do so. This substantially |
| 99 | + reduces the chance of force-closure due to dust exposure. Note that existing |
| 100 | + channels will retain their current value and you may wish to update the |
| 101 | + value on your existing channels on upgrade (#2354). |
| 102 | + * `PeerManager::process_events` no longer blocks in any case. This fixes a bug |
| 103 | + where reentrancy from `PeerManager` into user code which eventually calls |
| 104 | + `process_events` could lead to a deadlock (#2280). |
| 105 | + * The persist timing of network graph and scoring in |
| 106 | + `lightning-background-processor` has been tweaked to provide more reliable |
| 107 | + persistence after updates to either (#2226). |
| 108 | + * The number of route hints added to BOLT 11 invoices by the |
| 109 | + `lightning-invoice::utils` builders has been reduced to three to ensure |
| 110 | + invoices can be represented in scan-able QR codes (#2044). |
| 111 | + * Fixed sending large onion messages, which would previously have resulted in |
| 112 | + an HMAC error on the second hop (#2277). |
| 113 | + * Fixed a memory leak that may occur when a `ChannelManager` or |
| 114 | + `ChannelMonitor` is `drop`ed (#2233). |
| 115 | + * A potential deadlock in calling `NetworkGraph::eq` was resolved (#2284). |
| 116 | + * Fixed an overflow which prevented disconnecting peers in some minor cases |
| 117 | + with more than 31 peers (#2245). |
| 118 | + * Gossip messages with an unknown chain hash are now ignored (#2230). |
| 119 | + * Rapid Gossip Sync processing now fails on an unknown chain hash (#2324). |
| 120 | + * `RouteHintHop::htlc_maximum_msat` is now enforced. Note that BOLT11 route |
| 121 | + hints do not have such a field so this code is generally unused (#2305). |
| 122 | + |
1 | 123 | # 0.0.115 - Apr 24, 2023 - "Rebroadcast the Bugfixes"
|
2 | 124 |
|
3 | 125 | ## API Updates
|
|
0 commit comments