-
Notifications
You must be signed in to change notification settings - Fork 411
Cut 0.0.106 #1397
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Cut 0.0.106 #1397
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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). | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. IMHO, it's better to announce a timeline or release number in the deprecation warning, instead to say "will be removed soon" which opens the way for interpretation and thus user bargaining. I know, for a maintainer it might be preferable to use "soon" as it give more room to adapt in function of the user base, though let's be aware it's a double-edge (Yeah the project is young, we might not have a consistent deprecation process that early). There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. True, though note this isn't related to any changes for this release. |
||
* `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 | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. nit: I do kinda feel like we can leave out stuff that is painfully obvious what to do with it and which will cause downstream compile failures if there's anything a downstream user needs to do with it. ie this wont impact anyone, and in the off-chance it does, its obvious to them what to do and they'll get a compile failure if they dont. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I suppose that I was thinking release notes also serve to raise awareness of new features before a user decides to upgrade. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Sure, I don't feel strongly. Its just not clear what a user would do with this - we still exhibit the ~same (or, well, the expected, not the buggy) sync behavior users were expecting, we just have a new enum variant to send a message, but I don't think any users ever actually send manual messages today. |
||
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] | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Not to hurt its feelings, but maybe dependabot doesn't need to be mentioned here? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. lol. I, for one, welcome our new robot overlords. #1322 (comment) There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I agree, bots are people, too. |
||
* psycho-pirate | ||
|
||
|
||
# 0.0.105 - 2022-02-28 | ||
|
||
## API Updates | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,6 @@ | ||
[package] | ||
name = "lightning-background-processor" | ||
version = "0.0.105" | ||
version = "0.0.106" | ||
authors = ["Valentine Wallace <[email protected]>"] | ||
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" } |
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.13.0" | ||
version = "0.14.0" | ||
authors = ["Sebastian Geisler <[email protected]>"] | ||
documentation = "https://docs.rs/lightning-invoice/" | ||
license = "MIT OR Apache-2.0" | ||
|
@@ -19,13 +19,13 @@ 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 } | ||
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" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For now our user base is reasonable so we can follow quickly the still fast-moving rust ecosystem. Though in the future we might give a release or two of warning to our users, it can be a time-consuming task ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
1.41 is really old - instead of trying to give warning, we instead just only use things that every major linux distro is shipping already, which means they shouldn't have to do anything to an up-to-date system :)