Skip to content

Commit dc4081d

Browse files
committed
Add an 0.0.124 CHANGELOG entry
1 parent b706480 commit dc4081d

7 files changed

+169
-45
lines changed

CHANGELOG.md

Lines changed: 169 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,172 @@
1+
# 0.0.124 - XXX, 2024 - "XXX"
2+
3+
## API Updates
4+
* `rust-bitcoin` has been updated to 0.32. The new `bitcoin-io` crate is now
5+
used for all IO traits, irrespective of the features set on LDK crates.
6+
LDK crates no longer automatically force features on dependent crates where
7+
possible, allowing different `std`/`no-std` settings between LDK and
8+
rust-bitcoin crates (e.g. to disable `std` on LDK to ensure system time is
9+
not accessed while using `bitcoin-io`'s `std` feature). (#3063, #3239, #3249).
10+
* A new `lightning_types` crate was added which contains various top-level
11+
types. Using types from `lightning::ln::features` or
12+
`Payment{Hash,Preimage,Secret}` from `lightning::ln` or
13+
`lightning::ln::types` is now deprecated. The new crate is re-exported as
14+
`lightning::types` (#3234, #3253).
15+
* `lightning` now depends on `lightning-invoice`, rather than the other way
16+
around. The `lightning_invoice::payment` module has moved to
17+
`lightning::ln::bolt11_payment` and `lightning_invoice::utils` to
18+
`lightning::ln::invoice_utils` (#3234).
19+
* Event handlers may now return errors, causing most events to be replayed
20+
immediately without blocking the background processor. See documentation on
21+
individual `Event`s for more information on replay (#2995).
22+
* `ChannelDetails::balance_msat` is deprecated in favor of
23+
`ChainMonitor::get_claimable_balances` and the `Balance`, which now contains
24+
substantially more details and more accurately calculates a node-wide
25+
balance when `Balance::claimable_amount_satoshis` are summed (#3212, #3247).
26+
* `ConfirmationTarget` has two new variants - a `MaximumFeeEstimate` which can
27+
help to avoid spurious force-closes by ensuring we always accept feerates up
28+
to this value from peers as sane and a `UrgentOnChainSweep`, replacing
29+
`OnChainSweep` and only being used when the on-chain sweep is urgent (#3268).
30+
* All `ChannelMonitor`s are no longer persisted after each block connection,
31+
instead spreading them out over a handful of blocks to reduce load spikes.
32+
Note that this will increase the incidence of `ChannelMonitor`s which have
33+
different best blocks on startup, requiring some additional chain replay
34+
(but only on some `ChannelMonitor`s) on startup for `Listen` users (#2966).
35+
* A new format for Rapid Gossip Sync data is now supported which contains
36+
additional node metadata and is more extensible (#3098).
37+
* `ChannelManager::send_payment_with_route` is now deprecated in favor of the
38+
much easier to use `Channelmanager::send_payment`. Those who wish to manually
39+
select the route such payments go over should do so by matching the
40+
`payment_id` in `Router::find_route_with_id` (#3224).
41+
* `lightning-transaction-sync` now takes most `Confirm`s as a generic `Deref`.
42+
You may need an explicit `as &(dyn Confirm)` to update existing code (#3101).
43+
* HTLCs will now be forwarded over any channel with a peer, rather than only
44+
the specific channel requested by the payment sender (#3127).
45+
* `Event::PaymentFailed` is now used in place of `Event::InvoiceRequestFailed`,
46+
holding an `Option` for the payment hash, which will be `None` when no
47+
invoice has been received (#3192).
48+
* `ChannelManager` now supports intercepting and manually paying
49+
`Bolt12Invoice`s, see `UserConfig::manually_handle_bolt12_invoices` (#3078).
50+
* `logger::Record`s now contain a `PaymentHash` (#2930).
51+
* `ChainMonitor` no longer uses an opaque `MonitorUpdateId`, opting to reuse
52+
the `ChannelMonitorUpdate::update_id` instead. Note that you no longer have
53+
to call `ChainMonitor::channel_monitor_updated` for
54+
`ChannelMonitorUpdateStatus::InProgress` updates to a monitor that were
55+
started without a `ChannelMonitorUpdate` (#2957).
56+
* `NodeAnnouncementInfo` is now an enum across a P2P message or contents,
57+
reducing the memory usage of `NetworkGraph` (#3072).
58+
* Onion message handlers now include a message context, which allows for
59+
blinded path authentication (#3085, #3202).
60+
* `ChannelManager` now supports funding with only a txid and output index, see
61+
`ChannelManager::unsafe_manual_funding_transaction_generated` (#3024).
62+
* BOLT 12 invoice requests now go out over, and accept responses over, multiple
63+
paths (#3087).
64+
* `OnionMessenger` now supports intercepting and re-forwarding onion messages
65+
for peers which are offline at the time of receipt when constructed with
66+
`new_with_offline_peer_interception` (#2973).
67+
* Onion message handling trait methods now generally take a `Responder` which
68+
can be used to create a `ResponseInstruction` to better control how responses
69+
are sent. The `ResponseInstruction` can also be converted to
70+
`MessageSendInstructions` which can be passed to `OnionMessenger`'s
71+
`send_onion_message` to respond asynchronously (#2907, #2996, #3263).
72+
* `OnionMessenger::process_pending_events_async` was added (#3060).
73+
* Blinded paths used for BOLT 12 `Offer`/`Refund`s are now compact when they
74+
expire relatively soon, making them somewhat smaller (#3011, #3080).
75+
* `ChannelManager::force_close_*` now take a err msg to send to peers (#2889).
76+
* `BlindedPath`s are now split into `BlindedMessagePath`s and
77+
`BlindedPaymentPath`s and `advance_path_by_one` added to each (#3182).
78+
* `BlindedPaymentPath` now includes the `BlindedPayInfo` (#3245).
79+
* BOLT 12 `Offer`/`Refund` builders no longer require a description, instead
80+
allowing it to be set on the builder itself (#3018).
81+
* The `{Inbound,Outbound}HTLCState{,Details}` and `ChannelDetails` structs have
82+
moved to the `ln::channel_state` module (#3089).
83+
* `Event::OpenChannelRequest` now contains `params` and `is_public` (#3019).
84+
* Peers are no longer disconnected when we force-close a channel (#3088).
85+
* BOLT12 `Offer` and `Refund` now implement `Readable` (#2965).
86+
* `RecipientOnionFields` is now included in `Event::PaymentClaimed` (#3084).
87+
* `ClosureReason::HolderForceClosed::broadcasted_latest_txn` was added (#3107).
88+
* `EcdsaChannelSigner` no longer needs to be `Writeable` and the supertrait
89+
`WriteableEcdsaChannelSigner` has been removed (#3059).
90+
* `CustomMessageHandler::peer_{,dis}connected` were added (#3105).
91+
* `lightning_invoice::Description::as_inner()` was added (#3203).
92+
* Splice-related wire messages have been updated to the latest spec (#3129).
93+
94+
## Bug Fixes
95+
* `channel_update` messages are no longer extracted from failed payments and
96+
applied to the network graph via `Event::PaymentPathFailed`, preventing a
97+
node along the path from identifying the sender of a payment (#3083).
98+
* In order to prevent senders from identifying the recipient of a BOLT 12 offer
99+
which included a blinded path, cryptographic information from blinded paths
100+
are now included in the invoice request verification (#3085, #3139, #3242).
101+
* Routes are now length-limited based on the actual onion contents rather than
102+
a fixed value. This ensures no routes are generated which are unpayable when
103+
sending HTLCs with custom TLVs, blinded paths, or metadata (#3026, #3156).
104+
* Nodes which are not in our local network graph will include peers as
105+
introduction points in blinded paths. This will address issues where test
106+
networks were not usable for BOLT 12 due to failures to find paths over
107+
private channels to LDK nodes. It will also enable creating BOLT 12 offers
108+
for nodes with no local network graph (#3132).
109+
* If a channel partner fails to update the feerate on a channel for some time
110+
and prevailing network feerates increase, LDK will now force-close
111+
automatically to avoid being unable to claim our funds on-chain. In order to
112+
reduce false-positives, it does so by comparing the channel's fee against the
113+
minimum `ConfirmationTarget::MinAllowed{,Non}AnchorChannelRemoteFee` we've
114+
seen over the past day (and do not force-close if we haven't been running for
115+
a full day, #3037).
116+
* `invoice_error`s from BOLT 12 recipients now fail payments (#3085, #3192).
117+
* Fixed a bug which may lead to a missing `Event::ChannelClosed` and missing
118+
`Error` messages for peers when a bogus funding transaction is provided for a
119+
batch channel open (#3029).
120+
* Fixed an overflow in `RawBolt11Invoice::amount_pico_btc()` reachable via
121+
`Bolt11Invoice::amount_milli_satoshis()`, resulting in a debug panic or bogus
122+
value for invoices with invalid values (#3032).
123+
* In incredibly rare circumstances, when using the beta asynchronous
124+
persistence, it is possible that the preimage for an MPP claim could fail to
125+
be persisted in the `ChannelMonitor` for one or more MPP parts, resulting in
126+
only some of the payment's value being claimed (#3120).
127+
* A rare race was fixed which could lead to `ChannelMonitorUpdate`s appearing
128+
after a full `ChannelMonitor` persistence which already contained the same
129+
update. This could have caused a panic on startup for users of the
130+
`MonitorUpdatingPersister` in rare cases after a crash (#3196).
131+
* Background Processor is now woken from `ChainMonitor` when new blocks appear,
132+
reducing the worst-case latency to see an `Event::SpendableOutputs` (#3033).
133+
* `OnionMessenger::get_update_future` was added, allowing it to wake the
134+
background processor to ensure `Event`s are processed quickly (#3194).
135+
136+
## Backwards Compatibility
137+
* BOLT 12 `Offer`s created in prior versions are still valid but are at risk of
138+
deanonymization attacks allowing identification of the recipient node (#3139)
139+
* BOLT 12 outbound payments in state `RecentPaymentDetails::AwaitingInvoice`
140+
will eventually time out after upgrade to 0.0.124 as any received invoice
141+
will be considered invalid (#3139).
142+
* BOLT 12 `Refund`s created in prior version with non-empty `Refund::paths` are
143+
considered invalid by `ChannelManager`. Any attempts to claim them will be
144+
ignored.0.124. `Refund`s without blinded paths are unaffected (#3139).
145+
* The format written by `impl_writeable_tlv_based_enum[_upgradable]` for tuple
146+
variants has changed. This only LDK-external use of these macros (#3160).
147+
* An `Event::PaymentFailed` without a payment hash will deserialize to a
148+
payment hash of all-0s when downgrading (#3192).
149+
* `Event::PaymentFailed` reasons may be mapped to similar reasons that were
150+
available in previous versions on downgrade (#3192).
151+
152+
## Performance Improvements
153+
* Route-finding is XXX how much faster (#3103, #3104, #2803, #3188)
154+
* `lightning-block-sync` now much better avoids lock contention during parallel
155+
requests for block data, speeding up gossip sync from multiple peers (#3197).
156+
157+
## Node Compatibility
158+
* 0.0.123 contained a workaround for CLN v24.02 requiring the `gossip_queries`
159+
feature for all peers. Since an updated CLN has now shipped which does not
160+
require this, the workaround has been reverted (#3172).
161+
* LDK now supports BOLT 12 Offers without an explicit signing public key,
162+
allowing it to pay more compact offers generated by other nodes (#3017).
163+
* LDK now supports BOLT 12 Offers without descriptions when no amount is
164+
present (#3018).
165+
* A bug was fixed which might have led to LDK spuriously rejecting
166+
`channel_update`s which use as-yet-undefined flag bits (#3144).
167+
168+
XXX change stats
169+
1170
# 0.0.123 - May 08, 2024 - "BOLT12 Dust Sweeping"
2171

3172
## API Updates

pending_changelog/3139-bolt12-compatability.txt

Lines changed: 0 additions & 10 deletions
This file was deleted.

pending_changelog/3160-format-change.txt

Lines changed: 0 additions & 4 deletions
This file was deleted.

pending_changelog/3192-invoice-request-failed-event.txt

Lines changed: 0 additions & 18 deletions
This file was deleted.

pending_changelog/3247-deprecate-balance_msat.txt

Lines changed: 0 additions & 1 deletion
This file was deleted.

pending_changelog/blinded-hop-features-optional.txt

Lines changed: 0 additions & 5 deletions
This file was deleted.

pending_changelog/relay-constraints-ser.txt

Lines changed: 0 additions & 7 deletions
This file was deleted.

0 commit comments

Comments
 (0)