-
Notifications
You must be signed in to change notification settings - Fork 404
Cut 0.0.107 #1525
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
Cut 0.0.107 #1525
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,151 @@ | ||
# 0.0.107 - 2022-06-08 | ||
|
||
## API Updates | ||
* Channels larger than 16777215 sats (Wumbo!) are now supported and can be | ||
enabled for inbound channels using | ||
`ChannelHandshakeLimits::max_funding_satoshis` (#1425). | ||
* Support for feature `option_zeroconf`, allowing immediate forwarding of | ||
payments after channel opening. This is configured for outbound channels | ||
using `ChannelHandshakeLimits::trust_own_funding_0conf` whereas | ||
`ChannelManager::accept_inbound_channel_from_trusted_peer_0conf` has to be | ||
used for accepting inbound channels (#1401, #1505). | ||
* `ChannelManager::claim_funds` no longer returns a `bool` to indicate success. | ||
Instead, an `Event::PaymentClaimed` is generated if the claim was successful. | ||
Likewise, `ChannelManager::fail_htlc_backwards` no longer has a return value | ||
(#1434). | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The commit message of this specific change is saying "We can revisit this decision based on user feedback, but will need to very carefully document the potential failure modes here if we do", should we mark more explicitly as waiting feedback on that change ? Not sure folks are gonna read commit messages. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I'm more inclined to keep this brief and allow users to complain if they find it confusing. |
||
* `lightning-rapid-gossip-sync` is a new crate for syncing gossip data from a | ||
server, primarily aimed at mobile devices (#1155). | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Same, would be nice to document it in the website. The |
||
* `RapidGossipSync` can be passed to `BackgroundProcessor` in order to persist | ||
the `NetworkGraph` and handle `NetworkUpdate`s during event handling (#1433, | ||
#1517). | ||
* `NetGraphMsgHandler` has been renamed to `P2PGossipSync`, the `network_graph` | ||
module has been renamed to `gossip`, and `NetworkUpdate::ChannelClosed` has | ||
been renamed `NetworkUpdate::ChannelFailure` (#1159). | ||
* Added a `filtered_block_connected` method to `chain::Listen` and a default | ||
implementation of `block_connected` for those fetching filtered instead of | ||
full blocks (#1453). | ||
* The `lightning-block-sync` crate's `BlockSource` trait methods now take | ||
`&self` instead of `&mut self` (#1307). | ||
* `inbound_payment` module is now public to allow for creating invoices without | ||
a `ChannelManager` (#1384). | ||
* `lightning-block-sync`'s `init` and `poll` modules support `&dyn BlockSource` | ||
which can be determined at runtime (#1423). | ||
* `lightning-invoice` crate's `utils` now accept an expiration time (#1422, | ||
#1474). | ||
* `Event::PaymentForwarded` includes `prev_channel_id` and `next_channel_id` | ||
(#1419, #1475). | ||
* `chain::Watch::release_pending_monitor_events`' return type now associates | ||
`MonitorEvent`s with funding `OutPoints` (#1475). | ||
* `lightning-background-processor` crate's `Persister` trait has been moved to | ||
`lightning` crate's `util::persist` module, which now has a general | ||
`KVStorePersister` trait. Blanket implementations of `Persister` and | ||
`chainmonitor::Persist` are given for types implementing `KVStorePersister`. | ||
` lightning-persister`'s `FilesystemPersister` implements `KVStorePersister` | ||
(#1417). | ||
* `ChannelDetails` and `ChannelCounterparty` include fields for HTLC minimum | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Not sure how detailed we want to be in these release notes, but here are two points that may be worth adding about #1378 and #1444:
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yea, 1444 is unrelated here - it's a bugfix to set the value correctly. The new config knob is in the next bullet. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Nice, thanks for adding the config knob as a separate bullet @jkczyz. This is now resolved after 1444 is removed from this bullet (+ the comment about the BOLT11 hints encoding below) :) There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Note that these values are not encoded in the BOLT 11 hints, it's more of a forward compat thing. Don't think it's worth mentioning anything in the invoice here. |
||
and maximum values (#1378). | ||
* Added a `max_inbound_htlc_value_in_flight_percent_of_channel` field to | ||
`ChannelHandshakeConfig`, capping the total value of outstanding inbound | ||
HTLCs for a channel (#1444). | ||
* `ProbabilisticScorer` is parameterized by a `Logger`, which it uses to log | ||
channel liquidity updates or lack thereof (#1405). | ||
* `ChannelDetails` has an `outbound_htlc_limit_msat` field, which should be | ||
used in routing instead of `outbound_capacity_msat` (#1435). | ||
* `ProbabilisticScorer`'s channel liquidities can be logged via | ||
`debug_log_liquidity_stats` (#1460). | ||
* `BackgroundProcessor` now takes an optional `WriteableScore` which it will | ||
persist using the `Persister` trait's new `persist_scorer` method (#1416). | ||
* Upgraded to `bitcoin` crate version 0.28.1 (#1389). | ||
* `ShutdownScript::new_witness_program` now takes a `WitnessVersion` instead of | ||
a `NonZeroU8` (#1389). | ||
* Channels will no longer be automatically force closed when the counterparty | ||
is disconnected due to incompatibility (#1429). | ||
* `ChannelManager` methods for funding, accepting, and closing channels now | ||
take a `counterparty_node_id` parameter, which has also been added as a field | ||
to `Event::FundingGenerationReady` (#1479, #1485). | ||
* `InvoicePayer::new` now takes a `Retry` enum (replacing the `RetryAttempts` | ||
struct), which supports both attempt- and timeout-based retrying (#1418). | ||
* `Score::channel_penalty_msat` takes a `ChannelUsage` struct, which contains | ||
the capacity as an `EffectiveCapacity` enum and any potential in-flight HTLC | ||
value, rather than a single `u64`. Used by `ProbabilisticScorer` for more | ||
accurate penalties (#1456). | ||
* `build_route_from_hops` is a new function useful for constructing a `Route` | ||
given a specific list of public keys (#1491). | ||
* `FundingLocked` message has been renamed `ChannelReady`, and related | ||
wpaulino marked this conversation as resolved.
Show resolved
Hide resolved
|
||
identifiers have been renamed accordingly (#1506). | ||
* `core2::io` or `std::io` (depending on feature flags `no-std` or `std`) is | ||
exported as a `lightning::io` module (#1504). | ||
* The deprecated `Scorer` has been removed in favor or `ProbabilisticScorer` | ||
(#1512). | ||
|
||
## Performance Improvements | ||
* `lightning-persister` crate's `FilesystemPersister` is faster by 15x (#1404). | ||
* Log gossip query messages at `GOSSIP` instead of `TRACE` to avoid | ||
overwhelming default logging (#1421). | ||
* `PeerManager` supports processing messages from different peers in parallel, | ||
and this is taken advantage of in gossip processing (#1023). | ||
* Greatly reduced per-channel and per-node memory usage due to upgrade of | ||
`secp256k1` crate to 0.22.1 and `bitcoin` crate to 0.28.1 | ||
* Reduced per-peer memory usage in `PeerManager` (#1472). | ||
|
||
## Spec Compliance | ||
* `find_route` now assumes variable-length onions by default for nodes where | ||
support for the feature is unknown (#1414). | ||
* A `warn` message is now sent when receiving a `channel_reestablish` with an | ||
old commitment transaction number rather than immediately force-closing the | ||
channel (#1430). | ||
* When a `channel_update` message is included in an onion error's `failuremsg`, | ||
its message type is now encoded. Reading such messages is also supported | ||
(#1465). | ||
|
||
## Bug Fixes | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think it misses #1454 ? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. And the sister PR #1463 There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Dropped in the fixup as per 483dd8e#r891072611 |
||
* Fixed a bug where crashing while persisting a `ChannelMonitorUpdate` for a | ||
part of a multi-path payment could cause loss of funds due to a partial | ||
payment claim on restart (#1434). | ||
* `BackgroundProcessor` has been fixed to improve serialization reliability on | ||
slow systems which can avoid force-closes (#1436). | ||
* `gossip_timestamp_filter` filters are now honored when sending gossip to | ||
peers (#1452). | ||
* During a reorg, only force-close a channel if its funding transaction is | ||
unconfirmed rather than as it loses confirmations (#1461). | ||
* Fixed a rare panic in `lightning-net-tokio` when fetching a peer's socket | ||
address after the connection has been closed caused by a race condition | ||
(#1449). | ||
* `find_route` will no longer return routes that would cause onion construction | ||
to fail in some cases (#1476). | ||
* `ProbabilisticScorer` uses more precision when approximating `log10` (#1406). | ||
|
||
## Serialization Compatibility | ||
jkczyz marked this conversation as resolved.
Show resolved
Hide resolved
|
||
* All above new events/fields are ignored by prior clients. All above new | ||
events/fields are not present when reading objects serialized by prior | ||
versions of the library. | ||
* `ChannelManager` serialization is no longer compatible with versions prior to | ||
0.0.99 (#1401). | ||
* Channels with `option_zeroconf` feature enabled (not required for 0-conf | ||
channel use) will be unreadable by versions prior to 0.0.107 (#1401, #1505). | ||
|
||
In total, this release features 96 files changed, 9304 insertions, 4503 | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Phew this was a big release. API-change-wise too. Need to be more aggressive about shipping releases more often, IMO. |
||
deletions in 153 commits from 18 authors, in alphabetical order: | ||
* Arik Sosman | ||
* Devrandom | ||
* Duncan Dean | ||
* Elias Rohrer | ||
* Jeffrey Czyz | ||
* John Cantrell | ||
* John Corser | ||
* Jurvis Tan | ||
* Justin Moon | ||
* KaFai Choi | ||
* Mateusz Faltyn | ||
* Matt Corallo | ||
* Valentine Wallace | ||
* Viktor Tigerström | ||
* Vincenzo Palazzo | ||
* atalw | ||
* dependabot[bot] | ||
* shamardy | ||
|
||
|
||
# 0.0.106 - 2022-04-03 | ||
|
||
## API Updates | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,6 @@ | ||
[package] | ||
name = "lightning-background-processor" | ||
version = "0.0.106" | ||
version = "0.0.107" | ||
authors = ["Valentine Wallace <[email protected]>"] | ||
license = "MIT OR Apache-2.0" | ||
repository = "http://github.com/lightningdevkit/rust-lightning" | ||
|
@@ -15,10 +15,10 @@ rustdoc-args = ["--cfg", "docsrs"] | |
|
||
[dependencies] | ||
bitcoin = "0.28.1" | ||
lightning = { version = "0.0.106", path = "../lightning", features = ["std"] } | ||
lightning-rapid-gossip-sync = { version = "0.0.106", path = "../lightning-rapid-gossip-sync" } | ||
lightning = { version = "0.0.107", path = "../lightning", features = ["std"] } | ||
lightning-rapid-gossip-sync = { version = "0.0.107", path = "../lightning-rapid-gossip-sync" } | ||
|
||
[dev-dependencies] | ||
lightning = { version = "0.0.106", path = "../lightning", features = ["_test_utils"] } | ||
lightning-invoice = { version = "0.14.0", path = "../lightning-invoice" } | ||
lightning-persister = { version = "0.0.106", path = "../lightning-persister" } | ||
lightning = { version = "0.0.107", path = "../lightning", features = ["_test_utils"] } | ||
lightning-invoice = { version = "0.15.0", path = "../lightning-invoice" } | ||
lightning-persister = { version = "0.0.107", path = "../lightning-persister" } |
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.14.0" | ||
version = "0.15.0" | ||
authors = ["Sebastian Geisler <[email protected]>"] | ||
documentation = "https://docs.rs/lightning-invoice/" | ||
license = "MIT OR Apache-2.0" | ||
|
@@ -20,13 +20,13 @@ std = ["bitcoin_hashes/std", "num-traits/std", "lightning/std", "bech32/std"] | |
|
||
[dependencies] | ||
bech32 = { version = "0.8", default-features = false } | ||
lightning = { version = "0.0.106", path = "../lightning", default-features = false } | ||
lightning = { version = "0.0.107", path = "../lightning", default-features = false } | ||
secp256k1 = { version = "0.22", default-features = false, features = ["recovery", "alloc"] } | ||
num-traits = { version = "0.2.8", default-features = false } | ||
bitcoin_hashes = { version = "0.10", default-features = false } | ||
hashbrown = { version = "0.11", optional = true } | ||
core2 = { version = "0.3.0", default-features = false, optional = true } | ||
|
||
[dev-dependencies] | ||
lightning = { version = "0.0.106", path = "../lightning", default-features = false, features = ["_test_utils"] } | ||
lightning = { version = "0.0.107", path = "../lightning", default-features = false, features = ["_test_utils"] } | ||
hex = "0.4" |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,6 @@ | ||
[package] | ||
name = "lightning-rapid-gossip-sync" | ||
version = "0.0.106" | ||
version = "0.0.107" | ||
authors = ["Arik Sosman <[email protected]>"] | ||
license = "MIT OR Apache-2.0" | ||
repository = "https://github.com/lightningdevkit/rust-lightning" | ||
|
@@ -13,8 +13,8 @@ Utility to process gossip routing data from Rapid Gossip Sync Server. | |
_bench_unstable = [] | ||
|
||
[dependencies] | ||
lightning = { version = "0.0.106", path = "../lightning" } | ||
lightning = { version = "0.0.107", path = "../lightning" } | ||
bitcoin = { version = "0.28.1", default-features = false } | ||
|
||
[dev-dependencies] | ||
lightning = { version = "0.0.106", path = "../lightning", features = ["_test_utils"] } | ||
lightning = { version = "0.0.107", path = "../lightning", features = ["_test_utils"] } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Would be nice to document "zero-conf" in the website, maybe in a "Supported Features" subsection.