Skip to content

Cut 0.0.109 #1582

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 3 commits into from
Jul 1, 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
72 changes: 71 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,73 @@
# 0.0.109 - 2022-06-30

## API Updates
* `ChannelManager::update_channel_config` has been added to allow the fields
in `ChannelConfig` to be changed in a given channel after open (#1527).
* If we reconnect to a peer which proves we have a stale channel state, rather
than force-closing we will instead panic to provide an opportunity to switch
to the latest state and continue operating without channel loss (#1564).
* A `NodeAlias` struct has been added which handles string sanitization for
node aliases via the `Display` trait (#1544).
* `ProbabilisticScoringParameters` now has a `banned_nodes` set which we will
never route through during path finding (#1550).
* `ProbabilisticScoringParameters` now offers an `anti_probing_penalty_msat`
option to prefer channels which afford better privacy when routing (#1555).
* `ProbabilisticScorer` now provides access to its estimated liquidity range
for a given channel via `estimated_channel_liquidity_range` (#1549).
* Options which cannot be changed at runtime have been moved from
`ChannelConfig` to `ChannelHandshakeConfig` (#1529).
* `find_route` takes `&NetworkGraph` instead of `ReadOnlyNetworkGraph (#1583).
* `ChannelDetails` now contains a copy of the current `ChannelConfig` (#1527).
* The `lightning-invoice` crate now optionally depends on `serde`, with
`Invoice` implementing `serde::{Deserialize,Serialize}` if enabled (#1548).
* Several fields in `UserConfig` have been renamed for clarity (#1540).
Copy link

Choose a reason for hiding this comment

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

Maybe add a mention of #1531, from now on transactions given to funding_transaction_generated() must be final and ready to broadcast ?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Hmm, I figured skip it - we certainly already required that transactions be final, so its not a change, its just a stricter enforcement of existing preconditions.


## Bug Fixes
* `find_route` no longer selects routes with more than
`PaymentParameters::max_mpp_path_count` paths, and
`ChannelManager::send_payment` no longer refuses to send along routes with
more than ten paths (#1526).
* Fixed two cases where HTLCs pending at the time a counterparty broadcasts a
revoked commitment transaction are considered resolved prior to their actual
resolution on-chain, possibly passing the update to another channel (#1486).
* HTLCs which are relayed through LDK may now have a total expiry time two
weeks in the future, up from one, reducing forwarding failures (#1532).

## Serialization Compatibility
* All new fields are ignored by prior versions of LDK. All new fields are not
present when reading objects serialized by prior versions of LDK.
* `ChannelConfig`'s serialization format has changed and is not compatible
with any previous version of LDK. Attempts to read values written by a
previous version of LDK will fail and attempts to read newly written objects
using a previous version of LDK will fail. It is not expected that users are
serializing `ChannelConfig` using the LDK serialization API, however, if a
backward compatibility wrapper is required, please open an issue.

## Security
0.0.109 fixes a denial-of-service vulnerability which is reachable from
untrusted input in some application deployments.

* Third parties which are allowed to open channels with an LDK-based node may
fund a channel with a bogus and maliciously-crafted transaction which, when
spent, can cause a panic in the channel's corresponding `ChannelMonitor`.
Such a channel is never usable as it cannot be funded with a funding
transaction which matches the required output script, allowing the
`ChannelMonitor` for such channels to be safely purged as a workaround on
previous versions of LDK. Thanks to Eugene Siegel for reporting this issue.

In total, this release features 32 files changed, 1948 insertions, 532
deletions in 33 commits from 9 authors, in alphabetical order:
* Antoine Riard
* Daniel Granhão
* Elias Rohrer
* Jeffrey Czyz
* Matt Corallo
* Matt Faltyn
* NicolaLS
Copy link

Choose a reason for hiding this comment

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

According to git log :

  • Matt Faltyn -> Mateusz Faltyn
  • NicolaLS -> Nicola Leonardo Susca

(o any contributor reading the releasing notes, if we mispel or get wrong the names, please accept our excuses, if you also have a preference to be listed with GH handle or other nickname, let it know I think we're fine with that.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Huh? I see the following for NicolaLS. Where did you get the name, or the name for Mr Faltyn? I don't see Mateusz anywhere? CC @NicolaLS and @mattfaltyn.

In general I prefer to just use git shortlog (ie what is configured with git commit --author=... cause it makes it easy to automate things, but if someone prefers a different name we can replace.

commit 6c15de1399f2c1a3f9b1c384af17e59135d7f335 (upstream/pull/1548)
Author: NicolaLS <email omitted>

Copy link
Contributor

Choose a reason for hiding this comment

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

mhm I don't even know how I set the name (it's def not in my config) but it's fine for me either way :)

Copy link
Contributor

@tnull tnull Jun 30, 2022

Choose a reason for hiding this comment

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

mhm I don't even know how I set the name (it's def not in my config)

You can simply set it via git config user.name "My Name" for each repository, but may add the --global flag if you'd like to make it ... global.

Copy link

Choose a reason for hiding this comment

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

I get the following when I do `git log | grep "Faltyn".
Author: Mateusz Faltyn <[email protected]>

So I dunno.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Ah, I was going based on github profile, indeed, it seems he's changed his configured name on git. I guess we should be consistent, I'm happy to pick either one. For now I'll update the 107 release notes to use just "Matt" given that's on his GH.

* Valentine Wallace
* Wilmer Paulino


# 0.0.108 - 2022-06-10

## Bug Fixes
Expand Down Expand Up @@ -148,7 +218,7 @@ deletions in 153 commits from 18 authors, in alphabetical order:
* Jurvis Tan
* Justin Moon
* KaFai Choi
* Mateusz Faltyn
* Matt Faltyn
* Matt Corallo
* Valentine Wallace
* Viktor Tigerström
Expand Down
12 changes: 6 additions & 6 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.108"
version = "0.0.109"
authors = ["Valentine Wallace <[email protected]>"]
license = "MIT OR Apache-2.0"
repository = "http://github.com/lightningdevkit/rust-lightning"
Expand All @@ -15,10 +15,10 @@ rustdoc-args = ["--cfg", "docsrs"]

[dependencies]
bitcoin = "0.28.1"
lightning = { version = "0.0.108", path = "../lightning", features = ["std"] }
lightning-rapid-gossip-sync = { version = "0.0.108", path = "../lightning-rapid-gossip-sync" }
lightning = { version = "0.0.109", path = "../lightning", features = ["std"] }
lightning-rapid-gossip-sync = { version = "0.0.109", path = "../lightning-rapid-gossip-sync" }

[dev-dependencies]
lightning = { version = "0.0.108", path = "../lightning", features = ["_test_utils"] }
lightning-invoice = { version = "0.16.0", path = "../lightning-invoice" }
lightning-persister = { version = "0.0.108", path = "../lightning-persister" }
lightning = { version = "0.0.109", path = "../lightning", features = ["_test_utils"] }
lightning-invoice = { version = "0.17.0", path = "../lightning-invoice" }
lightning-persister = { version = "0.0.109", path = "../lightning-persister" }
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.108"
version = "0.0.109"
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.28.1"
lightning = { version = "0.0.108", path = "../lightning" }
lightning = { version = "0.0.109", path = "../lightning" }
futures = { version = "0.3" }
tokio = { version = "1.0", features = [ "io-util", "net", "time" ], optional = true }
serde = { version = "1.0", features = ["derive"], 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.16.0"
version = "0.17.0"
authors = ["Sebastian Geisler <[email protected]>"]
documentation = "https://docs.rs/lightning-invoice/"
license = "MIT OR Apache-2.0"
Expand All @@ -20,7 +20,7 @@ std = ["bitcoin_hashes/std", "num-traits/std", "lightning/std", "bech32/std"]

[dependencies]
bech32 = { version = "0.8", default-features = false }
lightning = { version = "0.0.108", path = "../lightning", default-features = false }
lightning = { version = "0.0.109", path = "../lightning", default-features = false }
secp256k1 = { version = "0.22", default-features = false, features = ["recovery", "alloc"] }
num-traits = { version = "0.2.8", default-features = false }
bitcoin_hashes = { version = "0.10", default-features = false }
Expand All @@ -29,6 +29,6 @@ core2 = { version = "0.3.0", default-features = false, optional = true }
serde = { version = "1.0.118", optional = true }

[dev-dependencies]
lightning = { version = "0.0.108", path = "../lightning", default-features = false, features = ["_test_utils"] }
lightning = { version = "0.0.109", path = "../lightning", default-features = false, features = ["_test_utils"] }
hex = "0.4"
serde_json = { version = "1"}
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.108"
version = "0.0.109"
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.28.1"
lightning = { version = "0.0.108", path = "../lightning" }
lightning = { version = "0.0.109", 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.108"
version = "0.0.109"
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.28.1"
lightning = { version = "0.0.108", path = "../lightning" }
lightning = { version = "0.0.109", path = "../lightning" }
libc = "0.2"

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

[dev-dependencies]
lightning = { version = "0.0.108", path = "../lightning", features = ["_test_utils"] }
lightning = { version = "0.0.109", path = "../lightning", features = ["_test_utils"] }
6 changes: 3 additions & 3 deletions lightning-rapid-gossip-sync/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "lightning-rapid-gossip-sync"
version = "0.0.108"
version = "0.0.109"
authors = ["Arik Sosman <[email protected]>"]
license = "MIT OR Apache-2.0"
repository = "https://github.com/lightningdevkit/rust-lightning"
Expand All @@ -13,8 +13,8 @@ Utility to process gossip routing data from Rapid Gossip Sync Server.
_bench_unstable = []

[dependencies]
lightning = { version = "0.0.108", path = "../lightning" }
lightning = { version = "0.0.109", path = "../lightning" }
bitcoin = { version = "0.28.1", default-features = false }

[dev-dependencies]
lightning = { version = "0.0.108", path = "../lightning", features = ["_test_utils"] }
lightning = { version = "0.0.109", 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.108"
version = "0.0.109"
authors = ["Matt Corallo"]
license = "MIT OR Apache-2.0"
repository = "https://github.com/lightningdevkit/rust-lightning/"
Expand Down