Skip to content

Release 0.0.116 #2427

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 21, 2023
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
44 changes: 40 additions & 4 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,17 @@
# 0.0.116rc1 - Jul 14, 2023 - "Anchoring the Roadmap"
# 0.0.116 - Jul 21, 2023 - "Anchoring the Roadmap"

## API Updates

* Support for zero-HTLC-fee anchor output channels has been added and is now
considered beta (#2367). Users who set
`ChannelHandshakeConfig::negotiate_anchors_zero_fee_htlc_tx` should be
prepared to handle the new `Event::BumpTransaction`, e.g. via the
`BumpTransactionEventHandler` (#2089). Users who set the same and wish to
accept inbound anchor-based channels must do so manually by setting
`UserConfig::manually_accept_inbound_channels` (#2368).
`BumpTransactionEventHandler` (#2089). Note that in order to do so you must
ensure you always have a reserve of available unspent on-chain funds to use
for CPFP. LDK currently makes no attempt to ensure this for you.
Copy link

Choose a reason for hiding this comment

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

so who is going to use anchor outputs with 0.0.116, ldk-node ? i’ve looked around negotiate_anchors_zero_fee_htlc_tx and our CoinSelectionSource, we don’t really have documentation about how to manage fee-bumping reserves, what do you think if I write some simple, conservative and over-collateralized docs for the lightningdevkit website, or do we prefer security-related doc to be under the git tree ?

Copy link
Contributor

Choose a reason for hiding this comment

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

If we're not going to include it as code documentation, we should at least reference to it somewhere. Happy to have you write something if you wish, I'm also working on a post for the LDK blog introducing anchor outputs and what things one should look out for while implementing it as a LDK user.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

If you think the docs are insufficient we should absolutely include them in the struct/config docs. I think many downstream users will use anchor in 116, both large custodial nodes but also ldk-node and ldk-sample.

Copy link

Choose a reason for hiding this comment

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

Happy to review the post for the LDK blog introducing anchor outputs when it’s ready (don’t hesitate to tag me on it). I’ll go to write more documentation, and I think it’s more appropriate to have them on the website (even if I know long-term it’s more maintenance work), as the very least we start to have a multitude of LDK deployment (mobile / large nodes / standard wallet) and generic documentation on fee-bumping reserves might be better suited here.

@ConorOkus Happy to have your thinking here, as you might have more visibility on downstream users, and if operational and safety documentation should go on the website or in struct/config docs, what is the best way to convey important information to the LDK users.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Honestly, many of our downstream developers don't ever read the website. If documentation is only on the website I think ~everyone is going to miss it.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

I'd like to release 0.0.116 tomorrow. If you have any further documentation changes you'd like to see happen, we should make sure it happens by tomorrow early morning US time, at the very latest.

Copy link

Choose a reason for hiding this comment

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

I think I'll go for a doc/fee-bumping-reserve.md a la Linux and it can be copy-paste on the website if we wanna more docs there. Please go to land 0.0.116, I'll add them a posteriori during early 0.0.117 cycle.

Copy link

Choose a reason for hiding this comment

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

Here you go #2450

* Users who set `ChannelHandshakeConfig::negotiate_anchors_zero_fee_htlc_tx`
and wish to accept inbound anchor-based channels must do so manually by
setting `UserConfig::manually_accept_inbound_channels` (#2368).
* Support forwarding and accepting HTLCs with a reduced amount has been added,
to support LSPs skimming a fee on the penultimate hop (#2319).
* BOLT11 and BOLT12 Invoice and related types have been renamed to include a
Expand Down Expand Up @@ -120,6 +123,39 @@
* `RouteHintHop::htlc_maximum_msat` is now enforced. Note that BOLT11 route
hints do not have such a field so this code is generally unused (#2305).

## Security
0.0.116 fixes a denial-of-service vulnerability which is reachable from
untrusted input from channel counterparties if a 0-conf channel exists with
that counterparty.
* A premature `announcement_signatures` message from a peer prior to a 0-conf
channel's funding transaction receiving any confirmations would panic in any
version since 0-conf channels were introduced (#2439).

In total, this release features 142 files changed, 21033 insertions, 11066
deletions in 327 commits from 21 authors, in alphabetical order:
* Alec Chen
* Andrei
* Antoine Riard
* Arik Sosman
* Chad Upjohn
* Daniel Granhão
* Duncan Dean
* Elias Rohrer
* Fred Walker
* Gleb Naumenko
* Jeffrey Czyz
* Martin Habovstiak
* Matt Corallo
* Tony Giorgio
* Valentine Wallace
* Vladimir Fomene
* Willem Van Lint
* Wilmer Paulino
* benthecarman
* ff
* henghonglee


# 0.0.115 - Apr 24, 2023 - "Rebroadcast the Bugfixes"

## API Updates
Expand Down
15 changes: 8 additions & 7 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.116-rc1"
version = "0.0.116"
authors = ["Valentine Wallace <[email protected]>"]
license = "MIT OR Apache-2.0"
repository = "http://github.com/lightningdevkit/rust-lightning"
Expand All @@ -15,17 +15,18 @@ rustdoc-args = ["--cfg", "docsrs"]

[features]
futures = [ ]
std = ["lightning/std", "lightning-rapid-gossip-sync/std"]
std = ["bitcoin/std", "lightning/std", "lightning-rapid-gossip-sync/std"]
no-std = ["bitcoin/no-std", "lightning/no-std", "lightning-rapid-gossip-sync/no-std"]

default = ["std"]

[dependencies]
bitcoin = { version = "0.29.0", default-features = false }
lightning = { version = "0.0.116-rc1", path = "../lightning", default-features = false }
lightning-rapid-gossip-sync = { version = "0.0.116-rc1", path = "../lightning-rapid-gossip-sync", default-features = false }
lightning = { version = "0.0.116", path = "../lightning", default-features = false }
lightning-rapid-gossip-sync = { version = "0.0.116", path = "../lightning-rapid-gossip-sync", default-features = false }

[dev-dependencies]
tokio = { version = "1.14", features = [ "macros", "rt", "rt-multi-thread", "sync", "time" ] }
lightning = { version = "0.0.116-rc1", path = "../lightning", features = ["_test_utils"] }
lightning-invoice = { version = "0.24.0-rc1", path = "../lightning-invoice" }
lightning-persister = { version = "0.0.116-rc1", path = "../lightning-persister" }
lightning = { version = "0.0.116", path = "../lightning", features = ["_test_utils"] }
lightning-invoice = { version = "0.24.0", path = "../lightning-invoice" }
lightning-persister = { version = "0.0.116", path = "../lightning-persister" }
6 changes: 3 additions & 3 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.116-rc1"
version = "0.0.116"
authors = ["Jeffrey Czyz", "Matt Corallo"]
license = "MIT OR Apache-2.0"
repository = "http://github.com/lightningdevkit/rust-lightning"
Expand All @@ -19,11 +19,11 @@ rpc-client = [ "serde_json", "chunked_transfer" ]

[dependencies]
bitcoin = "0.29.0"
lightning = { version = "0.0.116-rc1", path = "../lightning" }
lightning = { version = "0.0.116", path = "../lightning" }
tokio = { version = "1.0", features = [ "io-util", "net", "time" ], optional = true }
serde_json = { version = "1.0", optional = true }
chunked_transfer = { version = "1.4", optional = true }

[dev-dependencies]
lightning = { version = "0.0.116-rc1", path = "../lightning", features = ["_test_utils"] }
lightning = { version = "0.0.116", path = "../lightning", features = ["_test_utils"] }
tokio = { version = "1.14", features = [ "macros", "rt" ] }
4 changes: 2 additions & 2 deletions lightning-custom-message/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "lightning-custom-message"
version = "0.0.116-rc1"
version = "0.0.116"
authors = ["Jeffrey Czyz"]
license = "MIT OR Apache-2.0"
repository = "http://github.com/lightningdevkit/rust-lightning"
Expand All @@ -15,4 +15,4 @@ rustdoc-args = ["--cfg", "docsrs"]

[dependencies]
bitcoin = "0.29.0"
lightning = { version = "0.0.116-rc1", path = "../lightning" }
lightning = { version = "0.0.116", path = "../lightning" }
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.24.0-rc1"
version = "0.24.0"
authors = ["Sebastian Geisler <[email protected]>"]
documentation = "https://docs.rs/lightning-invoice/"
license = "MIT OR Apache-2.0"
Expand All @@ -21,7 +21,7 @@ std = ["bitcoin_hashes/std", "num-traits/std", "lightning/std", "bech32/std"]

[dependencies]
bech32 = { version = "0.9.0", default-features = false }
lightning = { version = "0.0.116-rc1", path = "../lightning", default-features = false }
lightning = { version = "0.0.116", path = "../lightning", default-features = false }
secp256k1 = { version = "0.24.0", default-features = false, features = ["recovery", "alloc"] }
num-traits = { version = "0.2.8", default-features = false }
bitcoin_hashes = { version = "0.11", default-features = false }
Expand All @@ -30,6 +30,6 @@ serde = { version = "1.0.118", optional = true }
bitcoin = { version = "0.29.0", default-features = false }

[dev-dependencies]
lightning = { version = "0.0.116-rc1", path = "../lightning", default-features = false, features = ["_test_utils"] }
lightning = { version = "0.0.116", path = "../lightning", default-features = false, features = ["_test_utils"] }
hex = "0.4"
serde_json = { version = "1"}
6 changes: 3 additions & 3 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.116-rc1"
version = "0.0.116"
authors = ["Matt Corallo"]
license = "MIT OR Apache-2.0"
repository = "https://github.com/lightningdevkit/rust-lightning/"
Expand All @@ -16,9 +16,9 @@ rustdoc-args = ["--cfg", "docsrs"]

[dependencies]
bitcoin = "0.29.0"
lightning = { version = "0.0.116-rc1", path = "../lightning" }
lightning = { version = "0.0.116", path = "../lightning" }
tokio = { version = "1.0", features = [ "io-util", "rt", "sync", "net", "time" ] }

[dev-dependencies]
tokio = { version = "1.14", features = [ "io-util", "macros", "rt", "rt-multi-thread", "sync", "net", "time" ] }
lightning = { version = "0.0.116-rc1", path = "../lightning", features = ["_test_utils"] }
lightning = { version = "0.0.116", path = "../lightning", features = ["_test_utils"] }
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.116-rc1"
version = "0.0.116"
authors = ["Valentine Wallace", "Matt Corallo"]
license = "MIT OR Apache-2.0"
repository = "https://github.com/lightningdevkit/rust-lightning/"
Expand All @@ -15,7 +15,7 @@ rustdoc-args = ["--cfg", "docsrs"]

[dependencies]
bitcoin = "0.29.0"
lightning = { version = "0.0.116-rc1", path = "../lightning" }
lightning = { version = "0.0.116", path = "../lightning" }
libc = "0.2"

[target.'cfg(windows)'.dependencies]
Expand All @@ -25,4 +25,4 @@ winapi = { version = "0.3", features = ["winbase"] }
criterion = { version = "0.4", optional = true, default-features = false }

[dev-dependencies]
lightning = { version = "0.0.116-rc1", path = "../lightning", features = ["_test_utils"] }
lightning = { version = "0.0.116", 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.116-rc1"
version = "0.0.116"
authors = ["Arik Sosman <[email protected]>"]
license = "MIT OR Apache-2.0"
repository = "https://github.com/lightningdevkit/rust-lightning"
Expand All @@ -15,11 +15,11 @@ no-std = ["lightning/no-std"]
std = ["lightning/std"]

[dependencies]
lightning = { version = "0.0.116-rc1", path = "../lightning", default-features = false }
lightning = { version = "0.0.116", path = "../lightning", default-features = false }
bitcoin = { version = "0.29.0", default-features = false }

[target.'cfg(ldk_bench)'.dependencies]
criterion = { version = "0.4", optional = true, default-features = false }

[dev-dependencies]
lightning = { version = "0.0.116-rc1", path = "../lightning", features = ["_test_utils"] }
lightning = { version = "0.0.116", path = "../lightning", features = ["_test_utils"] }
6 changes: 3 additions & 3 deletions lightning-transaction-sync/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "lightning-transaction-sync"
version = "0.0.116-rc1"
version = "0.0.116"
authors = ["Elias Rohrer"]
license = "MIT OR Apache-2.0"
repository = "http://github.com/lightningdevkit/rust-lightning"
Expand All @@ -21,15 +21,15 @@ esplora-blocking = ["esplora-client/blocking"]
async-interface = []

[dependencies]
lightning = { version = "0.0.116-rc1", path = "../lightning", default-features = false }
lightning = { version = "0.0.116", path = "../lightning", default-features = false }
bitcoin = { version = "0.29.0", default-features = false }
bdk-macros = "0.6"
futures = { version = "0.3", optional = true }
esplora-client = { version = "0.4", default-features = false, optional = true }
reqwest = { version = "0.11", optional = true, default-features = false, features = ["json"] }

[dev-dependencies]
lightning = { version = "0.0.116-rc1", path = "../lightning", features = ["std"] }
lightning = { version = "0.0.116", path = "../lightning", features = ["std"] }
electrsd = { version = "0.22.0", features = ["legacy", "esplora_a33e97e1", "bitcoind_23_0"] }
electrum-client = "0.12.0"
tokio = { version = "1.14.0", features = ["full"] }
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.116-rc1"
version = "0.0.116"
authors = ["Matt Corallo"]
license = "MIT OR Apache-2.0"
repository = "https://github.com/lightningdevkit/rust-lightning/"
Expand Down