Skip to content

Commit 82b8d85

Browse files
authored
Merge pull request #1322 from TheBlueMatt/2022-02-0.0.105
Cut 0.0.105
2 parents 8219ae2 + def0628 commit 82b8d85

File tree

7 files changed

+115
-16
lines changed

7 files changed

+115
-16
lines changed

CHANGELOG.md

+99
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,102 @@
1+
# 0.0.105 - 2022-02-28
2+
3+
## API Updates
4+
* `Phantom node` payments are now supported, allowing receipt of a payment on
5+
any one of multiple nodes without any coordination across the nodes being
6+
required. See the new `PhantomKeysManager`'s docs for more, as well as
7+
requirements on `KeysInterface::get_inbound_payment_key_material` and
8+
`lightning_invoice::utils::create_phantom_invoice` (#1199).
9+
* In order to support phantom node payments, several `KeysInterface` methods
10+
now accept a `Recipient` parameter to select between the local `node_id` and
11+
a phantom-specific one.
12+
* `ProbabilisticScorer`, a `Score` based on learning the current balances of
13+
channels in the network, was added. It attempts to better capture payment
14+
success probability than the existing `Scorer`, though may underperform on
15+
nodes with low payment volume. We welcome feedback on performance (#1227).
16+
* `Score::channel_penalty_msat` now always takes the channel value, instead of
17+
an `Option` (#1227).
18+
* `UserConfig::manually_accept_inbound_channels` was added which, when set,
19+
generates a new `Event::OpenChannelRequest`, which allows manual acceptance
20+
or rejection of incoming channels on a per-channel basis (#1281).
21+
* `Payee` has been renamed to `PaymentParameters` (#1271).
22+
* `PaymentParameters` now has a `max_total_cltv_expiry_delta` field. This
23+
defaults to 1008 and limits the maximum amount of time an HTLC can be pending
24+
before it will either fail or be claimed (#1234).
25+
* The `lightning-invoice` crate now supports no-std environments. This required
26+
numerous API changes around timestamp handling and std+no-std versions of
27+
several methods that previously assumed knowledge of the time (#1223, #1230).
28+
* `lightning-invoice` now supports parsing invoices with expiry times of more
29+
than one year. This required changing the semantics of `ExpiryTime` (#1273).
30+
* The `CounterpartyCommitmentSecrets` is now public, allowing external uses of
31+
the `BOLT 3` secret storage scheme (#1299).
32+
* Several `Sign` methods now receive HTLC preimages as proof of state
33+
transition, see new documentation for more (#1251).
34+
* `KeysInterface::sign_invoice` now provides the HRP and other invoice data
35+
separately to make it simpler for external signers to parse (#1272).
36+
* `Sign::sign_channel_announcement` now returns both the node's signature and
37+
the per-channel signature. `InMemorySigner` now requires the node's secret
38+
key in order to implement this (#1179).
39+
* `ChannelManager` deserialization will now fail if the `KeysInterface` used
40+
has a different `node_id` than the `ChannelManager` expects (#1250).
41+
* A new `ErrorAction` variant was added to send `warning` messages (#1013).
42+
* Several references to `chain::Listen` objects in `lightning-block-sync` no
43+
longer require a mutable reference (#1304).
44+
45+
## Bug Fixes
46+
* Fixed a regression introduced in 0.0.104 where `ChannelManager`'s internal
47+
locks could have an order violation leading to a deadlock (#1238).
48+
* Fixed cases where slow code (including user I/O) could cause us to
49+
disconnect peers with ping timeouts in `BackgroundProcessor` (#1269).
50+
* Now persist the `ChannelManager` prior to `BackgroundProcessor` stopping,
51+
preventing race conditions where channels are closed on startup even with a
52+
clean shutdown. This requires that users stop network processing and
53+
disconnect peers prior to `BackgroundProcessor` shutdown (#1253).
54+
* Fields in `ChannelHandshakeLimits` provided via the `override_config` to
55+
`create_channel` are now applied instead of the default config (#1292).
56+
* Fixed the generation of documentation on docs.rs to include API surfaces
57+
which are hidden behind feature flags (#1303).
58+
* Added the `channel_type` field to `accept_channel` messages we send, which
59+
may avoid some future compatibility issues with other nodes (#1314).
60+
* Fixed a bug where, if a previous LDK run using `lightning-persister` crashed
61+
while persisting updated data, we may have failed to initialize (#1332).
62+
* Fixed a rare bug where having both pending inbound and outbound HTLCs on a
63+
just-opened inbound channel could cause `ChannelDetails::balance_msat` to
64+
underflow and be reported as large, or cause panics in debug mode (#1268).
65+
* Moved more instances of verbose gossip logging from the `Trace` level to the
66+
`Gossip` level (#1220).
67+
* Delayed `announcement_signatures` until the channel has six confirmations,
68+
slightly improving propagation of channel announcements (#1179).
69+
* Several fixes in script and transaction weight calculations when anchor
70+
outputs are enabled (#1229).
71+
72+
## Serialization Compatibility
73+
* Using `ChannelManager` data written by versions prior to 0.0.105 will result
74+
in preimages for HTLCs that were pending at startup to be missing in calls
75+
to `KeysInterface` methods (#1251).
76+
* Any phantom invoice payments received on a node that is not upgraded to
77+
0.0.105 will fail with an "unknown channel" error. Further, downgrading to
78+
0.0.104 or before and then upgrading again will invalidate existing phantom
79+
SCIDs which may be included in invoices (#1199).
80+
81+
In total, this release features 108 files changed, 6914 insertions, 2095
82+
deletions in 102 commits from 15 authors, in alphabetical order:
83+
* Conor Okus
84+
* Devrandom
85+
* Elias Rohrer
86+
* Jeffrey Czyz
87+
* Jurvis Tan
88+
* Ken Sedgwick
89+
* Matt Corallo
90+
* Naveen
91+
* Tibo-lg
92+
* Valentine Wallace
93+
* Viktor Tigerström
94+
* dependabot[bot]
95+
* hackerrdave
96+
* naveen
97+
* vss96
98+
99+
1100
# 0.0.104 - 2021-12-17
2101

3102
## API Updates

lightning-background-processor/Cargo.toml

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "lightning-background-processor"
3-
version = "0.0.104"
3+
version = "0.0.105"
44
authors = ["Valentine Wallace <[email protected]>"]
55
license = "MIT OR Apache-2.0"
66
repository = "http://github.com/lightningdevkit/rust-lightning"
@@ -15,9 +15,9 @@ rustdoc-args = ["--cfg", "docsrs"]
1515

1616
[dependencies]
1717
bitcoin = "0.27"
18-
lightning = { version = "0.0.104", path = "../lightning", features = ["std"] }
19-
lightning-persister = { version = "0.0.104", path = "../lightning-persister" }
18+
lightning = { version = "0.0.105", path = "../lightning", features = ["std"] }
19+
lightning-persister = { version = "0.0.105", path = "../lightning-persister" }
2020

2121
[dev-dependencies]
22-
lightning = { version = "0.0.104", path = "../lightning", features = ["_test_utils"] }
23-
lightning-invoice = { version = "0.12.0", path = "../lightning-invoice" }
22+
lightning = { version = "0.0.105", path = "../lightning", features = ["_test_utils"] }
23+
lightning-invoice = { version = "0.13.0", path = "../lightning-invoice" }

lightning-block-sync/Cargo.toml

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "lightning-block-sync"
3-
version = "0.0.104"
3+
version = "0.0.105"
44
authors = ["Jeffrey Czyz", "Matt Corallo"]
55
license = "MIT OR Apache-2.0"
66
repository = "http://github.com/lightningdevkit/rust-lightning"
@@ -19,7 +19,7 @@ rpc-client = [ "serde", "serde_json", "chunked_transfer" ]
1919

2020
[dependencies]
2121
bitcoin = "0.27"
22-
lightning = { version = "0.0.104", path = "../lightning" }
22+
lightning = { version = "0.0.105", path = "../lightning" }
2323
tokio = { version = "1.0", features = [ "io-util", "net", "time" ], optional = true }
2424
serde = { version = "1.0", features = ["derive"], optional = true }
2525
serde_json = { version = "1.0", optional = true }

lightning-invoice/Cargo.toml

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[package]
22
name = "lightning-invoice"
33
description = "Data structures to parse and serialize BOLT11 lightning invoices"
4-
version = "0.12.0"
4+
version = "0.13.0"
55
authors = ["Sebastian Geisler <[email protected]>"]
66
documentation = "https://docs.rs/lightning-invoice/"
77
license = "MIT OR Apache-2.0"
@@ -19,13 +19,13 @@ std = ["bitcoin_hashes/std", "num-traits/std", "lightning/std", "bech32/std"]
1919

2020
[dependencies]
2121
bech32 = { version = "0.8", default-features = false }
22-
lightning = { version = "0.0.104", path = "../lightning", default-features = false }
22+
lightning = { version = "0.0.105", path = "../lightning", default-features = false }
2323
secp256k1 = { version = "0.20", default-features = false, features = ["recovery", "alloc"] }
2424
num-traits = { version = "0.2.8", default-features = false }
2525
bitcoin_hashes = { version = "0.10", default-features = false }
2626
hashbrown = { version = "0.11", optional = true }
2727
core2 = { version = "0.3.0", default-features = false, optional = true }
2828

2929
[dev-dependencies]
30-
lightning = { version = "0.0.104", path = "../lightning", default-features = false, features = ["_test_utils"] }
30+
lightning = { version = "0.0.105", path = "../lightning", default-features = false, features = ["_test_utils"] }
3131
hex = "0.4"

lightning-net-tokio/Cargo.toml

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "lightning-net-tokio"
3-
version = "0.0.104"
3+
version = "0.0.105"
44
authors = ["Matt Corallo"]
55
license = "MIT OR Apache-2.0"
66
repository = "https://github.com/lightningdevkit/rust-lightning/"
@@ -16,7 +16,7 @@ rustdoc-args = ["--cfg", "docsrs"]
1616

1717
[dependencies]
1818
bitcoin = "0.27"
19-
lightning = { version = "0.0.104", path = "../lightning" }
19+
lightning = { version = "0.0.105", path = "../lightning" }
2020
tokio = { version = "1.0", features = [ "io-util", "macros", "rt", "sync", "net", "time" ] }
2121

2222
[dev-dependencies]

lightning-persister/Cargo.toml

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "lightning-persister"
3-
version = "0.0.104"
3+
version = "0.0.105"
44
authors = ["Valentine Wallace", "Matt Corallo"]
55
license = "MIT OR Apache-2.0"
66
repository = "https://github.com/lightningdevkit/rust-lightning/"
@@ -17,11 +17,11 @@ _bench_unstable = ["lightning/_bench_unstable"]
1717

1818
[dependencies]
1919
bitcoin = "0.27"
20-
lightning = { version = "0.0.104", path = "../lightning" }
20+
lightning = { version = "0.0.105", path = "../lightning" }
2121
libc = "0.2"
2222

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

2626
[dev-dependencies]
27-
lightning = { version = "0.0.104", path = "../lightning", features = ["_test_utils"] }
27+
lightning = { version = "0.0.105", path = "../lightning", features = ["_test_utils"] }

lightning/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "lightning"
3-
version = "0.0.104"
3+
version = "0.0.105"
44
authors = ["Matt Corallo"]
55
license = "MIT OR Apache-2.0"
66
repository = "https://github.com/lightningdevkit/rust-lightning/"

0 commit comments

Comments
 (0)