Skip to content

Add 0.0.116 CHANGELOG entries and prep for 0.0.116rc1 #2414

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
Jul 17, 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
122 changes: 122 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,125 @@
# 0.0.116rc1 - Jul 14, 2023 - "Anchoring the Roadmap"
Copy link

Choose a reason for hiding this comment

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

Yes I think if we can add a special note “anchor output” resuming the state of the things and announcing how we’re thinking to move forward with anchor deployment.

For now the dedicated compilation flag has been built and you need to manually turn on negotiate_anchors_zero_fee_htlc_tx.

Please if we can add a warning all usage of anchor outputs channels with 0.0.116 is on the responsibility on the user, be conservative and careful with your counterparty selection, you might loss money something like that (and cute kittens might die all over the Internet).

I think we should say with 0.0.117 we hope to have all the fee-bumping reserves computations working correctly, at the very least for a ldk-node style deployment and this be default for 0.0.118 (soft commitment towards our users, all things equal).

What else can be in a special anchor output release note ?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Yes I think if we can add a special note “anchor output” resuming the state of the things and announcing how we’re thinking to move forward with anchor deployment.

Do you have any issue with the way its described in the first bullet point?

For now the dedicated compilation flag has been built

This is not true, the cfg flag has been removed as a part of "releasing anchors".

Please if we can add a warning all usage of anchor outputs channels with 0.0.116 is on the responsibility on the user, be conservative and careful with your counterparty selection, you might loss money something like that (and cute kittens might die all over the Internet).

Do you have a specific suggestion that fits into the release notes, otherwise probably best to get it in the config docs (I think the docs there are pretty good, though, no?).

I think we should say with 0.0.117 we hope to have all the fee-bumping reserves computations working correctly

That's news me - implementing reserves in a way that makes sense is super tricky, and we haven't figured out exactly how to do it after some discussion in #2320. Marking that for the 117 milestone is a pretty big task given we are still in the design phase, and 117 already has a ton of things scheduled/tagged. Thus, I'm not sure we want to commit to it as a part of the next release.

Copy link

Choose a reason for hiding this comment

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

Do you have any issue with the way its described in the first bullet point?

Yes, I would favor more a “big warning notice” about anchor outputs to say to our users this is the main thing we have worked for this release, and this is the one thing we would love to have API feedback on it.

Still while being conservative on funds risks coming with a beta feature. I had in mind what Dave did for mempoolfullrbf with 24.0.1: https://github.com/bitcoin/bitcoin/blob/master/doc/release-notes/release-notes-24.0.1.md#notice-of-new-option-for-transaction-replacement-policies where the feature is explicitly said as conservative and there is not yet consensus between devs on the risks trade-offs.

This is not true, the cfg flag has been removed as a part of "releasing anchors".

Ah that might be true, what is “releasing anchors” in this context the v0.0.116 rc0 ? Note it doesn’t show up in the GH https://github.com/lightningdevkit/rust-lightning/releases

Do you have a specific suggestion that fits into the release notes, otherwise probably best to get it in the config docs (I think the docs there are pretty good, though, no?).

“Users are recommended to be conservative with the usage of option_anchors_zero_fee_htlc_tx and select their anchor outputs channels counterparty with care. With anchor output come the requiremeent a Lightning node has to manage “hot” fee-bumping reserves, a fundamental change in the operations of a node. Best practice would be to add progressively funds on this channel type until one is more familiar with the effective management of fee-bumping reserves. Further documentation is available around negotiate_anchors_zero_fee_htlc_tx”.

Feel free to tweak it according to your taste, though when a feature is new I think it’s better to say twice to our users a warning both in docs and in the release notes (and here I must say LND has the practice of doing it far better than us).

That's news me - implementing reserves in a way that makes sense is super tricky, and we haven't figured out exactly how to do it after some discussion in #2320. Marking that for the 117 milestone is a pretty big task given we are still in the design phase, and 117 already has a ton of things scheduled/tagged. Thus, I'm not sure we want to commit to it as a part of the next release.

