Skip to content

Cut 0.0.102 #1127

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
Oct 18, 2021
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
78 changes: 78 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,81 @@
# 0.0.102 - 2021-10-18

## API Updates
* `get_route` now takes a `Score` as an argument. `Score` is queried during
the route-finding process, returning the absolute amounts which you are
willing to pay to avoid routing over a given channel. As a default, a
`Scorer` is provided which returns a constant amount, with a suggested
default of 500 msat. This translates to a willingness to pay up to 500 msat
in additional fees per hop in order to avoid additional hops (#1124).
* `Event::PaymentPathFailed` now contains a `short_channel_id` field which may
be filled in with a channel that can be "blamed" for the payment failure.
Payment retries should likely avoid the given channel for some time (#1077).
* `PublicKey`s in `NetworkGraph` have been replaced with a `NodeId` struct
which contains only a simple `[u8; 33]`, substantially improving
`NetworkGraph` deserialization performance (#1107).
* `ChainMonitor`'s `HashMap` of `ChannelMonitor`s is now private, exposed via
`Chainmonitor::get_monitor` and `ChainMonitor::list_monitors` instead
(#1112).
* When an outbound channel is closed prior to the broadcasting of its funding
transaction, but after you call
`ChannelManager::funding_transaction_generated`, a new event type,
`Event::DiscardFunding`, is generated, informing you the transaction was not
broadcasted and that you can spend the same inputs again elsewhere (#1098).
* `ChannelManager::create_channel` now returns the temporary channel ID which
may later appear in `Event::ChannelClosed` or `ChannelDetails` prior to the
channel being funded (#1121).
* `Event::PaymentSent` now contains the payment hash as well as the payment
preimage (#1062).
* `ReadOnlyNetworkGraph::get_addresses` now returns owned `NetAddress` rather
than references. As a side-effect this method is now exposed in foreign
language bindings (#1115).
* The `Persist` and `ChannelMonitorUpdateErr` types have moved to the
`lightning::chain::chainmonitor` and `lightning::chain` modules,
respectively (#1112).
* `ChannelManager::send_payment` now returns a `PaymentId` which identifies a
payment (whether MPP or not) and can be used to retry the full payment or
MPP parts through `retry_payment` (#1096). Note that doing so is currently
*not* crash safe, and you may find yourself sending twice. It is recommended
that you *not* use the `retry_payment` API until the next release.

## Bug Fixes
* Due to an earlier fix for the Lightning dust inflation vulnerability tracked
in CVE-2021-41591/CVE-2021-41592/CVE-2021-41593 in 0.0.100, we required
counterparties to accept a dust limit slightly lower than the dust limit now
required by other implementations. This appeared as, at least, latest lnd
always refusing to accept channels opened by LDK clients (#1065).
* If there are multiple channels available to the same counterparty,
`get_route` would only consider the channel listed last as available for
sending (#1100).
* `Persist` implementations returning
`ChannelMonitorUpdateErr::TemporaryFailure` from `watch_channel` previously
resulted in the `ChannelMonitor` not being stored at all, resulting in a
panic after monitor updating is complete (#1112).
* If payments are pending awaiting forwarding at startup, an
`Event::PendingHTLCsForwardable` event will always be provided. This ensures
user code calls `ChannelManager::process_pending_htlc_fowards` even if it
shut down while awaiting the batching timer during the previous run (#1076).
* If a call to `ChannelManager::send_payment` failed due to lack of
availability of funds locally, LDK would store the payment as pending
forever, with no ability to retry or fail it, leaking memory (#1109).

## Serialization Compatibility
* All above new Events/fields are ignored by prior clients. All above new
Events/fields, except for `Event::PaymentSent::payment_hash` are not present
when reading objects serialized by prior versions of the library.

In total, this release features 32 files changed, 2248 insertions, and 1483
deletions in 51 commits from 7 authors, in alphabetical order:

* 1nF0rmed
* Duncan Dean
* Elias Rohrer
* Galder Zamarreño
* Jeffrey Czyz
* Matt Corallo
* Valentine Wallace


# 0.0.101 - 2021-09-23

## API Updates
Expand Down
8 changes: 4 additions & 4 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.101"
version = "0.0.102"
authors = ["Valentine Wallace <[email protected]>"]
license = "MIT OR Apache-2.0"
repository = "http://github.com/rust-bitcoin/rust-lightning"
Expand All @@ -11,9 +11,9 @@ edition = "2018"

[dependencies]
bitcoin = "0.27"
lightning = { version = "0.0.101", path = "../lightning", features = ["allow_wallclock_use"] }
lightning-persister = { version = "0.0.101", path = "../lightning-persister" }
lightning = { version = "0.0.102", path = "../lightning", features = ["allow_wallclock_use"] }
lightning-persister = { version = "0.0.102", path = "../lightning-persister" }

[dev-dependencies]
lightning = { version = "0.0.101", path = "../lightning", features = ["_test_utils"] }
lightning = { version = "0.0.102", path = "../lightning", features = ["_test_utils"] }

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.101"
version = "0.0.102"
authors = ["Jeffrey Czyz", "Matt Corallo"]
license = "MIT OR Apache-2.0"
repository = "http://github.com/rust-bitcoin/rust-lightning"
Expand All @@ -15,7 +15,7 @@ rpc-client = [ "serde", "serde_json", "chunked_transfer" ]

[dependencies]
bitcoin = "0.27"
lightning = { version = "0.0.101", path = "../lightning" }
lightning = { version = "0.0.102", 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.9.0"
version = "0.10.0"
authors = ["Sebastian Geisler <[email protected]>"]
documentation = "https://docs.rs/lightning-invoice/"
license = "MIT OR Apache-2.0"
Expand All @@ -10,11 +10,11 @@ readme = "README.md"

[dependencies]
bech32 = "0.8"
lightning = { version = "0.0.101", path = "../lightning" }
lightning = { version = "0.0.102", path = "../lightning" }
secp256k1 = { version = "0.20", features = ["recovery"] }
num-traits = "0.2.8"
bitcoin_hashes = "0.10"

[dev-dependencies]
hex = "0.3"
lightning = { version = "0.0.101", path = "../lightning", features = ["_test_utils"] }
lightning = { version = "0.0.102", path = "../lightning", features = ["_test_utils"] }
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.101"
version = "0.0.102"
authors = ["Matt Corallo"]
license = "MIT OR Apache-2.0"
repository = "https://github.com/rust-bitcoin/rust-lightning/"
Expand All @@ -12,7 +12,7 @@ edition = "2018"

[dependencies]
bitcoin = "0.27"
lightning = { version = "0.0.101", path = "../lightning" }
lightning = { version = "0.0.102", 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.101"
version = "0.0.102"
authors = ["Valentine Wallace", "Matt Corallo"]
license = "MIT OR Apache-2.0"
repository = "https://github.com/rust-bitcoin/rust-lightning/"
Expand All @@ -13,11 +13,11 @@ unstable = ["lightning/unstable"]

[dependencies]
bitcoin = "0.27"
lightning = { version = "0.0.101", path = "../lightning" }
lightning = { version = "0.0.102", path = "../lightning" }
libc = "0.2"

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

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