Skip to content

Commit

Permalink
Merge pull request #2794 from TheBlueMatt/2023-12-cut-119
Browse files Browse the repository at this point in the history
Cut 0.0.119
  • Loading branch information
TheBlueMatt authored Dec 16, 2023
2 parents ef2156a + c6e4deb commit 4deb263
Show file tree
Hide file tree
Showing 15 changed files with 146 additions and 46 deletions.
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
* 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 <[email protected]>"]
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 <[email protected]>"]
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 <[email protected]>"]
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.

0 comments on commit 4deb263

Please sign in to comment.