|  | 
|  | 1 | +# 0.0.118 - Oct 23, 2023 - "Just the Twelve Sinks" | 
|  | 2 | + | 
|  | 3 | +## API Updates | 
|  | 4 | + * BOLT12 sending and receiving is now supported as an alpha feature. You may | 
|  | 5 | +   run into unexpected issues and will need to have a direct connection with | 
|  | 6 | +   the offer's blinded path introduction points as messages are not yet routed. | 
|  | 7 | +   We are seeking feedback from early testers (#2578, #2039). | 
|  | 8 | + * `ConfirmationTarget` has been rewritten to provide information about the | 
|  | 9 | +   specific use LDK needs the feerate estimate for, rather than the generic | 
|  | 10 | +   low-, medium-, and high-priority estimates. This allows LDK users to more | 
|  | 11 | +   accurately target their feerate estimates (#2660). For those wishing to | 
|  | 12 | +   retain their existing behavior, see the table below for conversion. | 
|  | 13 | + * `ChainHash` is now used in place of `BlockHash` where it represents the | 
|  | 14 | +   genesis block (#2662). | 
|  | 15 | + * `lightning-invoice` payment utilities now take a `Deref` to | 
|  | 16 | +   `AChannelManager` (#2652). | 
|  | 17 | + * `peel_onion` is provided to statelessly decode an `OnionMessage` (#2599). | 
|  | 18 | + * `ToSocketAddrs` + `Display` are now impl'd for `SocketAddress` (#2636, #2670) | 
|  | 19 | + * `Display` is now implemented for `OutPoint` (#2649). | 
|  | 20 | + * `Features::from_be_bytes` is now provided (#2640). | 
|  | 21 | + | 
|  | 22 | +For those moving to the new `ConfirmationTarget`, the new variants in terms of | 
|  | 23 | +the old mempool/low/medium/high priorities are as follows: | 
|  | 24 | + * `OnChainSweep` = `HighPriority` | 
|  | 25 | + * `MaxAllowedNonAnchorChannelRemoteFee` = `max(25 * 250, HighPriority * 10)` | 
|  | 26 | + * `MinAllowedAnchorChannelRemoteFee` = `MempoolMinimum` | 
|  | 27 | + * `MinAllowedNonAnchorChannelRemoteFee` = `Background - 250` | 
|  | 28 | + * `AnchorChannelFee` = `Background` | 
|  | 29 | + * `NonAnchorChannelFee` = `Normal` | 
|  | 30 | + * `ChannelCloseMinimum` = `Background` | 
|  | 31 | + | 
|  | 32 | +## Bug Fixes | 
|  | 33 | + * Calling `ChannelManager::close_channel[_with_feerate_and_script]` on a | 
|  | 34 | +   channel which did not exist would immediately hang holding several key | 
|  | 35 | +   `ChannelManager`-internal locks (#2657). | 
|  | 36 | + * Channel information updates received from a failing HTLC are no longer | 
|  | 37 | +   applied to our `NetworkGraph`. This prevents a node which we attempted to | 
|  | 38 | +   route a payment through from being able to learn the sender of the payment. | 
|  | 39 | +   In some rare cases, this may result in marginally reduced payment success | 
|  | 40 | +   rates (#2666). | 
|  | 41 | + * Anchor outputs are now properly considered when calculating the amount | 
|  | 42 | +   available to send in HTLCs. This can prevent force-closes in anchor channels | 
|  | 43 | +   when sending payments which overflow the available balance (#2674). | 
|  | 44 | + * A peer that sends an `update_fulfill_htlc` message for a forwarded HTLC, | 
|  | 45 | +   then reconnects prior to sending a `commitment_signed` (thus retransmitting | 
|  | 46 | +   their `update_fulfill_htlc`) may result in the channel stalling and being | 
|  | 47 | +   unable to make progress (#2661). | 
|  | 48 | + * In exceedingly rare circumstances, messages intended to be sent to a peer | 
|  | 49 | +   prior to reconnection can be sent after reconnection. This could result in | 
|  | 50 | +   undefined channel state and force-closes (#2663). | 
|  | 51 | + | 
|  | 52 | +## Backwards Compatibility | 
|  | 53 | + | 
|  | 54 | + * Creating a blinded path to receive a payment then downgrading to LDK prior to | 
|  | 55 | +   0.0.117 may result in failure to receive the payment (#2413). | 
|  | 56 | + * Calling `ChannelManager::pay_for_offer` or | 
|  | 57 | +   `ChannelManager::create_refund_builder` may prevent downgrading to LDK prior | 
|  | 58 | +   to 0.0.118 until the payment times out and has been removed (#2039). | 
|  | 59 | + | 
|  | 60 | +## Node Compatibility | 
|  | 61 | + * LDK now sends a bogus `channel_reestablish` message to peers when they ask to | 
|  | 62 | +   resume an unknown channel. This should cause LND nodes to force-close and | 
|  | 63 | +   broadcast the latest channel state to the chain. In order to trigger this | 
|  | 64 | +   when we wish to force-close a channel, LDK now disconnects immediately after | 
|  | 65 | +   sending a channel-closing `error` message. This should result in cooperative | 
|  | 66 | +   peers also working to confirm the latest commitment transaction when we wish | 
|  | 67 | +   to force-close (#2658). | 
|  | 68 | + | 
|  | 69 | +## Security | 
|  | 70 | +0.0.118 expands mitigations against transaction cycling attacks to non-anchor | 
|  | 71 | +channels, though note that no mitigations which exist today are considered robust | 
|  | 72 | +to prevent the class of attacks. | 
|  | 73 | + * In order to mitigate against transaction cycling attacks, non-anchor HTLC | 
|  | 74 | +   transactions are now properly re-signed before broadcasting (#2667). | 
|  | 75 | + | 
|  | 76 | +XXX diff stats | 
|  | 77 | + | 
|  | 78 | +In total, this release features 61 files changed, 3470 insertions, 1503 | 
|  | 79 | +deletions in 85 commits from 12 authors, in alphabetical order: | 
|  | 80 | + * Antonio Yang | 
|  | 81 | + * Elias Rohrer | 
|  | 82 | + * Evan Feenstra | 
|  | 83 | + * Fedeparma74 | 
|  | 84 | + * Gursharan Singh | 
|  | 85 | + * Jeffrey Czyz | 
|  | 86 | + * Matt Corallo | 
|  | 87 | + * Sergi Delgado Segura | 
|  | 88 | + * Vladimir Fomene | 
|  | 89 | + * Wilmer Paulino | 
|  | 90 | + * benthecarman | 
|  | 91 | + * slanesuke | 
|  | 92 | + | 
|  | 93 | + | 
| 1 | 94 | # 0.0.117 - Oct 3, 2023 - "Everything but the Twelve Sinks" | 
| 2 | 95 | 
 | 
| 3 | 96 | ## API Updates | 
|  | 
0 commit comments