Skip to content

Commit 0a0f87c

Browse files
authored
Merge pull request #1397 from jkczyz/2022-03-release-0.0.106
Cut 0.0.106
2 parents af31831 + de8bb8d commit 0a0f87c

File tree

7 files changed

+126
-16
lines changed

7 files changed

+126
-16
lines changed

CHANGELOG.md

+110
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,113 @@
1+
# 0.0.106 - 2022-04-03
2+
3+
## API Updates
4+
* Minimum supported rust version (MSRV) is now 1.41.1 (#1310).
5+
* Lightning feature `option_scid_alias` is now supported and may be negotiated
6+
when opening a channel with a peer. It can be configured via
7+
`ChannelHandshakeConfig::negotiate_scid_privacy` and is off by default but
8+
will be on by default in the future (#1351).
9+
* `OpenChannelRequest` now has a `channel_type` field indicating the features
10+
the channel will operate with and should be used to filter channels with
11+
undesirable features (#1351). See the Serialization Compatibility section.
12+
* `ChannelManager` supports sending and receiving short channel id aliases in
13+
the `funding_locked` message. These are used when forwarding payments and
14+
constructing invoice route hints for improved privacy. `ChannelDetails` has a
15+
`inbound_scid_alias` field and a `get_inbound_payment_scid` method to support
16+
the latter (#1311).
17+
* `DefaultRouter` and `find_route` take an additional random seed to improve
18+
privacy by adding a random CLTV expiry offset to each path's final hop. This
19+
helps obscure the intended recipient from adversarial intermediate hops
20+
(#1286). The seed is also used to randomize candidate paths during route
21+
selection (#1359).
22+
* The `lightning-block-sync` crate's `init::synchronize_listeners` method
23+
interface has been relaxed to support multithreaded environments (#1349).
24+
* `ChannelManager::create_inbound_payment_for_hash`'s documentation has been
25+
corrected to remove the one-year restriction on `invoice_expiry_delta_secs`,
26+
which is only applicable to the deprecated `create_inbound_payment_legacy`
27+
and `create_inbound_payment_for_hash_legacy` methods (#1341).
28+
* `Features` mutator methods now take `self` by reference instead of by value
29+
(#1331).
30+
* The CLTV of the last hop in a path is now included when comparing against
31+
`RouteParameters::max_total_cltv_expiry_delta` (#1358).
32+
* Invoice creation functions in `lightning-invoice` crate's `utils` module
33+
include versions that accept a description hash instead of only a description
34+
(#1361).
35+
* `RoutingMessageHandler::sync_routing_table` has been renamed `peer_connected`
36+
(#1368).
37+
* `MessageSendEvent::SendGossipTimestampFilter` has been added to indicate that
38+
a `gossip_timestamp_filter` should be sent (#1368).
39+
* `PeerManager` takes an optional `NetAddress` in `new_outbound_connection` and
40+
`new_inbound_connection`, which is used to report back the remote address to
41+
the connecting peer in the `init` message (#1326).
42+
* `ChannelManager::accept_inbound_channel` now takes a `user_channel_id`, which
43+
is used in a similar manner as in outbound channels. (#1381).
44+
* `BackgroundProcessor` now persists `NetworkGraph` on a timer and upon
45+
shutdown as part of a new `Persister` trait, which also includes
46+
`ChannelManager` persistence (#1376).
47+
* `ProbabilisticScoringParameters` now has a `base_penalty_msat` option, which
48+
default to 500 msats. It is applied at each hop to help avoid longer paths
49+
(#1375).
50+
* `ProbabilisticScoringParameters::liquidity_penalty_multiplier_msat`'s default
51+
value is now 40,000 msats instead of 10,000 msats (#1375).
52+
* The `lightning` crate has a `grind_signatures` feature used to produce
53+
signatures with low r-values for more predictable transaction weight. This
54+
feature is on by default (#1388).
55+
* `ProbabilisticScoringParameters` now has a `amount_penalty_multiplier_msat`
56+
option, which is used to further penalize large amounts (#1399).
57+
* `PhantomRouteHints`, `FixedPenaltyScorer`, and `ScoringParameters` now
58+
implement `Clone` (#1346).
59+
60+
## Bug Fixes
61+
* Fixed a compilation error in `ProbabilisticScorer` under `--feature=no-std`
62+
(#1347).
63+
* Invoice creation functions in `lightning-invoice` crate's `utils` module
64+
filter invoice hints in order to limit the invoice size (#1325).
65+
* Fixed a bug where a `funding_locked` message was delayed by a block if the
66+
funding transaction was confirmed while offline, depending on the ordering
67+
of `Confirm::transactions_confirmed` calls when brought back online (#1363).
68+
* Fixed a bug in `NetGraphMsgHandler` where it didn't continue to receive
69+
gossip messages from peers after initial connection (#1368, #1382).
70+
* `ChannelManager::timer_tick_occurred` will now timeout a received multi-path
71+
payment (MPP) after three ticks if not received in full instead of waiting
72+
until near the HTLC timeout block(#1353).
73+
* Fixed an issue with `find_route` causing it to be overly aggressive in using
74+
MPP over channels to the same first hop (#1370).
75+
* Reduced time spent processing `channel_update` messages by checking
76+
signatures after checking if no newer messages have already been processed
77+
(#1380).
78+
* Fixed a few issues in `find_route` which caused preferring paths with a
79+
higher cost (#1398).
80+
* Fixed an issue in `ProbabilisticScorer` where a channel with not enough
81+
liquidity could still be used when retrying a failed payment if it was on a
82+
path with an overall lower cost (#1399).
83+
84+
## Serialization Compatibility
85+
* Channels open with `option_scid_alias` negotiated will be incompatible with
86+
prior releases (#1351). This may occur in the following cases:
87+
* Outbound channels when `ChannelHandshakeConfig::negotiate_scid_privacy` is
88+
enabled.
89+
* Inbound channels when automatically accepted from an `OpenChannel` message
90+
with a `channel_type` that has `ChannelTypeFeatures::supports_scid_privacy`
91+
return true. See `UserConfig::accept_inbound_channels`.
92+
* Inbound channels when manually accepted from an `OpenChannelRequest` with a
93+
`channel_type` that has `ChannelTypeFeatures::supports_scid_privacy` return
94+
true. See `UserConfig::manually_accept_inbound_channels`.
95+
96+
In total, this release features 43 files changed, 4052 insertions, 1274
97+
deletions in 75 commits from 11 authors, in alphabetical order:
98+
* Devrandom
99+
* Duncan Dean
100+
* Elias Rohrer
101+
* Jeffrey Czyz
102+
* Jurvis Tan
103+
* Luiz Parreira
104+
* Matt Corallo
105+
* Omar Shamardy
106+
* Viktor Tigerström
107+
* dependabot[bot]
108+
* psycho-pirate
109+
110+
1111
# 0.0.105 - 2022-02-28
2112

3113
## API Updates

lightning-background-processor/Cargo.toml

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "lightning-background-processor"
3-
version = "0.0.105"
3+
version = "0.0.106"
44
authors = ["Valentine Wallace <vwallace@protonmail.com>"]
55
license = "MIT OR Apache-2.0"
66
repository = "http://github.com/lightningdevkit/rust-lightning"
@@ -15,9 +15,9 @@ rustdoc-args = ["--cfg", "docsrs"]
1515

1616
[dependencies]
1717
bitcoin = "0.27"
18-
lightning = { version = "0.0.105", path = "../lightning", features = ["std"] }
19-
lightning-persister = { version = "0.0.105", path = "../lightning-persister" }
18+
lightning = { version = "0.0.106", path = "../lightning", features = ["std"] }
19+
lightning-persister = { version = "0.0.106", path = "../lightning-persister" }
2020

2121
[dev-dependencies]
22-
lightning = { version = "0.0.105", path = "../lightning", features = ["_test_utils"] }
23-
lightning-invoice = { version = "0.13.0", path = "../lightning-invoice" }
22+
lightning = { version = "0.0.106", path = "../lightning", features = ["_test_utils"] }
23+
lightning-invoice = { version = "0.14.0", path = "../lightning-invoice" }

lightning-block-sync/Cargo.toml

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "lightning-block-sync"
3-
version = "0.0.105"
3+
version = "0.0.106"
44
authors = ["Jeffrey Czyz", "Matt Corallo"]
55
license = "MIT OR Apache-2.0"
66
repository = "http://github.com/lightningdevkit/rust-lightning"
@@ -19,7 +19,7 @@ rpc-client = [ "serde", "serde_json", "chunked_transfer" ]
1919

2020
[dependencies]
2121
bitcoin = "0.27"
22-
lightning = { version = "0.0.105", path = "../lightning" }
22+
lightning = { version = "0.0.106", path = "../lightning" }
2323
tokio = { version = "1.0", features = [ "io-util", "net", "time" ], optional = true }
2424
serde = { version = "1.0", features = ["derive"], optional = true }
2525
serde_json = { version = "1.0", optional = true }

lightning-invoice/Cargo.toml

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[package]
22
name = "lightning-invoice"
33
description = "Data structures to parse and serialize BOLT11 lightning invoices"
4-
version = "0.13.0"
4+
version = "0.14.0"
55
authors = ["Sebastian Geisler <sgeisler@wh2.tu-dresden.de>"]
66
documentation = "https://docs.rs/lightning-invoice/"
77
license = "MIT OR Apache-2.0"
@@ -19,13 +19,13 @@ std = ["bitcoin_hashes/std", "num-traits/std", "lightning/std", "bech32/std"]
1919

2020
[dependencies]
2121
bech32 = { version = "0.8", default-features = false }
22-
lightning = { version = "0.0.105", path = "../lightning", default-features = false }
22+
lightning = { version = "0.0.106", path = "../lightning", default-features = false }
2323
secp256k1 = { version = "0.20", default-features = false, features = ["recovery", "alloc"] }
2424
num-traits = { version = "0.2.8", default-features = false }
2525
bitcoin_hashes = { version = "0.10", default-features = false }
2626
hashbrown = { version = "0.11", optional = true }
2727
core2 = { version = "0.3.0", default-features = false, optional = true }
2828

2929
[dev-dependencies]
30-
lightning = { version = "0.0.105", path = "../lightning", default-features = false, features = ["_test_utils"] }
30+
lightning = { version = "0.0.106", path = "../lightning", default-features = false, features = ["_test_utils"] }
3131
hex = "0.4"

lightning-net-tokio/Cargo.toml

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "lightning-net-tokio"
3-
version = "0.0.105"
3+
version = "0.0.106"
44
authors = ["Matt Corallo"]
55
license = "MIT OR Apache-2.0"
66
repository = "https://github.com/lightningdevkit/rust-lightning/"
@@ -16,7 +16,7 @@ rustdoc-args = ["--cfg", "docsrs"]
1616

1717
[dependencies]
1818
bitcoin = "0.27"
19-
lightning = { version = "0.0.105", path = "../lightning" }
19+
lightning = { version = "0.0.106", path = "../lightning" }
2020
tokio = { version = "1.0", features = [ "io-util", "macros", "rt", "sync", "net", "time" ] }
2121

2222
[dev-dependencies]

lightning-persister/Cargo.toml

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "lightning-persister"
3-
version = "0.0.105"
3+
version = "0.0.106"
44
authors = ["Valentine Wallace", "Matt Corallo"]
55
license = "MIT OR Apache-2.0"
66
repository = "https://github.com/lightningdevkit/rust-lightning/"
@@ -17,11 +17,11 @@ _bench_unstable = ["lightning/_bench_unstable"]
1717

1818
[dependencies]
1919
bitcoin = "0.27"
20-
lightning = { version = "0.0.105", path = "../lightning" }
20+
lightning = { version = "0.0.106", path = "../lightning" }
2121
libc = "0.2"
2222

2323
[target.'cfg(windows)'.dependencies]
2424
winapi = { version = "0.3", features = ["winbase"] }
2525

2626
[dev-dependencies]
27-
lightning = { version = "0.0.105", path = "../lightning", features = ["_test_utils"] }
27+
lightning = { version = "0.0.106", path = "../lightning", features = ["_test_utils"] }

lightning/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "lightning"
3-
version = "0.0.105"
3+
version = "0.0.106"
44
authors = ["Matt Corallo"]
55
license = "MIT OR Apache-2.0"
66
repository = "https://github.com/lightningdevkit/rust-lightning/"

0 commit comments

Comments
 (0)