Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cut 0.0.119 #2794

Merged
merged 2 commits into from
Dec 16, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
119 changes: 119 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,122 @@
# 0.0.119 - Dec 15, 2023 - "Spring Cleaning for Christmas"

## API Updates
wpaulino marked this conversation as resolved.
Show resolved Hide resolved
* The LDK crate ecosystem MSRV has been increased to 1.63 (#2681).
* The `bitcoin` dependency has been updated to version 0.30 (#2740).
* `lightning-invoice::payment::*` have been replaced with parameter generation
via `payment_parameters_from[_zero_amount]_invoice` (#2727).
* `{CoinSelection,Wallet}Source::sign_tx` are now `sign_psbt`, providing more
information, incl spent outputs, about the transaction being signed (#2775).
* Logger `Record`s now include `channel_id` and `peer_id` fields. These are
opportunistically filled in when a log record is specific to a given channel
and/or peer, and may occasionally be spuriously empty (#2314).
* When handling send or reply onion messages (e.g. for BOLT12 payments), a new
`Event::ConnectionNeeded` may be raised, indicating a direct connection
should be made to a payee or an introduction point. This event is expected to
be removed once onion message forwarding is widespread in the network (#2723)
* Scoring data decay now happens via `ScoreUpDate::time_passed`, called from
`lightning-background-processor`. `process_events_async` now takes a new
time-fetch function, and `ScoreUpDate` methods now take the current time as a
`Duration` argument. This avoids fetching time during pathfinding (#2656).
* Receiving payments to multi-hop blinded paths is now supported (#2688).
* `MessageRouter` and `Router` now feature methods to generate blinded paths to
the local node for incoming messages and payments. `Router` now extends
`MessageRouter`, and both are used in `ChannelManager` when processing or
creating BOLT12 structures to generate multi-hop blinded paths (#1781).
* `lightning-transaction-sync` now supports Electrum-based sync (#2685).
* `Confirm::get_relevant_txids` now returns the height at which a transaction
was confirmed. This can be used to assist in reorg detection (#2685).
* `ConfirmationTarget::MaxAllowedNonAnchorChannelRemoteFee` has been removed.
Non-anchor channel feerates are bounded indirectly through
`ChannelConfig::max_dust_htlc_exposure` (#2696).
* `lightning-invoice` `Description`s now rely on `UntrustedString` for
sanitization (#2730).
* `ScoreLookUp::channel_penalty_msat` now uses `CandidateRouteHop` (#2551).
* The `EcdsaChannelSigner` trait was moved to `lightning::sign::ecdsa` (#2512).
* `SignerProvider::get_destination_script` now takes `channel_keys_id` (#2744)
* `SpendableOutputDescriptor::StaticOutput` now has `channel_keys_id` (#2749).
* `EcdsaChannelSigner::sign_counterparty_commitment` now takes HTLC preimages
for both inbound and outbound HTLCs (#2753).
* `ClaimedHTLC` now includes a `counterparty_skimmed_fee_msat` field (#2715).
* `peel_payment_onion` was added to decode an encrypted onion for a payment
without receiving an HTLC. This allows for stateless verification of if a
theoretical payment would be accepted prior to receipt (#2700).
* `create_payment_onion` was added to construct an encrypted onion for a
payment path without sending an HTLC immediately (#2677).
* Various keys used in channels are now wrapped to provide type-safety for
specific usages of the keys (#2675).
* `TaggedHash` now includes the raw `tag` and `merkle_root` (#2687).
* `Offer::is_expired_no_std` was added (#2689).
* `PaymentPurpose::preimage()` was added (#2768).
* `temporary_channel_id` can now be specified in `create_channel` (#2699).
* Wire definitions for splicing messages were added (#2544).
* Various `lightning-invoice` structs now impl `Display`, now have pub fields,
or impl `From` (#2730).
* The `Hash` trait is now implemented for more structs, incl P2P msgs (#2716).

## Performance Improvements
* Memory allocations (though not memory usage) have been substantially reduced,
meaning less overhead and hopefully less memory fragmentation (#2708, #2779).

## Bug Fixes
* Since 0.0.117, calling `close_channel*` on a channel which has not yet been
funded would previously result in an infinite loop and hang (#2760).
* Since 0.0.116, sending payments requiring data in the onion for the recipient
which was too large for the onion may have caused corruption which resulted
in payment failure (#2752).
* Cooperative channel closure on channels with remaining output HTLCs may have
spuriously force-closed (#2529).
* In LDK versions 0.0.116 through 0.0.118, in rare cases where skimmed fees are
present on shutdown the `ChannelManager` may fail to deserialize (#2735).
* `ChannelConfig::max_dust_exposure` values which, converted to absolute fees,
exceeded 2^63 - 1 would result in an overflow and could lead to spurious
payment failures or channel closures (#2722).
* In cases where LDK is operating with provably-stale state, it panics to
avoid funds loss. This may not have happened in cases where LDK was behind
only exactly one state, leading instead to a revoked broadcast and funds
loss (#2721).
* Fixed a bug where decoding `Txid`s from Bitcoin Core JSON-RPC responses using
`lightning-block-sync` would not properly byte-swap the hash. Note that LDK
does not use this API internally (#2796).

## Backwards Compatibility
* `ChannelManager`s written with LDK 0.0.119 are no longer readable by versions
of LDK prior to 0.0.113. Users wishing to downgrade to LDK 0.0.112 or before
can read an 0.0.119-serialized `ChannelManager` with a version of LDK from
0.0.113 to 0.0.118, re-serialize it, and then downgrade (#2708).
* Nodes that upgrade to 0.0.119 and subsequently downgrade after receiving a
payment to a blinded path may leak recipient information if one or more of
those HTLCs later fails (#2688).
* Similarly, forwarding a blinded HTLC and subsequently downgrading to an LDK
version prior to 0.0.119 may result in leaking the path information to the
payment sender (#2540).

In total, this release features 148 files changed, 13780 insertions, 6279
deletions in 280 commits from 22 authors, in alphabetical order:
* Arik Sosman
* Chris Waterson
* Elias Rohrer
* Evan Feenstra
* Gursharan Singh
* Jeffrey Czyz
* John Cantrell
* Lalitmohansharma1
* Matt Corallo
* Matthew Rheaume
* Orbital
* Rachel Malonson
* Valentine Wallace
* Willem Van Lint
* Wilmer Paulino
* alexanderwiederin
* benthecarman
* henghonglee
* jbesraa
* olegkubrakov
* optout
* shaavan


# 0.0.118 - Oct 23, 2023 - "Just the Twelve Sinks"

## API Updates
Expand Down
12 changes: 6 additions & 6 deletions lightning-background-processor/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "lightning-background-processor"
version = "0.0.118"
version = "0.0.119"
authors = ["Valentine Wallace <vwallace@protonmail.com>"]
license = "MIT OR Apache-2.0"
repository = "https://github.com/lightningdevkit/rust-lightning"
Expand All @@ -22,11 +22,11 @@ default = ["std"]

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

[dev-dependencies]
tokio = { version = "1.35", features = [ "macros", "rt", "rt-multi-thread", "sync", "time" ] }
lightning = { version = "0.0.118", path = "../lightning", features = ["_test_utils"] }
lightning-invoice = { version = "0.26.0", path = "../lightning-invoice" }
lightning-persister = { version = "0.0.118", path = "../lightning-persister" }
lightning = { version = "0.0.119", path = "../lightning", features = ["_test_utils"] }
lightning-invoice = { version = "0.27.0", path = "../lightning-invoice" }
lightning-persister = { version = "0.0.119", path = "../lightning-persister" }
6 changes: 3 additions & 3 deletions lightning-block-sync/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "lightning-block-sync"
version = "0.0.118"
version = "0.0.119"
authors = ["Jeffrey Czyz", "Matt Corallo"]
license = "MIT OR Apache-2.0"
repository = "https://github.com/lightningdevkit/rust-lightning"
Expand All @@ -20,11 +20,11 @@ rpc-client = [ "serde_json", "chunked_transfer" ]
[dependencies]
bitcoin = "0.30.2"
hex = { package = "hex-conservative", version = "0.1.1", default-features = false }
lightning = { version = "0.0.118", path = "../lightning" }
lightning = { version = "0.0.119", path = "../lightning" }
tokio = { version = "1.35", features = [ "io-util", "net", "time", "rt" ], optional = true }
serde_json = { version = "1.0", optional = true }
chunked_transfer = { version = "1.4", optional = true }

[dev-dependencies]
lightning = { version = "0.0.118", path = "../lightning", features = ["_test_utils"] }
lightning = { version = "0.0.119", path = "../lightning", features = ["_test_utils"] }
tokio = { version = "1.35", features = [ "macros", "rt" ] }
4 changes: 2 additions & 2 deletions lightning-custom-message/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "lightning-custom-message"
version = "0.0.118"
version = "0.0.119"
authors = ["Jeffrey Czyz"]
license = "MIT OR Apache-2.0"
repository = "https://github.com/lightningdevkit/rust-lightning"
Expand All @@ -15,4 +15,4 @@ rustdoc-args = ["--cfg", "docsrs"]

[dependencies]
bitcoin = "0.30.2"
lightning = { version = "0.0.118", path = "../lightning" }
lightning = { version = "0.0.119", path = "../lightning" }
6 changes: 3 additions & 3 deletions lightning-invoice/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[package]
name = "lightning-invoice"
description = "Data structures to parse and serialize BOLT11 lightning invoices"
version = "0.26.0"
version = "0.27.0"
authors = ["Sebastian Geisler <sgeisler@wh2.tu-dresden.de>"]
documentation = "https://docs.rs/lightning-invoice/"
license = "MIT OR Apache-2.0"
Expand All @@ -21,14 +21,14 @@ std = ["bitcoin/std", "num-traits/std", "lightning/std", "bech32/std"]

[dependencies]
bech32 = { version = "0.9.0", default-features = false }
lightning = { version = "0.0.118", path = "../lightning", default-features = false }
lightning = { version = "0.0.119", path = "../lightning", default-features = false }
secp256k1 = { version = "0.27.0", default-features = false, features = ["recovery", "alloc"] }
num-traits = { version = "0.2.8", default-features = false }
hashbrown = { version = "0.8", optional = true }
serde = { version = "1.0.118", optional = true }
bitcoin = { version = "0.30.2", default-features = false }

[dev-dependencies]
lightning = { version = "0.0.118", path = "../lightning", default-features = false, features = ["_test_utils"] }
lightning = { version = "0.0.119", path = "../lightning", default-features = false, features = ["_test_utils"] }
hex = { package = "hex-conservative", version = "0.1.1", default-features = false }
serde_json = { version = "1"}
6 changes: 3 additions & 3 deletions lightning-net-tokio/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "lightning-net-tokio"
version = "0.0.118"
version = "0.0.119"
authors = ["Matt Corallo"]
license = "MIT OR Apache-2.0"
repository = "https://github.com/lightningdevkit/rust-lightning/"
Expand All @@ -16,9 +16,9 @@ rustdoc-args = ["--cfg", "docsrs"]

[dependencies]
bitcoin = "0.30.2"
lightning = { version = "0.0.118", path = "../lightning" }
lightning = { version = "0.0.119", path = "../lightning" }
tokio = { version = "1.35", features = [ "rt", "sync", "net", "time" ] }

[dev-dependencies]
tokio = { version = "1.35", features = [ "macros", "rt", "rt-multi-thread", "sync", "net", "time" ] }
lightning = { version = "0.0.118", path = "../lightning", features = ["_test_utils"] }
lightning = { version = "0.0.119", path = "../lightning", features = ["_test_utils"] }
6 changes: 3 additions & 3 deletions lightning-persister/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "lightning-persister"
version = "0.0.118"
version = "0.0.119"
authors = ["Valentine Wallace", "Matt Corallo"]
license = "MIT OR Apache-2.0"
repository = "https://github.com/lightningdevkit/rust-lightning"
Expand All @@ -15,7 +15,7 @@ rustdoc-args = ["--cfg", "docsrs"]

[dependencies]
bitcoin = "0.30.2"
lightning = { version = "0.0.118", path = "../lightning" }
lightning = { version = "0.0.119", path = "../lightning" }

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

[dev-dependencies]
lightning = { version = "0.0.118", path = "../lightning", features = ["_test_utils"] }
lightning = { version = "0.0.119", path = "../lightning", features = ["_test_utils"] }
bitcoin = { version = "0.30.2", default-features = false }
6 changes: 3 additions & 3 deletions lightning-rapid-gossip-sync/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "lightning-rapid-gossip-sync"
version = "0.0.118"
version = "0.0.119"
authors = ["Arik Sosman <git@arik.io>"]
license = "MIT OR Apache-2.0"
repository = "https://github.com/lightningdevkit/rust-lightning"
Expand All @@ -15,11 +15,11 @@ no-std = ["lightning/no-std"]
std = ["lightning/std"]

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

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

[dev-dependencies]
lightning = { version = "0.0.118", path = "../lightning", features = ["_test_utils"] }
lightning = { version = "0.0.119", path = "../lightning", features = ["_test_utils"] }
6 changes: 3 additions & 3 deletions lightning-transaction-sync/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "lightning-transaction-sync"
version = "0.0.118"
version = "0.0.119"
authors = ["Elias Rohrer"]
license = "MIT OR Apache-2.0"
repository = "https://github.com/lightningdevkit/rust-lightning"
Expand All @@ -22,15 +22,15 @@ electrum = ["electrum-client"]
async-interface = []

[dependencies]
lightning = { version = "0.0.118", path = "../lightning", default-features = false, features = ["std"] }
lightning = { version = "0.0.119", path = "../lightning", default-features = false, features = ["std"] }
bitcoin = { version = "0.30.2", default-features = false }
bdk-macros = "0.6"
futures = { version = "0.3", optional = true }
esplora-client = { version = "0.6", default-features = false, optional = true }
electrum-client = { version = "0.18.0", optional = true }

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

[target.'cfg(not(no_download))'.dev-dependencies]
Expand Down
2 changes: 1 addition & 1 deletion lightning/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "lightning"
version = "0.0.118"
version = "0.0.119"
authors = ["Matt Corallo"]
license = "MIT OR Apache-2.0"
repository = "https://github.com/lightningdevkit/rust-lightning/"
Expand Down
4 changes: 0 additions & 4 deletions pending_changelog/113-channel-ser-compat.txt

This file was deleted.

3 changes: 0 additions & 3 deletions pending_changelog/electrum.txt

This file was deleted.

4 changes: 0 additions & 4 deletions pending_changelog/multihop-blinded-recv.txt

This file was deleted.

4 changes: 0 additions & 4 deletions pending_changelog/route-blinding-intro-node.txt

This file was deleted.

4 changes: 0 additions & 4 deletions pending_changelog/skimmed_fee_ser.txt

This file was deleted.