Skip to content

Commit 5c788a0

Browse files
authored
Merge pull request #1525 from jkczyz/2022-05-release-0.0.107
Cut 0.0.107
2 parents a551a62 + b2e635f commit 5c788a0

File tree

9 files changed

+170
-20
lines changed

9 files changed

+170
-20
lines changed

CHANGELOG.md

+148
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,151 @@
1+
# 0.0.107 - 2022-06-08
2+
3+
## API Updates
4+
* Channels larger than 16777215 sats (Wumbo!) are now supported and can be
5+
enabled for inbound channels using
6+
`ChannelHandshakeLimits::max_funding_satoshis` (#1425).
7+
* Support for feature `option_zeroconf`, allowing immediate forwarding of
8+
payments after channel opening. This is configured for outbound channels
9+
using `ChannelHandshakeLimits::trust_own_funding_0conf` whereas
10+
`ChannelManager::accept_inbound_channel_from_trusted_peer_0conf` has to be
11+
used for accepting inbound channels (#1401, #1505).
12+
* `ChannelManager::claim_funds` no longer returns a `bool` to indicate success.
13+
Instead, an `Event::PaymentClaimed` is generated if the claim was successful.
14+
Likewise, `ChannelManager::fail_htlc_backwards` no longer has a return value
15+
(#1434).
16+
* `lightning-rapid-gossip-sync` is a new crate for syncing gossip data from a
17+
server, primarily aimed at mobile devices (#1155).
18+
* `RapidGossipSync` can be passed to `BackgroundProcessor` in order to persist
19+
the `NetworkGraph` and handle `NetworkUpdate`s during event handling (#1433,
20+
#1517).
21+
* `NetGraphMsgHandler` has been renamed to `P2PGossipSync`, the `network_graph`
22+
module has been renamed to `gossip`, and `NetworkUpdate::ChannelClosed` has
23+
been renamed `NetworkUpdate::ChannelFailure` (#1159).
24+
* Added a `filtered_block_connected` method to `chain::Listen` and a default
25+
implementation of `block_connected` for those fetching filtered instead of
26+
full blocks (#1453).
27+
* The `lightning-block-sync` crate's `BlockSource` trait methods now take
28+
`&self` instead of `&mut self` (#1307).
29+
* `inbound_payment` module is now public to allow for creating invoices without
30+
a `ChannelManager` (#1384).
31+
* `lightning-block-sync`'s `init` and `poll` modules support `&dyn BlockSource`
32+
which can be determined at runtime (#1423).
33+
* `lightning-invoice` crate's `utils` now accept an expiration time (#1422,
34+
#1474).
35+
* `Event::PaymentForwarded` includes `prev_channel_id` and `next_channel_id`
36+
(#1419, #1475).
37+
* `chain::Watch::release_pending_monitor_events`' return type now associates
38+
`MonitorEvent`s with funding `OutPoints` (#1475).
39+
* `lightning-background-processor` crate's `Persister` trait has been moved to
40+
`lightning` crate's `util::persist` module, which now has a general
41+
`KVStorePersister` trait. Blanket implementations of `Persister` and
42+
`chainmonitor::Persist` are given for types implementing `KVStorePersister`.
43+
` lightning-persister`'s `FilesystemPersister` implements `KVStorePersister`
44+
(#1417).
45+
* `ChannelDetails` and `ChannelCounterparty` include fields for HTLC minimum
46+
and maximum values (#1378).
47+
* Added a `max_inbound_htlc_value_in_flight_percent_of_channel` field to
48+
`ChannelHandshakeConfig`, capping the total value of outstanding inbound
49+
HTLCs for a channel (#1444).
50+
* `ProbabilisticScorer` is parameterized by a `Logger`, which it uses to log
51+
channel liquidity updates or lack thereof (#1405).
52+
* `ChannelDetails` has an `outbound_htlc_limit_msat` field, which should be
53+
used in routing instead of `outbound_capacity_msat` (#1435).
54+
* `ProbabilisticScorer`'s channel liquidities can be logged via
55+
`debug_log_liquidity_stats` (#1460).
56+
* `BackgroundProcessor` now takes an optional `WriteableScore` which it will
57+
persist using the `Persister` trait's new `persist_scorer` method (#1416).
58+
* Upgraded to `bitcoin` crate version 0.28.1 (#1389).
59+
* `ShutdownScript::new_witness_program` now takes a `WitnessVersion` instead of
60+
a `NonZeroU8` (#1389).
61+
* Channels will no longer be automatically force closed when the counterparty
62+
is disconnected due to incompatibility (#1429).
63+
* `ChannelManager` methods for funding, accepting, and closing channels now
64+
take a `counterparty_node_id` parameter, which has also been added as a field
65+
to `Event::FundingGenerationReady` (#1479, #1485).
66+
* `InvoicePayer::new` now takes a `Retry` enum (replacing the `RetryAttempts`
67+
struct), which supports both attempt- and timeout-based retrying (#1418).
68+
* `Score::channel_penalty_msat` takes a `ChannelUsage` struct, which contains
69+
the capacity as an `EffectiveCapacity` enum and any potential in-flight HTLC
70+
value, rather than a single `u64`. Used by `ProbabilisticScorer` for more
71+
accurate penalties (#1456).
72+
* `build_route_from_hops` is a new function useful for constructing a `Route`
73+
given a specific list of public keys (#1491).
74+
* `FundingLocked` message has been renamed `ChannelReady`, and related
75+
identifiers have been renamed accordingly (#1506).
76+
* `core2::io` or `std::io` (depending on feature flags `no-std` or `std`) is
77+
exported as a `lightning::io` module (#1504).
78+
* The deprecated `Scorer` has been removed in favor or `ProbabilisticScorer`
79+
(#1512).
80+
81+
## Performance Improvements
82+
* `lightning-persister` crate's `FilesystemPersister` is faster by 15x (#1404).
83+
* Log gossip query messages at `GOSSIP` instead of `TRACE` to avoid
84+
overwhelming default logging (#1421).
85+
* `PeerManager` supports processing messages from different peers in parallel,
86+
and this is taken advantage of in gossip processing (#1023).
87+
* Greatly reduced per-channel and per-node memory usage due to upgrade of
88+
`secp256k1` crate to 0.22.1 and `bitcoin` crate to 0.28.1
89+
* Reduced per-peer memory usage in `PeerManager` (#1472).
90+
91+
## Spec Compliance
92+
* `find_route` now assumes variable-length onions by default for nodes where
93+
support for the feature is unknown (#1414).
94+
* A `warn` message is now sent when receiving a `channel_reestablish` with an
95+
old commitment transaction number rather than immediately force-closing the
96+
channel (#1430).
97+
* When a `channel_update` message is included in an onion error's `failuremsg`,
98+
its message type is now encoded. Reading such messages is also supported
99+
(#1465).
100+
101+
## Bug Fixes
102+
* Fixed a bug where crashing while persisting a `ChannelMonitorUpdate` for a
103+
part of a multi-path payment could cause loss of funds due to a partial
104+
payment claim on restart (#1434).
105+
* `BackgroundProcessor` has been fixed to improve serialization reliability on
106+
slow systems which can avoid force-closes (#1436).
107+
* `gossip_timestamp_filter` filters are now honored when sending gossip to
108+
peers (#1452).
109+
* During a reorg, only force-close a channel if its funding transaction is
110+
unconfirmed rather than as it loses confirmations (#1461).
111+
* Fixed a rare panic in `lightning-net-tokio` when fetching a peer's socket
112+
address after the connection has been closed caused by a race condition
113+
(#1449).
114+
* `find_route` will no longer return routes that would cause onion construction
115+
to fail in some cases (#1476).
116+
* `ProbabilisticScorer` uses more precision when approximating `log10` (#1406).
117+
118+
## Serialization Compatibility
119+
* All above new events/fields are ignored by prior clients. All above new
120+
events/fields are not present when reading objects serialized by prior
121+
versions of the library.
122+
* `ChannelManager` serialization is no longer compatible with versions prior to
123+
0.0.99 (#1401).
124+
* Channels with `option_zeroconf` feature enabled (not required for 0-conf
125+
channel use) will be unreadable by versions prior to 0.0.107 (#1401, #1505).
126+
127+
In total, this release features 96 files changed, 9304 insertions, 4503
128+
deletions in 153 commits from 18 authors, in alphabetical order:
129+
* Arik Sosman
130+
* Devrandom
131+
* Duncan Dean
132+
* Elias Rohrer
133+
* Jeffrey Czyz
134+
* John Cantrell
135+
* John Corser
136+
* Jurvis Tan
137+
* Justin Moon
138+
* KaFai Choi
139+
* Mateusz Faltyn
140+
* Matt Corallo
141+
* Valentine Wallace
142+
* Viktor Tigerström
143+
* Vincenzo Palazzo
144+
* atalw
145+
* dependabot[bot]
146+
* shamardy
147+
148+
1149
# 0.0.106 - 2022-04-03
2150

3151
## API Updates

README.md

+2
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,8 @@ Crates
5050
this is a simple alternative to implementing the required network stack, especially for those already using Tokio.
5151
6. [lightning-persister](./lightning-persister)
5252
Utilities to manage Rust-Lightning channel data persistence and retrieval.
53+
7. [lightning-rapid-gossip-sync](./lightning-rapid-gossip-sync)
54+
Client for rapid gossip graph syncing, aimed primarily at mobile clients.
5355

5456
About
5557
-----------

lightning-background-processor/Cargo.toml

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

1616
[dependencies]
1717
bitcoin = "0.28.1"
18-
lightning = { version = "0.0.106", path = "../lightning", features = ["std"] }
19-
lightning-rapid-gossip-sync = { version = "0.0.106", path = "../lightning-rapid-gossip-sync" }
18+
lightning = { version = "0.0.107", path = "../lightning", features = ["std"] }
19+
lightning-rapid-gossip-sync = { version = "0.0.107", path = "../lightning-rapid-gossip-sync" }
2020

2121
[dev-dependencies]
22-
lightning = { version = "0.0.106", path = "../lightning", features = ["_test_utils"] }
23-
lightning-invoice = { version = "0.14.0", path = "../lightning-invoice" }
24-
lightning-persister = { version = "0.0.106", path = "../lightning-persister" }
22+
lightning = { version = "0.0.107", path = "../lightning", features = ["_test_utils"] }
23+
lightning-invoice = { version = "0.15.0", path = "../lightning-invoice" }
24+
lightning-persister = { version = "0.0.107", path = "../lightning-persister" }

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.106"
3+
version = "0.0.107"
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.28.1"
22-
lightning = { version = "0.0.106", path = "../lightning" }
22+
lightning = { version = "0.0.107", path = "../lightning" }
2323
futures = { version = "0.3" }
2424
tokio = { version = "1.0", features = [ "io-util", "net", "time" ], optional = true }
2525
serde = { version = "1.0", features = ["derive"], 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.14.0"
4+
version = "0.15.0"
55
authors = ["Sebastian Geisler <sgeisler@wh2.tu-dresden.de>"]
66
documentation = "https://docs.rs/lightning-invoice/"
77
license = "MIT OR Apache-2.0"
@@ -20,13 +20,13 @@ std = ["bitcoin_hashes/std", "num-traits/std", "lightning/std", "bech32/std"]
2020

2121
[dependencies]
2222
bech32 = { version = "0.8", default-features = false }
23-
lightning = { version = "0.0.106", path = "../lightning", default-features = false }
23+
lightning = { version = "0.0.107", path = "../lightning", default-features = false }
2424
secp256k1 = { version = "0.22", default-features = false, features = ["recovery", "alloc"] }
2525
num-traits = { version = "0.2.8", default-features = false }
2626
bitcoin_hashes = { version = "0.10", default-features = false }
2727
hashbrown = { version = "0.11", optional = true }
2828
core2 = { version = "0.3.0", default-features = false, optional = true }
2929

3030
[dev-dependencies]
31-
lightning = { version = "0.0.106", path = "../lightning", default-features = false, features = ["_test_utils"] }
31+
lightning = { version = "0.0.107", path = "../lightning", default-features = false, features = ["_test_utils"] }
3232
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.106"
3+
version = "0.0.107"
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.28.1"
19-
lightning = { version = "0.0.106", path = "../lightning" }
19+
lightning = { version = "0.0.107", 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.106"
3+
version = "0.0.107"
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.28.1"
20-
lightning = { version = "0.0.106", path = "../lightning" }
20+
lightning = { version = "0.0.107", 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.106", path = "../lightning", features = ["_test_utils"] }
27+
lightning = { version = "0.0.107", path = "../lightning", features = ["_test_utils"] }

lightning-rapid-gossip-sync/Cargo.toml

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "lightning-rapid-gossip-sync"
3-
version = "0.0.106"
3+
version = "0.0.107"
44
authors = ["Arik Sosman <git@arik.io>"]
55
license = "MIT OR Apache-2.0"
66
repository = "https://github.com/lightningdevkit/rust-lightning"
@@ -13,8 +13,8 @@ Utility to process gossip routing data from Rapid Gossip Sync Server.
1313
_bench_unstable = []
1414

1515
[dependencies]
16-
lightning = { version = "0.0.106", path = "../lightning" }
16+
lightning = { version = "0.0.107", path = "../lightning" }
1717
bitcoin = { version = "0.28.1", default-features = false }
1818

1919
[dev-dependencies]
20-
lightning = { version = "0.0.106", path = "../lightning", features = ["_test_utils"] }
20+
lightning = { version = "0.0.107", 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.106"
3+
version = "0.0.107"
44
authors = ["Matt Corallo"]
55
license = "MIT OR Apache-2.0"
66
repository = "https://github.com/lightningdevkit/rust-lightning/"

0 commit comments

Comments
 (0)