|
| 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 | + |
1 | 149 | # 0.0.106 - 2022-04-03
|
2 | 150 |
|
3 | 151 | ## API Updates
|
|
0 commit comments