Skip to content

Commit 8d7abc6

Browse files
committed
Draft release notes for 0.2.3
1 parent 92cb67a commit 8d7abc6

1 file changed

Lines changed: 76 additions & 0 deletions

File tree

CHANGELOG.md

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,79 @@
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+
* Fixed a rare case where a channel could get stuck on reconnect when using
31+
both async `ChannelMonitorUpdate` persistence and async signing (#4684).
32+
* If we had exactly zero balance in a zero-fee-commitment channel, the
33+
counterparty was able to splice all of their balance out, violating the
34+
reserve requirements they'd otherwise be forced to keep (#4580).
35+
* `Event::PaymentSent::fee_paid_msat` is no longer `None` in cases where
36+
`ChannelManager::abandon_payment` was called before the payment ultimately
37+
completing anyway (#4651).
38+
* `AnchorDescriptor::previous_utxo` now provides the correct `script_pubkey`
39+
for non-zero-commitment-fee anchor channels (#4669).
40+
* Syncing a `ChainMonitor` using the `Confirm` trait will no longer write some
41+
full `ChannelMonitor`s to disk several times per block (#4544).
42+
* `OMDomainResolver` now correctly accounts for failed queries when rate
43+
limiting, ensuring we continue to respond to queries after failures (#4591).
44+
* `LSPS2ServiceHandler::channel_open_failed` now correctly fails intercepted
45+
HTLCs rather than allowing them to fail just before expiry (#4677).
46+
* `StaticInvoice::is_offer_expired` was corrected to check offer, rather than
47+
static invoice, expiry (#4594).
48+
* `lightning-custom-message`'s handling of `peer_connected` events now ensures
49+
that sub-handlers will see a `peer_disconnected` event if a different
50+
sub-handler refused the connection by `Err`ing `peer_connected` (#4595).
51+
* Replay protection for LSPS5 signatures now detects replays which are only
52+
different in the encoded signature's case (#4701).
53+
* When `lightning-liquidity` is configured in the background processor, there
54+
is no longer a stream of `Persisting LiquidityManager...` log spam (#4246).
55+
* Incomplete MPP keysend payments will no longer see their HTLCs held until
56+
expiry (#4558).
57+
* `InvoiceRequestBuilder` will no longer accept a `quantity` of `0` for a
58+
`Bolt12Offer` allowing any quantity up to a bound (#4667).
59+
* Several spurious debug assertions were fixed (#4537, #4618, #4026)
60+
61+
62+
## Security
63+
0.2.3 fixes several underestimates of the anchor reserves required to ensure we
64+
can reliably close channels and a sanitization issue.
65+
* When using the `anchor_channel_reserves` module to calculate reserves
66+
required to pay for fees when closing anchor channels, zero-fee-commitment
67+
channels were not considered. This could allow a counterparty to open many
68+
channels, leaving us unable to properly force-close (#4592).
69+
* The `anchor_channel_reserves` module under-estimated the value of `Utxo`s in
70+
the wallet by ignoring the `TxIn` cost to spend them (#4670).
71+
* `PrintableString` did not properly sanitize unicode format characters,
72+
allowing an attacker to corrupt the rendering of logs or UI (#4593, #4605).
73+
74+
Thanks to Project Loupe for reporting most of the issues fixed in this release.
75+
76+
177
# 0.2.2 - Feb 6, 2025 - "An Async Splicing Production"
278

379
## API Updates

0 commit comments

Comments
 (0)