Yeah sorry the “we” might not reflect the position of all of us, though at the very least I believe it reflect all the discussion over the anchor output patchetset (as tracked only recently with ##2297) though I think I can say there is a “rough consensus” between you, Wilmer, Elias and me our fee-bumping reserves API can be improved.

For sure, “100% robust” fee-bumping reserves might be a too high step for 0.0.117 though I would be very happy if we can know clearly what set of PRs and substantial improvement of the fee-bumping reserves we aim with 0.0.117, and that way get us one step closer from marking anchor output “alpha” (somehow we shouldn’t delay too much anchor output once fee-bumping reserves API a bit mature as legacy channels have historical and known dust exposure).

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 that might be true, what is “releasing anchors” in this context the v0.0.116 rc0 ? Note it doesn’t show up in the GH https://github.com/lightningdevkit/rust-lightning/releases

Yea, cause we don't have a release up yet :)

Yes, I would favor more a “big warning notice” about anchor outputs to say to our users this is the main thing we have worked for this release, and this is the one thing we would love to have API feedback on it.

Alright, since this has ACKs I'm gonna go ahead and merge it, and will work on adding more context in the 0.0.116-release release notes.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

See #2427


## 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).
* 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
BOLTNN prefix, ensuring uniqueness in `lightning{,-invoice}` crates (#2416).
* `Score`rs now have an associated type which represents a parameter passed
when calculating penalties. This allows for the same `Score`r to be used with
different penalty calculation parameters (#2237).
* `DefaultRouter` is no longer restrained to a `Mutex`-wrapped `Score`,
allowing it to be used in `no-std` builds (#2383).
* `CustomMessageHandler::provided_{node,init}_features` and various custom
feature bit methods on `*Features` were added (#2204).
* Keysend/push payments using MPP are now supported when receiving if
`UserConfig::accept_mpp_keysend` is set and when sending if specified in the
`PaymentParameters`. Note that not all recipients support this (#2156).
* A new `ConfirmationTarget::MempoolMinimum` has been added (#2415).
* `SpendableOutputDescriptor::to_psbt_input` was added (#2286).
* `ChannelManager::update_partial_channel_config` was added (#2330).
* `ChannelDetails::channel_shutdown_state` was added (#2347).
* The shutdown script can now be provided at shutdown time via
`ChannelManager::close_channel_with_feerate_and_script` (#2219).
* `BroadcasterInterface` now takes multiple transactions at once. While not
available today, in the future single calls should be passed to a full node
via a single batch/package transaction acceptance API (#2272).
* `Balance::claimable_amount_satoshis` was added (#2333).
* `payment_{hash,preimage}` have been added to some `Balance` variants (#2217).
* The `lightning::chain::keysinterface` is now `lightning::sign` (#2246).
* Routing to a blinded path has been implemented, though sending to such a
route is not yet supported in `ChannelManager` (#2120).
* `OffersMessageHandler` was added for offers-related onion messages (#2294).
* The `CustomMessageHandler` parameter to `PeerManager` has moved to
`MessageHandler` from `PeerManager::new` explicitly (#2249).
* Various P2P messages for dual funding channel establishment have been added,
though handling for them is not yet in `ChannelManager` (#1794)
* Script-fetching methods in `sign` interfaces can now return errors, see docs
for the implications of failing (#2213).
* The `data_loss_protect` option is now required when reading
`channel_reestablish` messages, as many others have done (#2253).
* `InFlightHtlcs::add_inflight_htlc` has been added (#2042).
* The `init` message `networks` field is now written and checked (#2329).
* `PeerManager` generics have been simplified with the introduction of the
`APeerManager` trait (#2249).
* `ParitalOrd` and `Ord` are now implemented for `Invoice` (#2279).
* `ParitalEq` and `Debug` are now implemented for `InMemorySigner` (#2328).
* `ParitalEq` and `Eq` are now implemented for `PaymentError` (#2316).
* `NetworkGraph::update_channel_from_announcement_no_lookup` was added (#2222).
* `lightning::routing::gossip::verify_{channel,node}_announcement` was added
(#2307).

## Backwards Compatibility
* `PaymentParameters` written with blinded path info using LDK 0.0.115 will not
be readable in LDK 0.0.116, and vice versa.
* Forwarding less than `Event::HTLCIntercepted::expected_outbound_amount_msat`
in `ChannelManager::forward_intercepted_htlc` may prevent the
`ChannelManager` from being read by LDK prior to 0.0.116 (#2319)
* Setting `ChannelConfig::accept_underpaying_htlcs` may prevent the
`ChannelManager` from being read by LDK prior to 0.0.116 and un-setting the
parameter between restarts may lead to payment failures (#2319).
* `ChannelManager::create_inbound_payment{,_for_hash}_legacy` has been removed,
removing the ability to create inbound payments which are claimable after
downgrade to LDK 0.0.103 and prior. In the future handling such payments will
also be removed (#2351).
* Some fields required by LDK 0.0.103 and earlier are no longer written, thus
deserializing objects written by 0.0.116 with 0.0.103 may now fail (#2351).

## Bug Fixes
* `ChannelDetails::next_outbound_htlc_limit_msat` was made substantially more
accurate and a corresponding `next_outbound_htlc_minimum_msat` was added.
This resolves issues where unpayable routes were generated due to
overestimation of the amount which is payable over one of our channels as
the first hop (#2312).
* A rare case where delays in processing `Event`s generated by
`ChannelMonitor`s could lead to loss of those events in case of an untimely
crash. This could lead to the loss of an `Event::SpendableOutputs` (#2369).
* Fixed a regression in 0.0.115 which caused `PendingHTLCsForwardable` events
to be missed when processing phantom node receives. This caused such
payments to be delayed until a further, unrelated HTLC came in (#2395).
* Peers which are unresponsive to channel messages for several timer ticks are
now disconnected to allow for on-reconnection state machine reset. This
works around some issues in LND prior to 16.3 which can cause channels to
hang and eventually force-close (#2293).
* `ChannelManager::new` now requires the current time (either from a recent
block header or the system clock), ensuring invoices created immediately
after startup aren't already expired (#2372).
* Resolved an issue where reading a `ProbabilisticScorer` on some platforms
(e.g. iOS) can lead to a panic (#2322).
* `ChannelConfig::max_dust_htlc_exposure` is now allowed to scale based on
current fees, and the default has been updated to do so. This substantially
reduces the chance of force-closure due to dust exposure. Note that existing
channels will retain their current value and you may wish to update the
value on your existing channels on upgrade (#2354).
* `PeerManager::process_events` no longer blocks in any case. This fixes a bug
where reentrancy from `PeerManager` into user code which eventually calls
`process_events` could lead to a deadlock (#2280).
* The persist timing of network graph and scoring in
`lightning-background-processor` has been tweaked to provide more reliable
persistence after updates to either (#2226).
* The number of route hints added to BOLT 11 invoices by the
`lightning-invoice::utils` builders has been reduced to three to ensure
invoices can be represented in scan-able QR codes (#2044).
* Fixed sending large onion messages, which would previously have resulted in
an HMAC error on the second hop (#2277).
* Fixed a memory leak that may occur when a `ChannelManager` or
`ChannelMonitor` is `drop`ed (#2233).
* A potential deadlock in calling `NetworkGraph::eq` was resolved (#2284).
* Fixed an overflow which prevented disconnecting peers in some minor cases
with more than 31 peers (#2245).
* Gossip messages with an unknown chain hash are now ignored (#2230).
* Rapid Gossip Sync processing now fails on an unknown chain hash (#2324).
* `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).

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

## API Updates
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.116-alpha1"
version = "0.0.116-rc1"
authors = ["Valentine Wallace <[email protected]>"]
license = "MIT OR Apache-2.0"
repository = "http://github.com/lightningdevkit/rust-lightning"
Expand All @@ -21,11 +21,11 @@ default = ["std"]

[dependencies]
bitcoin = { version = "0.29.0", default-features = false }
lightning = { version = "0.0.116-alpha1", path = "../lightning", default-features = false }
lightning-rapid-gossip-sync = { version = "0.0.116-alpha1", path = "../lightning-rapid-gossip-sync", 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 }

[dev-dependencies]
tokio = { version = "1.14", features = [ "macros", "rt", "rt-multi-thread", "sync", "time" ] }
lightning = { version = "0.0.116-alpha1", path = "../lightning", features = ["_test_utils"] }
lightning-invoice = { version = "0.24.0-alpha1", path = "../lightning-invoice" }
lightning-persister = { version = "0.0.116-alpha1", path = "../lightning-persister" }
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" }
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-alpha1"
version = "0.0.116-rc1"
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-alpha1", path = "../lightning" }
lightning = { version = "0.0.116-rc1", 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-alpha1", path = "../lightning", features = ["_test_utils"] }
lightning = { version = "0.0.116-rc1", 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-alpha1"
version = "0.0.116-rc1"
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-alpha1", path = "../lightning" }
lightning = { version = "0.0.116-rc1", 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-alpha1"
version = "0.24.0-rc1"
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-alpha1", path = "../lightning", default-features = false }
lightning = { version = "0.0.116-rc1", 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-alpha1", path = "../lightning", default-features = false, features = ["_test_utils"] }
lightning = { version = "0.0.116-rc1", 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-alpha1"
version = "0.0.116-rc1"
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-alpha1", path = "../lightning" }
lightning = { version = "0.0.116-rc1", path = "../lightning" }
tokio = { version = "1.0", features = [ "io-util", "macros", "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-alpha1", path = "../lightning", features = ["_test_utils"] }
lightning = { version = "0.0.116-rc1", 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-alpha1"
version = "0.0.116-rc1"
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-alpha1", path = "../lightning" }
lightning = { version = "0.0.116-rc1", 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-alpha1", path = "../lightning", features = ["_test_utils"] }
lightning = { version = "0.0.116-rc1", 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-alpha1"
version = "0.0.116-rc1"
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-alpha1", path = "../lightning", default-features = false }
lightning = { version = "0.0.116-rc1", 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-alpha1", path = "../lightning", features = ["_test_utils"] }
lightning = { version = "0.0.116-rc1", 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-alpha1"
version = "0.0.116-rc1"
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-alpha1", path = "../lightning", default-features = false }
lightning = { version = "0.0.116-rc1", 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-alpha1", path = "../lightning", features = ["std"] }
lightning = { version = "0.0.116-rc1", 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-alpha1"
version = "0.0.116-rc1"
authors = ["Matt Corallo"]
license = "MIT OR Apache-2.0"
repository = "https://github.com/lightningdevkit/rust-lightning/"
Expand Down
4 changes: 0 additions & 4 deletions pending_changelog/big-om-error.txt

This file was deleted.

3 changes: 0 additions & 3 deletions pending_changelog/blinded_pay_param_compat.txt

This file was deleted.

6 changes: 0 additions & 6 deletions pending_changelog/forward-underpaying-htlc.txt

This file was deleted.

6 changes: 0 additions & 6 deletions pending_changelog/no-legacy-payments.txt

This file was deleted.