Merge pull request #1917 from TheBlueMatt/2022-12-0.0.113 v0.0.113
authorArik <arik-so@users.noreply.github.com>
Fri, 16 Dec 2022 05:37:58 +0000 (21:37 -0800)
committerGitHub <noreply@github.com>
Fri, 16 Dec 2022 05:37:58 +0000 (21:37 -0800)
Cut 0.0.113

14 files changed:
.github/workflows/build.yml
CHANGELOG.md
lightning-background-processor/Cargo.toml
lightning-block-sync/Cargo.toml
lightning-invoice/Cargo.toml
lightning-net-tokio/Cargo.toml
lightning-persister/Cargo.toml
lightning-rapid-gossip-sync/Cargo.toml
lightning/Cargo.toml
pending_changelog/1743.txt [deleted file]
pending_changelog/1856.txt [deleted file]
pending_changelog/elias-event-renaming.txt [deleted file]
pending_changelog/matt-abandon-restart.txt [deleted file]
pending_changelog/matt-idempotent-payments.txt [deleted file]

index 3a67a681280187e382362aa83a2c3bbcb647799e..f27a2ccf863fa0348295a3f0c56810fa48280eb7 100644 (file)
@@ -109,7 +109,7 @@ jobs:
           RUSTFLAGS="-C link-dead-code" cargo build --verbose --color always --features rpc-client,rest-client
           RUSTFLAGS="-C link-dead-code" cargo build --verbose --color always --features rpc-client,rest-client,tokio
       - name: Test backtrace-debug builds on Rust ${{ matrix.toolchain }}
-        if: "matrix.build-no-std"
+        if: "matrix.toolchain == 'stable'"
         run: |
           cd lightning && cargo test --verbose --color always --features backtrace
       - name: Test on Rust ${{ matrix.toolchain }} with net-tokio
