From fb424009e3275d550ed7e027345082cf58b38378 Mon Sep 17 00:00:00 2001 From: Matt Corallo Date: Fri, 21 Apr 2023 23:36:43 +0000 Subject: [PATCH 1/2] Bump crate versions to 0.0.115/invoice 0.23 --- lightning-background-processor/Cargo.toml | 12 ++++++------ lightning-block-sync/Cargo.toml | 6 +++--- lightning-custom-message/Cargo.toml | 4 ++-- lightning-invoice/Cargo.toml | 6 +++--- lightning-net-tokio/Cargo.toml | 6 +++--- lightning-persister/Cargo.toml | 6 +++--- lightning-rapid-gossip-sync/Cargo.toml | 6 +++--- lightning-transaction-sync/Cargo.toml | 6 +++--- lightning/Cargo.toml | 2 +- 9 files changed, 27 insertions(+), 27 deletions(-) diff --git a/lightning-background-processor/Cargo.toml b/lightning-background-processor/Cargo.toml index e2acb2240a7..1f6509e6910 100644 --- a/lightning-background-processor/Cargo.toml +++ b/lightning-background-processor/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "lightning-background-processor" -version = "0.0.114" +version = "0.0.115" authors = ["Valentine Wallace "] license = "MIT OR Apache-2.0" repository = "http://github.com/lightningdevkit/rust-lightning" @@ -21,11 +21,11 @@ default = ["std"] [dependencies] bitcoin = { version = "0.29.0", default-features = false } -lightning = { version = "0.0.114", path = "../lightning", default-features = false } -lightning-rapid-gossip-sync = { version = "0.0.114", path = "../lightning-rapid-gossip-sync", default-features = false } +lightning = { version = "0.0.115", path = "../lightning", default-features = false } +lightning-rapid-gossip-sync = { version = "0.0.115", path = "../lightning-rapid-gossip-sync", default-features = false } [dev-dependencies] tokio = { version = "1.14", features = [ "macros", "rt", "rt-multi-thread", "sync", "time" ] } -lightning = { version = "0.0.114", path = "../lightning", features = ["_test_utils"] } -lightning-invoice = { version = "0.22.0", path = "../lightning-invoice" } -lightning-persister = { version = "0.0.114", path = "../lightning-persister" } +lightning = { version = "0.0.115", path = "../lightning", features = ["_test_utils"] } +lightning-invoice = { version = "0.23.0", path = "../lightning-invoice" } +lightning-persister = { version = "0.0.115", path = "../lightning-persister" } diff --git a/lightning-block-sync/Cargo.toml b/lightning-block-sync/Cargo.toml index 59f8c235605..a19c3ff8a9d 100644 --- a/lightning-block-sync/Cargo.toml +++ b/lightning-block-sync/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "lightning-block-sync" -version = "0.0.114" +version = "0.0.115" authors = ["Jeffrey Czyz", "Matt Corallo"] license = "MIT OR Apache-2.0" repository = "http://github.com/lightningdevkit/rust-lightning" @@ -19,11 +19,11 @@ rpc-client = [ "serde_json", "chunked_transfer" ] [dependencies] bitcoin = "0.29.0" -lightning = { version = "0.0.114", path = "../lightning" } +lightning = { version = "0.0.115", path = "../lightning" } tokio = { version = "1.0", features = [ "io-util", "net", "time" ], optional = true } serde_json = { version = "1.0", optional = true } chunked_transfer = { version = "1.4", optional = true } [dev-dependencies] -lightning = { version = "0.0.114", path = "../lightning", features = ["_test_utils"] } +lightning = { version = "0.0.115", path = "../lightning", features = ["_test_utils"] } tokio = { version = "1.14", features = [ "macros", "rt" ] } diff --git a/lightning-custom-message/Cargo.toml b/lightning-custom-message/Cargo.toml index 509b6024d02..68aa2a1cb25 100644 --- a/lightning-custom-message/Cargo.toml +++ b/lightning-custom-message/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "lightning-custom-message" -version = "0.0.114" +version = "0.0.115" authors = ["Jeffrey Czyz"] license = "MIT OR Apache-2.0" repository = "http://github.com/lightningdevkit/rust-lightning" @@ -15,4 +15,4 @@ rustdoc-args = ["--cfg", "docsrs"] [dependencies] bitcoin = "0.29.0" -lightning = { version = "0.0.114", path = "../lightning" } +lightning = { version = "0.0.115", path = "../lightning" } diff --git a/lightning-invoice/Cargo.toml b/lightning-invoice/Cargo.toml index 9ab9bd5482b..5179fdc148a 100644 --- a/lightning-invoice/Cargo.toml +++ b/lightning-invoice/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "lightning-invoice" description = "Data structures to parse and serialize BOLT11 lightning invoices" -version = "0.22.0" +version = "0.23.0" authors = ["Sebastian Geisler "] documentation = "https://docs.rs/lightning-invoice/" license = "MIT OR Apache-2.0" @@ -21,7 +21,7 @@ std = ["bitcoin_hashes/std", "num-traits/std", "lightning/std", "bech32/std"] [dependencies] bech32 = { version = "0.9.0", default-features = false } -lightning = { version = "0.0.114", path = "../lightning", default-features = false } +lightning = { version = "0.0.115", path = "../lightning", default-features = false } secp256k1 = { version = "0.24.0", default-features = false, features = ["recovery", "alloc"] } num-traits = { version = "0.2.8", default-features = false } bitcoin_hashes = { version = "0.11", default-features = false } @@ -30,6 +30,6 @@ serde = { version = "1.0.118", optional = true } bitcoin = { version = "0.29.0", default-features = false } [dev-dependencies] -lightning = { version = "0.0.114", path = "../lightning", default-features = false, features = ["_test_utils"] } +lightning = { version = "0.0.115", path = "../lightning", default-features = false, features = ["_test_utils"] } hex = "0.4" serde_json = { version = "1"} diff --git a/lightning-net-tokio/Cargo.toml b/lightning-net-tokio/Cargo.toml index 6250628d24a..a0fdcf8399d 100644 --- a/lightning-net-tokio/Cargo.toml +++ b/lightning-net-tokio/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "lightning-net-tokio" -version = "0.0.114" +version = "0.0.115" authors = ["Matt Corallo"] license = "MIT OR Apache-2.0" repository = "https://github.com/lightningdevkit/rust-lightning/" @@ -16,9 +16,9 @@ rustdoc-args = ["--cfg", "docsrs"] [dependencies] bitcoin = "0.29.0" -lightning = { version = "0.0.114", path = "../lightning" } +lightning = { version = "0.0.115", path = "../lightning" } tokio = { version = "1.0", features = [ "io-util", "macros", "rt", "sync", "net", "time" ] } [dev-dependencies] tokio = { version = "1.14", features = [ "io-util", "macros", "rt", "rt-multi-thread", "sync", "net", "time" ] } -lightning = { version = "0.0.114", path = "../lightning", features = ["_test_utils"] } +lightning = { version = "0.0.115", path = "../lightning", features = ["_test_utils"] } diff --git a/lightning-persister/Cargo.toml b/lightning-persister/Cargo.toml index 01415f29f20..88132bdcfd6 100644 --- a/lightning-persister/Cargo.toml +++ b/lightning-persister/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "lightning-persister" -version = "0.0.114" +version = "0.0.115" authors = ["Valentine Wallace", "Matt Corallo"] license = "MIT OR Apache-2.0" repository = "https://github.com/lightningdevkit/rust-lightning/" @@ -18,11 +18,11 @@ _bench_unstable = ["lightning/_bench_unstable"] [dependencies] bitcoin = "0.29.0" -lightning = { version = "0.0.114", path = "../lightning" } +lightning = { version = "0.0.115", path = "../lightning" } libc = "0.2" [target.'cfg(windows)'.dependencies] winapi = { version = "0.3", features = ["winbase"] } [dev-dependencies] -lightning = { version = "0.0.114", path = "../lightning", features = ["_test_utils"] } +lightning = { version = "0.0.115", path = "../lightning", features = ["_test_utils"] } diff --git a/lightning-rapid-gossip-sync/Cargo.toml b/lightning-rapid-gossip-sync/Cargo.toml index 1f0f6f03800..6673431d93b 100644 --- a/lightning-rapid-gossip-sync/Cargo.toml +++ b/lightning-rapid-gossip-sync/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "lightning-rapid-gossip-sync" -version = "0.0.114" +version = "0.0.115" authors = ["Arik Sosman "] license = "MIT OR Apache-2.0" repository = "https://github.com/lightningdevkit/rust-lightning" @@ -16,8 +16,8 @@ std = ["lightning/std"] _bench_unstable = [] [dependencies] -lightning = { version = "0.0.114", path = "../lightning", default-features = false } +lightning = { version = "0.0.115", path = "../lightning", default-features = false } bitcoin = { version = "0.29.0", default-features = false } [dev-dependencies] -lightning = { version = "0.0.114", path = "../lightning", features = ["_test_utils"] } +lightning = { version = "0.0.115", path = "../lightning", features = ["_test_utils"] } diff --git a/lightning-transaction-sync/Cargo.toml b/lightning-transaction-sync/Cargo.toml index 7b72a00e60d..2e9e13296b6 100644 --- a/lightning-transaction-sync/Cargo.toml +++ b/lightning-transaction-sync/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "lightning-transaction-sync" -version = "0.0.114" +version = "0.0.115" authors = ["Elias Rohrer"] license = "MIT OR Apache-2.0" repository = "http://github.com/lightningdevkit/rust-lightning" @@ -21,7 +21,7 @@ esplora-blocking = ["esplora-client/blocking"] async-interface = [] [dependencies] -lightning = { version = "0.0.114", path = "../lightning", default-features = false } +lightning = { version = "0.0.115", path = "../lightning", default-features = false } bitcoin = { version = "0.29.0", default-features = false } bdk-macros = "0.6" futures = { version = "0.3", optional = true } @@ -29,7 +29,7 @@ esplora-client = { version = "0.4", default-features = false, optional = true } reqwest = { version = "0.11", optional = true, default-features = false, features = ["json"] } [dev-dependencies] -lightning = { version = "0.0.114", path = "../lightning", features = ["std"] } +lightning = { version = "0.0.115", path = "../lightning", features = ["std"] } electrsd = { version = "0.22.0", features = ["legacy", "esplora_a33e97e1", "bitcoind_23_0"] } electrum-client = "0.12.0" tokio = { version = "1.14.0", features = ["full"] } diff --git a/lightning/Cargo.toml b/lightning/Cargo.toml index 32755a7e43f..1804be0f1bb 100644 --- a/lightning/Cargo.toml +++ b/lightning/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "lightning" -version = "0.0.114" +version = "0.0.115" authors = ["Matt Corallo"] license = "MIT OR Apache-2.0" repository = "https://github.com/lightningdevkit/rust-lightning/" From dafa095413026739d9de6f28d9b4ce789a2eb4be Mon Sep 17 00:00:00 2001 From: Matt Corallo Date: Fri, 21 Apr 2023 23:28:25 +0000 Subject: [PATCH 2/2] Add 0.0.115 CHANGELOG entries --- CHANGELOG.md | 97 +++++++++++++++++++ pending_changelog/2059.txt | 4 - pending_changelog/2063.txt | 4 - pending_changelog/2146.txt | 4 - .../matt-rm-retryable-secret.txt | 3 - 5 files changed, 97 insertions(+), 15 deletions(-) delete mode 100644 pending_changelog/2059.txt delete mode 100644 pending_changelog/2063.txt delete mode 100644 pending_changelog/2146.txt delete mode 100644 pending_changelog/matt-rm-retryable-secret.txt diff --git a/CHANGELOG.md b/CHANGELOG.md index d8475c003e0..2874f33db0c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,100 @@ +# 0.0.115 - Apr 24, 2023 - "Rebroadcast the Bugfixes" + +## API Updates + * The MSRV of the main LDK crates has been increased to 1.48 (#2107). + * Attempting to claim an un-expired payment on a channel which has closed no + longer fails. The expiry time of payments is exposed via + `PaymentClaimable::claim_deadline` (#2148). + * `payment_metadata` is now supported in `Invoice` deserialization, sending, + and receiving (via a new `RecipientOnionFields` struct) (#2139, #2127). + * `Event::PaymentFailed` now exposes a failure reason (#2142). + * BOLT12 messages now support stateless generation and validation (#1989). + * The `NetworkGraph` is now pruned of stale data after RGS processing (#2161). + * Max inbound HTLCs in-flight can be changed in the handshake config (#2138). + * `lightning-transaction-sync` feature `esplora-async-https` was added (#2085). + * A `ChannelPending` event is now emitted after the initial handshake (#2098). + * `PaymentForwarded::outbound_amount_forwarded_msat` was added (#2136). + * `ChannelManager::list_channels_by_counterparty` was added (#2079). + * `ChannelDetails::feerate_sat_per_1000_weight` was added (#2094). + * `Invoice::fallback_addresses` was added to fetch `bitcoin` types (#2023). + * The offer/refund description is now exposed in `Invoice{,Request}` (#2206). + +## Backwards Compatibility + * Payments sent with the legacy `*_with_route` methods on LDK 0.0.115+ will no + longer be retryable via the LDK 0.0.114- `retry_payment` method (#2139). + * `Event::PaymentPathFailed::retry` was removed and will always be `None` for + payments initiated on 0.0.115 which fail on an earlier version (#2063). + * `Route`s and `PaymentParameters` with blinded path information will not be + readable on prior versions of LDK. Such objects are not currently constructed + by LDK, but may be when processing BOLT12 data in a coming release (#2146). + * Providing `ChannelMonitorUpdate`s generated by LDK 0.0.115 to a + `ChannelMonitor` on 0.0.114 or before may panic (#2059). Note that this is + in general unsupported, and included here only for completeness. + +## Bug Fixes + * Fixed a case where `process_events_async` may `poll` a `Future` which has + already completed (#2081). + * Fixed deserialization of `u16` arrays. This bug may have previously corrupted + the historical buckets in a `ProbabilisticScorer`. Users relying on the + historical buckets may wish to wipe their scorer on upgrade to remove corrupt + data rather than waiting on it to decay (#2191). + * The `process_events_async` task is now `Send` and can thus be polled on a + multi-threaded runtime (#2199). + * Fixed a missing macro export causing + `impl_writeable_tlv_based_enum{,_upgradable}` calls to not compile (#2091). + * Fixed compilation of `lightning-invoice` with both `no-std` and serde (#2187) + * Fix an issue where the `background-processor` would not wake when a + `ChannelMonitorUpdate` completed asynchronously, causing delays (#2090). + * Fix an issue where `process_events_async` would exit immediately (#2145). + * `Router` calls from the `ChannelManager` now call `find_route_with_id` rather + than `find_route`, as was intended and described in the API (#2092). + * Ensure `process_events_async` always exits if any sleep future returns true, + not just if all sleep futures repeatedly return true (#2145). + * `channel_update` messages no longer set the disable bit unless the peer has + been disconnected for some time. This should resolve cases where channels are + disabled for extended periods of time (#2198). + * We no longer remove CLN nodes from the network graph for violating the BOLT + spec in some cases after failing to pay through them (#2220). + * Fixed a debug assertion which may panic under heavy load (#2172). + * `CounterpartyForceClosed::peer_msg` is now wrapped in UntrustedString (#2114) + * Fixed a potential deadlock in `funding_transaction_generated` (#2158). + +## Security + * Transaction re-broadcasting is now substantially more aggressive, including a + new regular rebroadcast feature called on a timer from the + `background-processor` or from `ChainMonitor::rebroadcast_pending_claims`. + This should substantially increase transaction confirmation reliability + without relying on downstream `TransactionBroadcaster` implementations for + rebroadcasting (#2203, #2205, #2208). + * Implemented the changes from BOLT PRs #1031, #1032, and #1040 which resolve a + privacy vulnerability which allows an intermediate node on the path to + discover the final destination for a payment (#2062). + +In total, this release features 110 files changed, 11928 insertions, 6368 +deletions in 215 commits from 21 authors, in alphabetical order: + * Advait + * Alan Cohen + * Alec Chen + * Allan Douglas R. de Oliveira + * Arik Sosman + * Elias Rohrer + * Evan Feenstra + * Jeffrey Czyz + * John Cantrell + * Lucas Soriano del Pino + * Marc Tyndel + * Matt Corallo + * Paul Miller + * Steven + * Steven Williamson + * Steven Zhao + * Tony Giorgio + * Valentine Wallace + * Wilmer Paulino + * benthecarman + * munjesi + + # 0.0.114 - Mar 3, 2023 - "Faster Async BOLT12 Retries" ## API Updates diff --git a/pending_changelog/2059.txt b/pending_changelog/2059.txt deleted file mode 100644 index d2ee0bcb7ea..00000000000 --- a/pending_changelog/2059.txt +++ /dev/null @@ -1,4 +0,0 @@ -## Backwards Compatibility - -- Providing `ChannelMonitorUpdate`s generated by LDK 0.0.115 to a -`ChannelMonitor` on 0.0.114 or before may panic. diff --git a/pending_changelog/2063.txt b/pending_changelog/2063.txt deleted file mode 100644 index 8ac52a416af..00000000000 --- a/pending_changelog/2063.txt +++ /dev/null @@ -1,4 +0,0 @@ -## API Updates - -- `Event::PaymentPathFailed::retry` will always be `None` if we initiate a payment on 0.0.115 - then downgrade to an earlier version (#2063) diff --git a/pending_changelog/2146.txt b/pending_changelog/2146.txt deleted file mode 100644 index 12e3be3f0cc..00000000000 --- a/pending_changelog/2146.txt +++ /dev/null @@ -1,4 +0,0 @@ -## Backwards Compatibility - -* Routes manually constructed with `Path::blinded_tail` present will not be readable by prior versions of LDK -* `PaymentParameters` manually constructed with `Hints::Blinded` will not be readable by prior versions of LDK diff --git a/pending_changelog/matt-rm-retryable-secret.txt b/pending_changelog/matt-rm-retryable-secret.txt deleted file mode 100644 index 694e3686a08..00000000000 --- a/pending_changelog/matt-rm-retryable-secret.txt +++ /dev/null @@ -1,3 +0,0 @@ -## Backwards Compatibility - * Payments sent with the legacy `*_with_route` methods on LDK 0.0.115+ will no - longer be retryable via the LDK 0.0.114- `retry_payment` method (#XXXX).