Skip to content

Commit 1b8a7ca

Browse files
committed
Draft release notes for 0.2.3
1 parent e1e3eb6 commit 1b8a7ca

1 file changed

Lines changed: 84 additions & 0 deletions

File tree

CHANGELOG.md

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,87 @@
1+
# 0.2.3 - XXX - "XXX"
2+
3+
## API Updates
4+
* `DefaultMessageRouter` will now always generate blinded message paths which
5+
provide no privacy (where our node is the introduction node) for nodes with
6+
public channels. This works around an issue which will appear for any nodes
7+
with LND peers which enable onion messaging - such peers will refuse to
8+
forward BOLT 12 messages from unknown third parties, which most BOLT 12
9+
payers rely on today (#4647).
10+
* Explicit `amount_msats` of 0 is rejected in BOLT 12 `OfferBuilder` (#4324).
11+
12+
## Bug Fixes
13+
* `Features::supports_zero_conf` no longer clears the `ZeroConf` features and
14+
`Features::requires_zero_conf` now correctly reports required, rather than
15+
supported, status (#4517).
16+
* If an MPP payment is claimed but `ChannelMonitorUpdate`s for some parts are
17+
still being completed asynchronously, further channel updates (e.g.
18+
forwarding another payment) are pending and the node restarts, the channel
19+
could have become stuck (#4520).
20+
* The electrum sync client now properly skips unconfirmed transactions (#4590).
21+
* LSPS1, LSPS2, and LSPS5 persistence will no longer get stuck and refuse to
22+
persist again after a single failure from the KVStore (#4597, #4282).
23+
* Dropping the future returned by
24+
`OutputSweeper::regenerate_and_broadcast_spend_if_necessary` no longer
25+
results in future calls to the same method being spuriously ignored (#4598).
26+
* Used async-receive offers are no longer refreshed on every timer tick once
27+
their refresh time is reached (#4672).
28+
* `FilesystemStore::list_all_keys` will no longer fail if there are stale
29+
intermediate files lying around from a previous unclean shutdown (#4618).
30+
* When forwarding an HTLC while in a blinded path with proportional fees over
31+
100%, LDK will no longer spuriously charge 1 msat too little (#4697).
32+
* Fixed a rare case where a channel could get stuck on reconnect when using
33+
both async `ChannelMonitorUpdate` persistence and async signing (#4684).
34+
* If we had exactly zero balance in a zero-fee-commitment channel, the
35+
counterparty was able to splice all of their balance out, violating the
36+
reserve requirements they'd otherwise be forced to keep (#4580).
37+
* Providing an `Event::HTLCIntercepted` to the `LSPS2ServiceHandler` twice no
38+
longer results in spuriously opening a channel early (#4656).
39+
* `Event::PaymentSent::fee_paid_msat` is no longer `None` in cases where
40+
`ChannelManager::abandon_payment` was called before the payment ultimately
41+
completing anyway (#4651).
42+
* `AnchorDescriptor::previous_utxo` now provides the correct `script_pubkey`
43+
for non-zero-commitment-fee anchor channels (#4669).
44+
* Syncing a `ChainMonitor` using the `Confirm` trait will no longer write some
45+
full `ChannelMonitor`s to disk several times per block (#4544).
46+
* `OMDomainResolver` now correctly accounts for failed queries when rate
47+
limiting, ensuring we continue to respond to queries after failures (#4591).
48+
* Calling `ChannelManager::send_payment_with_route` without a `route_params`
49+
and with an invalid `Route` will no longer panic (#4707).
50+
* `LSPS2ServiceHandler::channel_open_failed` now correctly fails intercepted
51+
HTLCs rather than allowing them to fail just before expiry (#4677).
52+
* `StaticInvoice::is_offer_expired` was corrected to check offer, rather than
53+
static invoice, expiry (#4594).
54+
* `lightning-custom-message`'s handling of `peer_connected` events now ensures
55+
that sub-handlers will see a `peer_disconnected` event if a different
56+
sub-handler refused the connection by `Err`ing `peer_connected` (#4595).
57+
* Replay protection for LSPS5 signatures now detects replays which are only
58+
different in the encoded signature's case (#4701).
59+
* When `lightning-liquidity` is configured in the background processor, there
60+
is no longer a stream of `Persisting LiquidityManager...` log spam (#4246).
61+
* Incomplete MPP keysend payments will no longer see their HTLCs held until
62+
expiry (#4558).
63+
* `InvoiceRequestBuilder` will no longer accept a `quantity` of `0` for a
64+
`Bolt12Offer` allowing any quantity up to a bound (#4667).
65+
* `lightning-custom-message` handlers which return `Ok(None)` when asked to
66+
deserialize a message in their defined range no longer cause panics (#4709).
67+
* Several spurious debug assertions were fixed (#4537, #4618, #4026)
68+
69+
70+
## Security
71+
0.2.3 fixes several underestimates of the anchor reserves required to ensure we
72+
can reliably close channels and a sanitization issue.
73+
* When using the `anchor_channel_reserves` module to calculate reserves
74+
required to pay for fees when closing anchor channels, zero-fee-commitment
75+
channels were not considered. This could allow a counterparty to open many
76+
channels, leaving us unable to properly force-close (#4592).
77+
* The `anchor_channel_reserves` module under-estimated the value of `Utxo`s in
78+
the wallet by ignoring the `TxIn` cost to spend them (#4670).
79+
* `PrintableString` did not properly sanitize unicode format characters,
80+
allowing an attacker to corrupt the rendering of logs or UI (#4593, #4605).
81+
82+
Thanks to Project Loupe for reporting most of the issues fixed in this release.
83+
84+
185
# 0.2.2 - Feb 6, 2025 - "An Async Splicing Production"
286

387
## API Updates

0 commit comments

Comments
 (0)