Merge pull request #1397 from jkczyz/2022-03-release-0.0.106 v0.0.106
authorMatt Corallo <649246+TheBlueMatt@users.noreply.github.com>
Sun, 3 Apr 2022 16:31:54 +0000 (16:31 +0000)
committerGitHub <noreply@github.com>
Sun, 3 Apr 2022 16:31:54 +0000 (16:31 +0000)
Cut 0.0.106

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/Cargo.toml

index c353a1bb99365ab82ae2e5767a13c8aa2654b637..84d5529d88be1a885405bc29c469067b95ad7e7d 100644 (file)
@@ -1,3 +1,113 @@
+# 0.0.106 - 2022-04-03
+
+## API Updates
+ * Minimum supported rust version (MSRV) is now 1.41.1 (#1310).
+ * Lightning feature `option_scid_alias` is now supported and may be negotiated
+   when opening a channel with a peer. It can be configured via
+   `ChannelHandshakeConfig::negotiate_scid_privacy` and is off by default but
+   will be on by default in the future (#1351).
+ * `OpenChannelRequest` now has a `channel_type` field indicating the features
+   the channel will operate with and should be used to filter channels with
+   undesirable features (#1351). See the Serialization Compatibility section.
+ * `ChannelManager` supports sending and receiving short channel id aliases in
+   the `funding_locked` message. These are used when forwarding payments and
+   constructing invoice route hints for improved privacy. `ChannelDetails` has a
+   `inbound_scid_alias` field and a `get_inbound_payment_scid` method to support
+   the latter (#1311).
+ * `DefaultRouter` and `find_route` take an additional random seed to improve
+   privacy by adding a random CLTV expiry offset to each path's final hop. This
+   helps obscure the intended recipient from adversarial intermediate hops
+   (#1286). The seed is  also used to randomize candidate paths during route
+   selection (#1359).
+ * The `lightning-block-sync` crate's `init::synchronize_listeners` method
+   interface has been relaxed to support multithreaded environments (#1349).
+ * `ChannelManager::create_inbound_payment_for_hash`'s documentation has been
+   corrected to remove the one-year restriction on `invoice_expiry_delta_secs`,
+   which is only applicable to the deprecated `create_inbound_payment_legacy`
+   and `create_inbound_payment_for_hash_legacy` methods (#1341).
+ * `Features` mutator methods now take `self` by reference instead of by value
+   (#1331).
+ * The CLTV of the last hop in a path is now included when comparing against
+   `RouteParameters::max_total_cltv_expiry_delta` (#1358).
+ * Invoice creation functions in `lightning-invoice` crate's `utils` module
+   include versions that accept a description hash instead of only a description
+   (#1361).
+ * `RoutingMessageHandler::sync_routing_table` has been renamed `peer_connected`
+   (#1368).
+ * `MessageSendEvent::SendGossipTimestampFilter` has been added to indicate that
+   a `gossip_timestamp_filter` should be sent (#1368).
+ * `PeerManager` takes an optional `NetAddress` in `new_outbound_connection` and
+   `new_inbound_connection`, which is used to report back the remote address to
+   the connecting peer in the `init` message (#1326).
+ * `ChannelManager::accept_inbound_channel` now takes a `user_channel_id`, which
+   is used in a similar manner as in outbound channels. (#1381).
+ * `BackgroundProcessor` now persists `NetworkGraph` on a timer and upon
+   shutdown as part of a new `Persister` trait, which also includes
+   `ChannelManager` persistence (#1376).
+ * `ProbabilisticScoringParameters` now has a `base_penalty_msat` option, which
+   default to 500 msats. It is applied at each hop to help avoid longer paths
+   (#1375).
+ * `ProbabilisticScoringParameters::liquidity_penalty_multiplier_msat`'s default
+   value is now 40,000 msats instead of 10,000 msats (#1375).
+ * The `lightning` crate has a `grind_signatures` feature used to produce
+   signatures with low r-values for more predictable transaction weight. This
+   feature is on by default (#1388).
+ * `ProbabilisticScoringParameters` now has a `amount_penalty_multiplier_msat`
+   option, which is used to further penalize large amounts (#1399).
+ * `PhantomRouteHints`, `FixedPenaltyScorer`, and `ScoringParameters` now
+   implement `Clone` (#1346).
+
+## Bug Fixes
+ * Fixed a compilation error in `ProbabilisticScorer` under `--feature=no-std`
+   (#1347).
+ * Invoice creation functions in `lightning-invoice` crate's `utils` module
+   filter invoice hints in order to limit the invoice size (#1325).
+ * Fixed a bug where a `funding_locked` message was delayed by a block if the
+   funding transaction was confirmed while offline, depending on the ordering
+   of `Confirm::transactions_confirmed` calls when brought back online (#1363).
+ * Fixed a bug in `NetGraphMsgHandler` where it didn't continue to receive
+   gossip messages from peers after initial connection (#1368, #1382).
+ * `ChannelManager::timer_tick_occurred` will now timeout a received multi-path
+   payment (MPP) after three ticks if not received in full instead of waiting
+   until near the HTLC timeout block(#1353).
+ * Fixed an issue with `find_route` causing it to be overly aggressive in using
+   MPP over channels to the same first hop (#1370).
+ * Reduced time spent processing `channel_update` messages by checking
+   signatures after checking if no newer messages have already been processed
+   (#1380).
+ * Fixed a few issues in `find_route` which caused preferring paths with a
+   higher cost (#1398).
+ * Fixed an issue in `ProbabilisticScorer` where a channel with not enough
+   liquidity could still be used when retrying a failed payment if it was on a
+   path with an overall lower cost (#1399).
+
+## Serialization Compatibility
+ * Channels open with `option_scid_alias` negotiated will be incompatible with
+   prior releases (#1351). This may occur in the following cases:
+   * Outbound channels when `ChannelHandshakeConfig::negotiate_scid_privacy` is
+     enabled.
+   * Inbound channels when automatically accepted from an `OpenChannel` message
+     with a `channel_type` that has `ChannelTypeFeatures::supports_scid_privacy`
+     return true. See `UserConfig::accept_inbound_channels`.
+   * Inbound channels when manually accepted from an `OpenChannelRequest` with a
+     `channel_type` that has `ChannelTypeFeatures::supports_scid_privacy` return
+     true. See `UserConfig::manually_accept_inbound_channels`.
+
+In total, this release features 43 files changed, 4052 insertions, 1274
+deletions in 75 commits from 11 authors, in alphabetical order:
+ * Devrandom
+ * Duncan Dean
+ * Elias Rohrer
+ * Jeffrey Czyz
+ * Jurvis Tan
+ * Luiz Parreira
+ * Matt Corallo
+ * Omar Shamardy
+ * Viktor Tigerström
+ * dependabot[bot]
+ * psycho-pirate
+
+
 # 0.0.105 - 2022-02-28
 
 ## API Updates
index edb1551edee75428c9a3c4c35a3a3377d5cccdce..bd6d54d871a2a20a49392f34e5810e64e6e0a8b7 100644 (file)
@@ -1,6 +1,6 @@
 [package]
 name = "lightning-background-processor"
-version = "0.0.105"
+version = "0.0.106"
 authors = ["Valentine Wallace <vwallace@protonmail.com>"]
 license = "MIT OR Apache-2.0"
 repository = "http://github.com/lightningdevkit/rust-lightning"
@@ -15,9 +15,9 @@ rustdoc-args = ["--cfg", "docsrs"]
 
 [dependencies]
 bitcoin = "0.27"
-lightning = { version = "0.0.105", path = "../lightning", features = ["std"] }
-lightning-persister = { version = "0.0.105", path = "../lightning-persister" }
+lightning = { version = "0.0.106", path = "../lightning", features = ["std"] }
+lightning-persister = { version = "0.0.106", path = "../lightning-persister" }
 
 [dev-dependencies]
-lightning = { version = "0.0.105", path = "../lightning", features = ["_test_utils"] }
-lightning-invoice = { version = "0.13.0", path = "../lightning-invoice" }
+lightning = { version = "0.0.106", path = "../lightning", features = ["_test_utils"] }
+lightning-invoice = { version = "0.14.0", path = "../lightning-invoice" }
index cbc81c89d93e4118ad3809411942d137f3e00d11..67edb09eee4ac43ac74f42bde6e6cf6439d55944 100644 (file)
@@ -1,6 +1,6 @@
 [package]
 name = "lightning-block-sync"
-version = "0.0.105"
+version = "0.0.106"
 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.27"
-lightning = { version = "0.0.105", path = "../lightning" }
+lightning = { version = "0.0.106", path = "../lightning" }
 tokio = { version = "1.0", features = [ "io-util", "net", "time" ], optional = true }
 serde = { version = "1.0", features = ["derive"], optional = true }
 serde_json = { version = "1.0", optional = true }
index e41eb1cd24b85748f82afd691f63a9d44f8e71fe..194f5f70e912627aed2123ad1a1d3aa68ea15051 100644 (file)
@@ -1,7 +1,7 @@
 [package]
 name = "lightning-invoice"
 description = "Data structures to parse and serialize BOLT11 lightning invoices"
-version = "0.13.0"
+version = "0.14.0"
 authors = ["Sebastian Geisler <sgeisler@wh2.tu-dresden.de>"]
 documentation = "https://docs.rs/lightning-invoice/"
 license = "MIT OR Apache-2.0"
@@ -19,7 +19,7 @@ std = ["bitcoin_hashes/std", "num-traits/std", "lightning/std", "bech32/std"]
 
 [dependencies]
 bech32 = { version = "0.8", default-features = false }
-lightning = { version = "0.0.105", path = "../lightning", default-features = false }
+lightning = { version = "0.0.106", path = "../lightning", default-features = false }
 secp256k1 = { version = "0.20", default-features = false, features = ["recovery", "alloc"] }
 num-traits = { version = "0.2.8", default-features = false }
 bitcoin_hashes = { version = "0.10", default-features = false }
@@ -27,5 +27,5 @@ hashbrown = { version = "0.11", optional = true }
 core2 = { version = "0.3.0", default-features = false, optional = true }
 
 [dev-dependencies]
-lightning = { version = "0.0.105", path = "../lightning", default-features = false, features = ["_test_utils"] }
+lightning = { version = "0.0.106", path = "../lightning", default-features = false, features = ["_test_utils"] }
 hex = "0.4"
index 3f3703c6cb12b92b01c5207c30bcc72276192e76..40734ff28c3ab3088d3276f3056d01c9d7bf83d9 100644 (file)
@@ -1,6 +1,6 @@
 [package]
 name = "lightning-net-tokio"
-version = "0.0.105"
+version = "0.0.106"
 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.27"
-lightning = { version = "0.0.105", path = "../lightning" }
+lightning = { version = "0.0.106", path = "../lightning" }
 tokio = { version = "1.0", features = [ "io-util", "macros", "rt", "sync", "net", "time" ] }
 
 [dev-dependencies]
index 0e786eb48ce04c719e1de413c0e2f95b6cdacc0c..d97cd017b2b1856c30b3cb2ea6038c334851a314 100644 (file)
@@ -1,6 +1,6 @@
 [package]
 name = "lightning-persister"
-version = "0.0.105"
+version = "0.0.106"
 authors = ["Valentine Wallace", "Matt Corallo"]
 license = "MIT OR Apache-2.0"
 repository = "https://github.com/lightningdevkit/rust-lightning/"
@@ -17,11 +17,11 @@ _bench_unstable = ["lightning/_bench_unstable"]
 
 [dependencies]
 bitcoin = "0.27"
-lightning = { version = "0.0.105", path = "../lightning" }
+lightning = { version = "0.0.106", path = "../lightning" }
 libc = "0.2"
 
 [target.'cfg(windows)'.dependencies]
 winapi = { version = "0.3", features = ["winbase"] }
 
 [dev-dependencies]
-lightning = { version = "0.0.105", path = "../lightning", features = ["_test_utils"] }
+lightning = { version = "0.0.106", path = "../lightning", features = ["_test_utils"] }
index 2b0c2d16b7a3bf9f108157ad981fc1893dab6107..a9df766731b6c59d1bc02b9e9299fe4dc2964a35 100644 (file)
@@ -1,6 +1,6 @@
 [package]
 name = "lightning"
-version = "0.0.105"
+version = "0.0.106"
 authors = ["Matt Corallo"]
 license = "MIT OR Apache-2.0"
 repository = "https://github.com/lightningdevkit/rust-lightning/"