Skip to content

Commit 8d41454

Browse files
committed
Add draft 0.1 release notes
1 parent f92c4dc commit 8d41454

File tree

1 file changed

+142
-0
lines changed

1 file changed

+142
-0
lines changed

CHANGELOG.md

Lines changed: 142 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,145 @@
1+
# 0.1 - Jan XXX, 2025 - XXX
2+
3+
## API Updates
4+
* The `lightning-liquidity` crate has been moved into the `rust-lightning`
5+
git tree, enabling support for both sides of the LSPS channel open
6+
negotiation protocols (#3436).
7+
* This release includes support for BIP 353 Human Readable Names resolution.
8+
With the `dnssec` feature enabled, simply call
9+
`ChannelManager::pay_for_offer_from_human_readable_name` with a list of
10+
lightnig nodes which have the `dns_resolver` feature flag set (e.g. those
11+
running LDK with the new `lightning-dns-resolver::OMDomainResolver` set up
12+
to resolve DNS queries for others) and a Human Readable Name (#3346, #3179, #3283).
13+
* Asynchronous `ChannelMonitorUpdate` persistence (i.e. the use of
14+
`ChannelMonitorUpdateStatus::InProgress`) is now considered beta-quality.
15+
There are no known issues with it, though the likelihood of unknown issues
16+
is high (#3414).
17+
* `ChannelManager`'s `send_payment_with_route` and `send_spontaneous_payment`
18+
were removed. Use `send_payment` and `send_spontaneous_payment_with_retry`
19+
(now renamed `send_spontaneous_payment`) instead (#3430).
20+
* `ChannelMonitor`s no longer need to be re-persisted after deserializing the
21+
`ChannelManager` before beginning normal operation. As such,
22+
`ChannelManagerReadArgs::channel_monitors` no longer requires mutable
23+
references (#3322).
24+
* Additional information is now stored in `ChannelMonitorUpdate`s which may
25+
increase the average size of `ChannelMonitorUpdate`s when claiming inbound
26+
payments substantially. The expected maximum size of `ChannelMonitorUpdate`s
27+
shouldn't change materially (#3322).
28+
* Redundant `Event::PaymentClaimed`s will be generated more frequently on
29+
startup compared to previous versions.
30+
`Event::PaymentClaim{able,ed}::payment_id` has been added to allow for more
31+
robust handling of redundant events on payments with duplicate
32+
`PaymentHash`es (#3303, #3322).
33+
* `ChannelMonitorUpdate::update_id`s no longer have a magic value (of
34+
`u64::MAX`) for updates after a channel has been closed. They are now
35+
always monotonically increasing (#3355).
36+
* The default `ProbabilisticScoringFeeParameters` values now recommend specific
37+
ratios between different penalties, and default penalties now allow for
38+
higher fees in order to reduce payment latency (#3495).
39+
* On-chain state resolution now more aggressively batches claims into single
40+
transactions, reducing on-chain fee costs when resolving multiple HTLCs for a
41+
single channel force-closure. This also reduces the on-chain reserve
42+
requirements for nodes using anchor channels (#3340).
43+
* A `MigratableKVStore` trait was added (and implemented for
44+
`FilesystemStore`), enabling easy migration between `KVStore`s (#3481).
45+
* `GossipVerifier` now requires a `P2PGossipSync` which holds a reference to
46+
the `GossipVerifier` via an `Arc` (#3432).
47+
* The `max_level_*` features were removed as the performance gain compared to
48+
doing the limiting at runtime was negligible (#3431).
49+
* `ChannelManager::create_bolt11_invoice` was added, deprecating the
50+
`lightning::ln::invoice_utils` module (#3389).
51+
* The `bech32` dependency has been upgraded to 0.11 across crates (#3270).
52+
* Support for creating BOLT 12 `invoice_request`s with a static signing key
53+
rather than an ephemeral one has been removed (#3264).
54+
* The `Router` trait no longer extends the `MessageRouter` trait, creating an
55+
extra argument to `ChannelManager` construction (#3326).
56+
* The deprecated `AvailableBalances::balance_msat` has been removed in favor of
57+
`ChannelMonitor::get_claimable_balances` (#3243).
58+
* Deprecated re-exports of `Payment{Hash,Preimage,Secret}` and `features` were
59+
removed (#3359).
60+
* `bolt11_payment::*_from_zero_amount_invoice` methods were renamed
61+
`*_from_variable_amount_invoice` (#3397)
62+
* Offer `signing_pubkey` (and related struct names) have been renamed
63+
`issuer_signing_pubkey` (#3218).
64+
* `Event::PaymentForwarded::{prev,next}_node_id` were added (#3458).
65+
* `Event::ChannelClosed::last_local_balance_msat` was added (#3235).
66+
* `RoutingMessageHandler::handle_*` now all have a node_id argument (#3291).
67+
* `lightning::util::persist::MonitorName` has been exposed (#3376).
68+
* `ProbabilisticScorer::live_estimated_payment_success_probability` was added
69+
(#3420)
70+
* `EcdsaChannelSigner::sign_splicing_funding_input` was added to support an
71+
eventual splicing feature (#3316).
72+
* `{Payment,Offer}Id` now support lowercase-hex formatting (#3377).
73+
74+
## Bug Fixes
75+
* Fixed a rare case where a BOLT 12 payment may be made duplicatively if the
76+
node crashes while processing a BOLT 12 `invoice` message (#3313).
77+
* Fixed a bug where a malicious sender could cause a payment `Event` to be
78+
generated with an `OfferId` using a payment with a lower amount than the
79+
corresponding BOLT 12 offer would have required. The amount in the
80+
`Event::Payment{Claimable,Claimed}` were still correct (#3435).
81+
* The `ProbabilisticScorer` model and associated default scoring parameters
82+
were tweaked to be more predictive of real-world results (#3368, #3495).
83+
* `ProbabilisticScoringFeeParameters::base_penalty_amount_multiplier_msat` no
84+
longer includes any pending HTLCs we already have through channels in the
85+
graph, avoiding over-penalizing them in comparison to other channels (#3356).
86+
* A `ChannelMonitor` will no longer be archived if a `MonitorEvent` containing
87+
a preimage for another channel is pending. This fixes an issue where a
88+
payment preimage needed for another channel claim is lost if events go
89+
un-processed for 4038 blocks (#3450).
90+
* Parsing BOLT 12 offers and refunds with uppercase prefixes now works (#3505).
91+
* `std` builds no longer send the full gossip state to peers that do not
92+
request it (#3390).
93+
* `lightning-block-sync` listeners now receive `block_connected` calls, rather
94+
than always receiving `filtered_block_connected` calls (#3354).
95+
* Fixed a bug where some transactions were broadcasted one block before their
96+
locktime made them candidates for inclusion in the mempool (though they would
97+
be automatically re-broadcasted later, #3453).
98+
* `ChainMonitor` now persists `ChannelMonitor`s when their `Balance` set first
99+
goes empty, making `ChannelMonitor` pruning more reliable on nodes which are
100+
only online briefly (e.g. mobile nodes, #3442).
101+
* BOLT 12 invoice requests now better handle intermittent internet connectivity
102+
(e.g. on mobile devices with app interruptions, #3010).
103+
* Broadcast-gossip `MessageSendEvent`s from the `ChannelMessageHandler` are now
104+
delivered to peers even if the peer is behind in processing relayed gossip.
105+
This ensures our own gossip propagates well even if we have very limited
106+
upload bandwidth (#3142).
107+
108+
## Performance Improvements
109+
* LDK now verifies `channel_update` gossip messages without holding a lock,
110+
allowing additional parallelism during gossip sync (#3310).
111+
* LDK now checks if it already has certain gossip messages before verifying the
112+
message signatures, reducing CPU usage during gossip sync after the first
113+
startup (#3305).
114+
115+
## Node Compatibility
116+
* LDK now handles fields in the experimental range of BOLT 12 messages (#3237).
117+
118+
## Backwards Compatibility
119+
* Nodes with pending forwarded HTLCs or unclaimed payments cannot be
120+
upgraded directly from 0.0.123 or earlier to 0.1. Instead, they must
121+
first either resolve all pending HTLCs (including those pending
122+
resolution on-chain), or run 0.0.124 or 0.0.125 and resolve any HTLCs that
123+
were originally forwarded or received running 0.0.123 or earlier (#3355).
124+
* `ChannelMonitor`s not being re-persisted after deserializing the
125+
`ChannelManager` only applies to upgraded nodes *after* a startup with the
126+
old semantics completes at least once. In other words, you must deserialize
127+
the `ChannelManager` with an upgraded LDK, persist the `ChannelMonitor`s as
128+
you would on pre-0.1 versions of LDK, then continue to normal startup once,
129+
and for startups thereafter you can take advantage of the new semantics
130+
avoiding redundant persistence on startup (#3322).
131+
* `UserConfig::accept_mpp_keysend` was removed, thus the presence of pending
132+
inbound MPP keysend payments will prevent downgrade to LDK 0.0.115 and
133+
earlier (#3439).
134+
* Inbound payments initialized using the removed
135+
`ChannelManager::create_inbound_payment{,_for_hash}_legacy` API will no
136+
longer be accepted by LDK 0.1 (#3383).
137+
138+
## Security
139+
* Various denial-of-service issues in the formerly-alpha `lightning-liquidity`
140+
crate have been addressed (#3436, #3493).
141+
142+
1143
# 0.0.125 - Oct 14, 2024 - "Delayed Beta Testing"
2144

3145
## Bug Fixes

0 commit comments

Comments
 (0)