index 37a70035c7c24228c2f72b8e8586f57d082547e0..8d3b394a3a7baa51e796bf93012bbb268c90664e 100644 (file)
@@ -1,3 +1,90 @@
+# 0.0.113 - Dec 15, 2022 - "Big Movement Intercepted"
+
+## API Updates
+ * `ChannelManager::send_payment` now takes an explicit `PaymentId` which is a
+   loose idempotency token. See `send_payment` docs for more (#1761, #1826).
+ * HTLCs bound for SCIDs from `ChannelManager::get_intercept_scid` are now
+   intercepted and can be forwarded manually over any channel (#1835, #1893).
+ * `Confirm::get_relevant_txids` now returns a `BlockHash`, expanding the set
+   of cases where `transaction_unconfirmed` must be called, see docs (#1796).
+ * Pending outbound payments are no longer automatically timed-out a few blocks
+   after failure. Thus, in order to avoid leaking memory, you MUST call
+   `ChannelManager::abandon_payment` when you no longer wish to retry (#1761).
+ * `ChannelManager::abandon_payment` docs were updated to note that the payment
+   may return to pending after a restart if no persistence occurs (#1907).
+ * `Event::PaymentReceived` has been renamed `Event::PaymentClaimable` (#1891).
+ * `Event` handling is now optionally async for Rust users (#1787).
+ * `user_channel_id` is now a `u128` and random for inbound channels (#1790).
+ * A new `ChannelReady` event is generated whenever a channel becomes ready to
+   be used, i.e., after both sides sent the `channel_ready` message (#1743).
+ * `NetworkGraph` now prunes channels where either node is offline for 2 weeks
+   and refuses to accept re-announcements of pruned channels (#1735).
+ * Onion messages are now read in `CustomOnionMessageHandler` rather than via
+   `MaybeReadableArgs` (#1809).
+ * Added a new util to generate an invoice with a custom hash (#1894) -
+`create_invoice_from_channelmanager_and_duration_since_epoch_with_payment_hash`
+ * `Sign`ers are now by default re-derived using `KeysInterface`'s new
+   `derive_channel_signer` rather than `read_chan_signer` (#1867).
+ * `Confirm::transactions_confirmed` is now idempotent (#1861).
+ * `ChannelManager::compute_inflight_htlcs` has been added to fetch in-flight
+   HTLCs for scoring. Note that `InvoicePayer` does this for you (#1830).
+ * Added `PaymentClaimable::via_channel_id` (#1856).
+ * Added the `node_id` (phantom or regular) to payment events (#1766).
+ * Added the funding transaction `confirmations` to `ChannelDetails` (#1856).
+ * `BlindedRoute` has been renamed `BlindedPath` (#1918).
+ * Support for the BOLT 4 "legacy" onion format has been removed, in line with
+   its removal in the spec and vanishingly rare use (#1413).
+ * `ChainMonitor::list_pending_monitor_updates` was added (#1834).
+ * Signing for non-zero-fee anchor commitments is supported again (#1828).
+ * Several helpers for transaction matching and generation are now pub (#1839).
+
+## Bug Fixes
+ * Fixed a rare race where a crash may result in a pending HTLC not being
+   failed backwards, leading to a force-closure by our counterparty (#1857).
+ * Avoid incorrectly assigning a lower-bound on channel liquidity when routing
+   fails due to a closed channel earlier in the path (#1817).
+ * If a counterparty increases the channel fee, but not enough per our own fee
+   estimator, we no longer force-close the channel (#1852).
+ * Several bugs in the `lightning-background-processor` `future` feature were
+   fixed, including requirements doc corrections (#1843, #1845, #1851).
+ * Some failure messages sent back when failing an HTLC were corrected (#1895).
+ * `rapid-gossip-sync` no longer errors if an update is applied duplicatively
+   or in rare cases when the graph is updated from payment failures (#1833).
+ * Sending onion messages to a blinded path in which we're the introduction
+   node no longer fails (#1791).
+
+## Backwards Compatibility
+ * No `ChannelReady` events will be generated for previously existing channels,
+   including those which become ready after upgrading to 0.0.113 (#1743).
+ * Once `UserConfig::accept_intercept_htlcs` is set, downgrades to LDK versions
+   prior to 0.0.113 are not supported (#1835).
+ * Existing payments may see a `PaymentClaimable::user_channel_id` of 0 (#1856)
+ * When downgrading to a version of LDK prior to 0.0.113 when there are
+   resolved payments waiting for a small timeout, the payments may not be
+   removed, preventing payments with the same `PaymentId` (#1761).
+
+In total, this release features 76 files changed, 11639 insertions, 6067
+deletions in 210 commits from 18 authors, in alphabetical order:
+ * Antoine Riard
+ * Arik Sosman
+ * Devrandom
+ * Duncan Dean
+ * Elias Rohrer
+ * Gleb Naumenko
+ * Jeffrey Czyz
+ * John Cantrell
+ * Matt Corallo
+ * Tee8z
+ * Tobin C. Harding
+ * Tristan F
+ * Valentine Wallace
+ * Viktor Tigerström
+ * Wilmer Paulino
+ * benthecarman
+ * jurvis
+ * ssbright
+
+
 # 0.0.112 - Oct 25, 2022 - "History Matters"
 
 ## API Updates
index 8f0fc15363a436de69cdd82d6e0f60ca42b20f74..343408ea99cdee000e65ed6b7d37d9ea3fa9abe8 100644 (file)
@@ -1,6 +1,6 @@
 [package]
 name = "lightning-background-processor"
-version = "0.0.112"
+version = "0.0.113"
 authors = ["Valentine Wallace <vwallace@protonmail.com>"]
 license = "MIT OR Apache-2.0"
 repository = "http://github.com/lightningdevkit/rust-lightning"
@@ -18,11 +18,11 @@ futures = [ "futures-util" ]
 
 [dependencies]
 bitcoin = "0.29.0"
-lightning = { version = "0.0.112", path = "../lightning", features = ["std"] }
-lightning-rapid-gossip-sync = { version = "0.0.112", path = "../lightning-rapid-gossip-sync" }
+lightning = { version = "0.0.113", path = "../lightning", features = ["std"] }
+lightning-rapid-gossip-sync = { version = "0.0.113", path = "../lightning-rapid-gossip-sync" }
 futures-util = { version = "0.3", default-features = false, features = ["async-await-macro"], optional = true }
 
 [dev-dependencies]
-lightning = { version = "0.0.112", path = "../lightning", features = ["_test_utils"] }
-lightning-invoice = { version = "0.20.0", path = "../lightning-invoice" }
-lightning-persister = { version = "0.0.112", path = "../lightning-persister" }
+lightning = { version = "0.0.113", path = "../lightning", features = ["_test_utils"] }
+lightning-invoice = { version = "0.21.0", path = "../lightning-invoice" }
+lightning-persister = { version = "0.0.113", path = "../lightning-persister" }
index 220de8fa38efde3d95973b6afd49c59b0f66ecad..8b185ff3babcb4e31f76bfb47260cf088c9ee11c 100644 (file)
@@ -1,6 +1,6 @@
 [package]
 name = "lightning-block-sync"
-version = "0.0.112"
+version = "0.0.113"
 authors = ["Jeffrey Czyz", "Matt Corallo"]
 license = "MIT OR Apache-2.0"
 repository = "http://github.com/lightningdevkit/rust-lightning"
@@ -19,7 +19,7 @@ rpc-client = [ "serde", "serde_json", "chunked_transfer" ]
 
 [dependencies]
 bitcoin = "0.29.0"
-lightning = { version = "0.0.112", path = "../lightning" }
+lightning = { version = "0.0.113", path = "../lightning" }
 futures-util = { version = "0.3" }
 tokio = { version = "1.0", features = [ "io-util", "net", "time" ], optional = true }
 serde = { version = "1.0", features = ["derive"], optional = true }
index 39ca3a1badcb0e9333453e8b2f3319108ca401ab..53a36faba3f23ebd2b380ec46df9d634b556cbb5 100644 (file)
@@ -1,7 +1,7 @@
 [package]
 name = "lightning-invoice"
 description = "Data structures to parse and serialize BOLT11 lightning invoices"
-version = "0.20.0"
+version = "0.21.0"
 authors = ["Sebastian Geisler <sgeisler@wh2.tu-dresden.de>"]
 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.112", path = "../lightning", default-features = false }
+lightning = { version = "0.0.113", 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 }
@@ -29,6 +29,6 @@ hashbrown = { version = "0.8", optional = true }
 serde = { version = "1.0.118", optional = true }
 
 [dev-dependencies]
-lightning = { version = "0.0.112", path = "../lightning", default-features = false, features = ["_test_utils"] }
+lightning = { version = "0.0.113", path = "../lightning", default-features = false, features = ["_test_utils"] }
 hex = "0.4"
 serde_json = { version = "1"}
index 3767fe758b34d0c8b59099a183685adfc23d4034..07f9f313307c0cd493ab2e2e54b00489aba283c5 100644 (file)
@@ -1,6 +1,6 @@
 [package]
 name = "lightning-net-tokio"
-version = "0.0.112"
+version = "0.0.113"
 authors = ["Matt Corallo"]
 license = "MIT OR Apache-2.0"
 repository = "https://github.com/lightningdevkit/rust-lightning/"
@@ -16,7 +16,7 @@ rustdoc-args = ["--cfg", "docsrs"]
 
 [dependencies]
 bitcoin = "0.29.0"
-lightning = { version = "0.0.112", path = "../lightning" }
+lightning = { version = "0.0.113", path = "../lightning" }
 tokio = { version = "1.0", features = [ "io-util", "macros", "rt", "sync", "net", "time" ] }
 
 [dev-dependencies]
index 6b3518398bb022fc0690a9aa595c6ccf907a02b0..c4f3acd4e72f302816de89bf84e689e8d0650e80 100644 (file)
@@ -1,6 +1,6 @@
 [package]
 name = "lightning-persister"
-version = "0.0.112"
+version = "0.0.113"
 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.112", path = "../lightning" }
+lightning = { version = "0.0.113", path = "../lightning" }
 libc = "0.2"
 
 [target.'cfg(windows)'.dependencies]
 winapi = { version = "0.3", features = ["winbase"] }
 
 [dev-dependencies]
-lightning = { version = "0.0.112", path = "../lightning", features = ["_test_utils"] }
+lightning = { version = "0.0.113", path = "../lightning", features = ["_test_utils"] }
index 6d49d4550955d9b77cb4ad12c345afff39fbaf1d..63432b582903fff15846d2dd82a000e81292815d 100644 (file)
@@ -1,6 +1,6 @@
 [package]
 name = "lightning-rapid-gossip-sync"
-version = "0.0.112"
+version = "0.0.113"
 authors = ["Arik Sosman <git@arik.io>"]
 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.112", path = "../lightning", default-features = false }
+lightning = { version = "0.0.113", path = "../lightning", default-features = false }
 bitcoin = { version = "0.29.0", default-features = false }
 
 [dev-dependencies]
-lightning = { version = "0.0.112", path = "../lightning", features = ["_test_utils"] }
+lightning = { version = "0.0.113", path = "../lightning", features = ["_test_utils"] }
index 543c674ec35cc5e0969a891a8ce100b61dff07a7..e98756d552fec3bc90927d1672eb85a04b6764d0 100644 (file)
@@ -1,6 +1,6 @@
 [package]
 name = "lightning"
-version = "0.0.112"
+version = "0.0.113"
 authors = ["Matt Corallo"]
 license = "MIT OR Apache-2.0"
 repository = "https://github.com/lightningdevkit/rust-lightning/"
diff --git a/pending_changelog/1743.txt b/pending_changelog/1743.txt
deleted file mode 100644 (file)
index 93e4120..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-## API Updates
-- A new `ChannelReady` event is generated whenever a channel becomes ready to
-  be used, i.e., after both sides sent the `channel_ready` message.
-
-## Backwards Compatibilty
-- No `ChannelReady` events will be generated for previously existing channels, including
-  those which become ready after upgrading 0.0.113.
diff --git a/pending_changelog/1856.txt b/pending_changelog/1856.txt
deleted file mode 100644 (file)
index d45cff6..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-## API Updates
-- `PaymentReceived` events now have `via_channel_id` and `via_user_channel_id`
-  fields exposing the hop over which we received an inbound payment. Also,
-  `ChannelDetails` now expose the currently observed number of `confirmations`
-  on the funding transaction.
-
-## Backwards Compatibilty
-- Inbound payments with HTLCs pending on update to 0.0.113 will result
-  in a `PaymentReceived` event with `user_channel_id` 0.
diff --git a/pending_changelog/elias-event-renaming.txt b/pending_changelog/elias-event-renaming.txt
deleted file mode 100644 (file)
index c647296..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-## API Updates
-
-## Backwards Compatibilty
-- The event formerly known as `PaymentReceived` is now called
-  `PaymentClaimable`.
diff --git a/pending_changelog/matt-abandon-restart.txt b/pending_changelog/matt-abandon-restart.txt
deleted file mode 100644 (file)
index 07dc073..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-## API Updates
-- `ChannelManager::abandon_payment` docs have been updated to note that the
-  payment may return to pending after a restart if no persistence occurs. This
-  is not a change in behavior - ensure your existing code is safe.
diff --git a/pending_changelog/matt-idempotent-payments.txt b/pending_changelog/matt-idempotent-payments.txt
deleted file mode 100644 (file)
index e837594..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-API Changes
-===========
-
- * Payment sending methods now take an explicit `PaymentId`, which acts as an
-   idempotency token. You may use the PaymentHash for this, which existing
-   `InvoicePayer` send methods do, new `_with_id` variants were added (#XXXX).
- * Pending outbound payments are no longer automatically timed-out a few blocks
-   after failure. Thus, in order to avoid leaking memory, you MUST call
-   `ChannelManager::abandon_payment` when you no longer wish to retry (#XXXX).
-
-Serialization Compatibility
-===========================
-
- * When downgrading to a version of LDK prior to THIS_VERSION_XXX when there are
-   resolved payments waiting for a small timeout, the payments may not be
-   removed, preventing payments with the same `PaymentId`.