Skip to content

Commit 4deb263

Browse files
authored
Merge pull request #2794 from TheBlueMatt/2023-12-cut-119
Cut 0.0.119
2 parents ef2156a + c6e4deb commit 4deb263

File tree

15 files changed

+146
-46
lines changed

15 files changed

+146
-46
lines changed

CHANGELOG.md

+119
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,122 @@
1+
# 0.0.119 - Dec 15, 2023 - "Spring Cleaning for Christmas"
2+
3+
## API Updates
4+
* The LDK crate ecosystem MSRV has been increased to 1.63 (#2681).
5+
* The `bitcoin` dependency has been updated to version 0.30 (#2740).
6+
* `lightning-invoice::payment::*` have been replaced with parameter generation
7+
via `payment_parameters_from[_zero_amount]_invoice` (#2727).
8+
* `{CoinSelection,Wallet}Source::sign_tx` are now `sign_psbt`, providing more
9+
information, incl spent outputs, about the transaction being signed (#2775).
10+
* Logger `Record`s now include `channel_id` and `peer_id` fields. These are
11+
opportunistically filled in when a log record is specific to a given channel
12+
and/or peer, and may occasionally be spuriously empty (#2314).
13+
* When handling send or reply onion messages (e.g. for BOLT12 payments), a new
14+
`Event::ConnectionNeeded` may be raised, indicating a direct connection
15+
should be made to a payee or an introduction point. This event is expected to
16+
be removed once onion message forwarding is widespread in the network (#2723)
17+
* Scoring data decay now happens via `ScoreUpDate::time_passed`, called from
18+
`lightning-background-processor`. `process_events_async` now takes a new
19+
time-fetch function, and `ScoreUpDate` methods now take the current time as a
20+
`Duration` argument. This avoids fetching time during pathfinding (#2656).
21+
* Receiving payments to multi-hop blinded paths is now supported (#2688).
22+
* `MessageRouter` and `Router` now feature methods to generate blinded paths to
23+
the local node for incoming messages and payments. `Router` now extends
24+
`MessageRouter`, and both are used in `ChannelManager` when processing or
25+
creating BOLT12 structures to generate multi-hop blinded paths (#1781).
26+
* `lightning-transaction-sync` now supports Electrum-based sync (#2685).
27+
* `Confirm::get_relevant_txids` now returns the height at which a transaction
28+
was confirmed. This can be used to assist in reorg detection (#2685).
29+
* `ConfirmationTarget::MaxAllowedNonAnchorChannelRemoteFee` has been removed.
30+
Non-anchor channel feerates are bounded indirectly through
31+
`ChannelConfig::max_dust_htlc_exposure` (#2696).
32+
* `lightning-invoice` `Description`s now rely on `UntrustedString` for
33+
sanitization (#2730).
34+
* `ScoreLookUp::channel_penalty_msat` now uses `CandidateRouteHop` (#2551).
35+
* The `EcdsaChannelSigner` trait was moved to `lightning::sign::ecdsa` (#2512).
36+
* `SignerProvider::get_destination_script` now takes `channel_keys_id` (#2744)
37+
* `SpendableOutputDescriptor::StaticOutput` now has `channel_keys_id` (#2749).
38+
* `EcdsaChannelSigner::sign_counterparty_commitment` now takes HTLC preimages
39+
for both inbound and outbound HTLCs (#2753).
40+
* `ClaimedHTLC` now includes a `counterparty_skimmed_fee_msat` field (#2715).
41+
* `peel_payment_onion` was added to decode an encrypted onion for a payment
42+
without receiving an HTLC. This allows for stateless verification of if a
43+
theoretical payment would be accepted prior to receipt (#2700).
44+
* `create_payment_onion` was added to construct an encrypted onion for a
45+
payment path without sending an HTLC immediately (#2677).
46+
* Various keys used in channels are now wrapped to provide type-safety for
47+
specific usages of the keys (#2675).
48+
* `TaggedHash` now includes the raw `tag` and `merkle_root` (#2687).
49+
* `Offer::is_expired_no_std` was added (#2689).
50+
* `PaymentPurpose::preimage()` was added (#2768).
51+
* `temporary_channel_id` can now be specified in `create_channel` (#2699).
52+
* Wire definitions for splicing messages were added (#2544).
53+
* Various `lightning-invoice` structs now impl `Display`, now have pub fields,
54+
or impl `From` (#2730).
55+
* The `Hash` trait is now implemented for more structs, incl P2P msgs (#2716).
56+
57+
## Performance Improvements
58+
* Memory allocations (though not memory usage) have been substantially reduced,
59+
meaning less overhead and hopefully less memory fragmentation (#2708, #2779).
60+
61+
## Bug Fixes
62+
* Since 0.0.117, calling `close_channel*` on a channel which has not yet been
63+
funded would previously result in an infinite loop and hang (#2760).
64+
* Since 0.0.116, sending payments requiring data in the onion for the recipient
65+
which was too large for the onion may have caused corruption which resulted
66+
in payment failure (#2752).
67+
* Cooperative channel closure on channels with remaining output HTLCs may have
68+
spuriously force-closed (#2529).
69+
* In LDK versions 0.0.116 through 0.0.118, in rare cases where skimmed fees are
70+
present on shutdown the `ChannelManager` may fail to deserialize (#2735).
71+
* `ChannelConfig::max_dust_exposure` values which, converted to absolute fees,
72+
exceeded 2^63 - 1 would result in an overflow and could lead to spurious
73+
payment failures or channel closures (#2722).
74+
* In cases where LDK is operating with provably-stale state, it panics to
75+
avoid funds loss. This may not have happened in cases where LDK was behind
76+
only exactly one state, leading instead to a revoked broadcast and funds
77+
loss (#2721).
78+
* Fixed a bug where decoding `Txid`s from Bitcoin Core JSON-RPC responses using
79+
`lightning-block-sync` would not properly byte-swap the hash. Note that LDK
80+
does not use this API internally (#2796).
81+
82+
## Backwards Compatibility
83+
* `ChannelManager`s written with LDK 0.0.119 are no longer readable by versions
84+
of LDK prior to 0.0.113. Users wishing to downgrade to LDK 0.0.112 or before
85+
can read an 0.0.119-serialized `ChannelManager` with a version of LDK from
86+
0.0.113 to 0.0.118, re-serialize it, and then downgrade (#2708).
87+
* Nodes that upgrade to 0.0.119 and subsequently downgrade after receiving a
88+
payment to a blinded path may leak recipient information if one or more of
89+
those HTLCs later fails (#2688).
90+
* Similarly, forwarding a blinded HTLC and subsequently downgrading to an LDK
91+
version prior to 0.0.119 may result in leaking the path information to the
92+
payment sender (#2540).
93+
94+
In total, this release features 148 files changed, 13780 insertions, 6279
95+
deletions in 280 commits from 22 authors, in alphabetical order:
96+
* Arik Sosman
97+
* Chris Waterson
98+
* Elias Rohrer
99+
* Evan Feenstra
100+
* Gursharan Singh
101+
* Jeffrey Czyz
102+
* John Cantrell
103+
* Lalitmohansharma1
104+
* Matt Corallo
105+
* Matthew Rheaume
106+
* Orbital
107+
* Rachel Malonson
108+
* Valentine Wallace
109+
* Willem Van Lint
110+
* Wilmer Paulino
111+
* alexanderwiederin
112+
* benthecarman
113+
* henghonglee
114+
* jbesraa
115+
* olegkubrakov
116+
* optout
117+
* shaavan
118+
119+
1120
# 0.0.118 - Oct 23, 2023 - "Just the Twelve Sinks"
2121

3122
## API Updates

lightning-background-processor/Cargo.toml

+6-6
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "lightning-background-processor"
3-
version = "0.0.118"
3+
version = "0.0.119"
44
authors = ["Valentine Wallace <[email protected]>"]
55
license = "MIT OR Apache-2.0"
66
repository = "https://github.com/lightningdevkit/rust-lightning"
@@ -22,11 +22,11 @@ default = ["std"]
2222

2323
[dependencies]
2424
bitcoin = { version = "0.30.2", default-features = false }
25-
lightning = { version = "0.0.118", path = "../lightning", default-features = false }
26-
lightning-rapid-gossip-sync = { version = "0.0.118", path = "../lightning-rapid-gossip-sync", default-features = false }
25+
lightning = { version = "0.0.119", path = "../lightning", default-features = false }
26+
lightning-rapid-gossip-sync = { version = "0.0.119", path = "../lightning-rapid-gossip-sync", default-features = false }
2727

2828
[dev-dependencies]
2929
tokio = { version = "1.35", features = [ "macros", "rt", "rt-multi-thread", "sync", "time" ] }
30-
lightning = { version = "0.0.118", path = "../lightning", features = ["_test_utils"] }
31-
lightning-invoice = { version = "0.26.0", path = "../lightning-invoice" }
32-
lightning-persister = { version = "0.0.118", path = "../lightning-persister" }
30+
lightning = { version = "0.0.119", path = "../lightning", features = ["_test_utils"] }
31+
lightning-invoice = { version = "0.27.0", path = "../lightning-invoice" }
32+
lightning-persister = { version = "0.0.119", path = "../lightning-persister" }

lightning-block-sync/Cargo.toml

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "lightning-block-sync"
3-
version = "0.0.118"
3+
version = "0.0.119"
44
authors = ["Jeffrey Czyz", "Matt Corallo"]
55
license = "MIT OR Apache-2.0"
66
repository = "https://github.com/lightningdevkit/rust-lightning"
@@ -20,11 +20,11 @@ rpc-client = [ "serde_json", "chunked_transfer" ]
2020
[dependencies]
2121
bitcoin = "0.30.2"
2222
hex = { package = "hex-conservative", version = "0.1.1", default-features = false }
23-
lightning = { version = "0.0.118", path = "../lightning" }
23+
lightning = { version = "0.0.119", path = "../lightning" }
2424
tokio = { version = "1.35", features = [ "io-util", "net", "time", "rt" ], optional = true }
2525
serde_json = { version = "1.0", optional = true }
2626
chunked_transfer = { version = "1.4", optional = true }
2727

2828
[dev-dependencies]
29-
lightning = { version = "0.0.118", path = "../lightning", features = ["_test_utils"] }
29+
lightning = { version = "0.0.119", path = "../lightning", features = ["_test_utils"] }
3030
tokio = { version = "1.35", features = [ "macros", "rt" ] }

lightning-custom-message/Cargo.toml

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "lightning-custom-message"
3-
version = "0.0.118"
3+
version = "0.0.119"
44
authors = ["Jeffrey Czyz"]
55
license = "MIT OR Apache-2.0"
66
repository = "https://github.com/lightningdevkit/rust-lightning"
@@ -15,4 +15,4 @@ rustdoc-args = ["--cfg", "docsrs"]
1515

1616
[dependencies]
1717
bitcoin = "0.30.2"
18-
lightning = { version = "0.0.118", path = "../lightning" }
18+
lightning = { version = "0.0.119", path = "../lightning" }

lightning-invoice/Cargo.toml

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[package]
22
name = "lightning-invoice"
33
description = "Data structures to parse and serialize BOLT11 lightning invoices"
4-
version = "0.26.0"
4+
version = "0.27.0"
55
authors = ["Sebastian Geisler <[email protected]>"]
66
documentation = "https://docs.rs/lightning-invoice/"
77
license = "MIT OR Apache-2.0"
@@ -21,14 +21,14 @@ std = ["bitcoin/std", "num-traits/std", "lightning/std", "bech32/std"]
2121

2222
[dependencies]
2323
bech32 = { version = "0.9.0", default-features = false }
24-
lightning = { version = "0.0.118", path = "../lightning", default-features = false }
24+
lightning = { version = "0.0.119", path = "../lightning", default-features = false }
2525
secp256k1 = { version = "0.27.0", default-features = false, features = ["recovery", "alloc"] }
2626
num-traits = { version = "0.2.8", default-features = false }
2727
hashbrown = { version = "0.8", optional = true }
2828
serde = { version = "1.0.118", optional = true }
2929
bitcoin = { version = "0.30.2", default-features = false }
3030

3131
[dev-dependencies]
32-
lightning = { version = "0.0.118", path = "../lightning", default-features = false, features = ["_test_utils"] }
32+
lightning = { version = "0.0.119", path = "../lightning", default-features = false, features = ["_test_utils"] }
3333
hex = { package = "hex-conservative", version = "0.1.1", default-features = false }
3434
serde_json = { version = "1"}

lightning-net-tokio/Cargo.toml

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "lightning-net-tokio"
3-
version = "0.0.118"
3+
version = "0.0.119"
44
authors = ["Matt Corallo"]
55
license = "MIT OR Apache-2.0"
66
repository = "https://github.com/lightningdevkit/rust-lightning/"
@@ -16,9 +16,9 @@ rustdoc-args = ["--cfg", "docsrs"]
1616

1717
[dependencies]
1818
bitcoin = "0.30.2"
19-
lightning = { version = "0.0.118", path = "../lightning" }
19+
lightning = { version = "0.0.119", path = "../lightning" }
2020
tokio = { version = "1.35", features = [ "rt", "sync", "net", "time" ] }
2121

2222
[dev-dependencies]
2323
tokio = { version = "1.35", features = [ "macros", "rt", "rt-multi-thread", "sync", "net", "time" ] }
24-
lightning = { version = "0.0.118", path = "../lightning", features = ["_test_utils"] }
24+
lightning = { version = "0.0.119", path = "../lightning", features = ["_test_utils"] }

lightning-persister/Cargo.toml

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "lightning-persister"
3-
version = "0.0.118"
3+
version = "0.0.119"
44
authors = ["Valentine Wallace", "Matt Corallo"]
55
license = "MIT OR Apache-2.0"
66
repository = "https://github.com/lightningdevkit/rust-lightning"
@@ -15,7 +15,7 @@ rustdoc-args = ["--cfg", "docsrs"]
1515

1616
[dependencies]
1717
bitcoin = "0.30.2"
18-
lightning = { version = "0.0.118", path = "../lightning" }
18+
lightning = { version = "0.0.119", path = "../lightning" }
1919

2020
[target.'cfg(windows)'.dependencies]
2121
windows-sys = { version = "0.48.0", default-features = false, features = ["Win32_Storage_FileSystem", "Win32_Foundation"] }
@@ -24,5 +24,5 @@ windows-sys = { version = "0.48.0", default-features = false, features = ["Win32
2424
criterion = { version = "0.4", optional = true, default-features = false }
2525

2626
[dev-dependencies]
27-
lightning = { version = "0.0.118", path = "../lightning", features = ["_test_utils"] }
27+
lightning = { version = "0.0.119", path = "../lightning", features = ["_test_utils"] }
2828
bitcoin = { version = "0.30.2", default-features = false }

lightning-rapid-gossip-sync/Cargo.toml

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "lightning-rapid-gossip-sync"
3-
version = "0.0.118"
3+
version = "0.0.119"
44
authors = ["Arik Sosman <[email protected]>"]
55
license = "MIT OR Apache-2.0"
66
repository = "https://github.com/lightningdevkit/rust-lightning"
@@ -15,11 +15,11 @@ no-std = ["lightning/no-std"]
1515
std = ["lightning/std"]
1616

1717
[dependencies]
18-
lightning = { version = "0.0.118", path = "../lightning", default-features = false }
18+
lightning = { version = "0.0.119", path = "../lightning", default-features = false }
1919
bitcoin = { version = "0.30.2", default-features = false }
2020

2121
[target.'cfg(ldk_bench)'.dependencies]
2222
criterion = { version = "0.4", optional = true, default-features = false }
2323

2424
[dev-dependencies]
25-
lightning = { version = "0.0.118", path = "../lightning", features = ["_test_utils"] }
25+
lightning = { version = "0.0.119", path = "../lightning", features = ["_test_utils"] }

lightning-transaction-sync/Cargo.toml

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "lightning-transaction-sync"
3-
version = "0.0.118"
3+
version = "0.0.119"
44
authors = ["Elias Rohrer"]
55
license = "MIT OR Apache-2.0"
66
repository = "https://github.com/lightningdevkit/rust-lightning"
@@ -22,15 +22,15 @@ electrum = ["electrum-client"]
2222
async-interface = []
2323

2424
[dependencies]
25-
lightning = { version = "0.0.118", path = "../lightning", default-features = false, features = ["std"] }
25+
lightning = { version = "0.0.119", path = "../lightning", default-features = false, features = ["std"] }
2626
bitcoin = { version = "0.30.2", default-features = false }
2727
bdk-macros = "0.6"
2828
futures = { version = "0.3", optional = true }
2929
esplora-client = { version = "0.6", default-features = false, optional = true }
3030
electrum-client = { version = "0.18.0", optional = true }
3131

3232
[dev-dependencies]
33-
lightning = { version = "0.0.118", path = "../lightning", default-features = false, features = ["std", "_test_utils"] }
33+
lightning = { version = "0.0.119", path = "../lightning", default-features = false, features = ["std", "_test_utils"] }
3434
tokio = { version = "1.35.0", features = ["full"] }
3535

3636
[target.'cfg(not(no_download))'.dev-dependencies]

lightning/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "lightning"
3-
version = "0.0.118"
3+
version = "0.0.119"
44
authors = ["Matt Corallo"]
55
license = "MIT OR Apache-2.0"
66
repository = "https://github.com/lightningdevkit/rust-lightning/"

pending_changelog/113-channel-ser-compat.txt

-4
This file was deleted.

pending_changelog/electrum.txt

-3
This file was deleted.

pending_changelog/multihop-blinded-recv.txt

-4
This file was deleted.

pending_changelog/route-blinding-intro-node.txt

-4
This file was deleted.

pending_changelog/skimmed_fee_ser.txt

-4
This file was deleted.

0 commit comments

Comments
 (0)