Skip to content

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

Merged
merged 2 commits into from
Apr 3, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
110 changes: 110 additions & 0 deletions CHANGELOG.md
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).
Copy link

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 ?

Copy link
Collaborator

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 :)

* 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).
Copy link

Choose a reason for hiding this comment

The 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).

Copy link
Contributor Author

Choose a reason for hiding this comment

The 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
Copy link
Collaborator

Choose a reason for hiding this comment

The 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.

Copy link
Contributor Author

Choose a reason for hiding this comment

The 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.

Copy link
Collaborator

Choose a reason for hiding this comment

The 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]
Copy link
Contributor

@tnull tnull Apr 2, 2022

Choose a reason for hiding this comment

The 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?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lol. I, for one, welcome our new robot overlords. #1322 (comment)

Copy link
Contributor

Choose a reason for hiding this comment

The 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
Expand Down
10 changes: 5 additions & 5 deletions lightning-background-processor/Cargo.toml
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"
Expand All @@ -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" }
4 changes: 2 additions & 2 deletions lightning-block-sync/Cargo.toml
Original file line number Diff line number Diff line change
@@ -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"
Expand All @@ -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 }
Expand Down
6 changes: 3 additions & 3 deletions lightning-invoice/Cargo.toml
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"
Expand All @@ -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"
4 changes: 2 additions & 2 deletions lightning-net-tokio/Cargo.toml
Original file line number Diff line number Diff line change
@@ -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/"
Expand All @@ -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]
Expand Down
6 changes: 3 additions & 3 deletions lightning-persister/Cargo.toml
Original file line number Diff line number Diff line change
@@ -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/"
Expand All @@ -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"] }
2 changes: 1 addition & 1 deletion lightning/Cargo.toml
Original file line number Diff line number Diff line change
@@ -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/"
Expand Down