|
| 1 | +# 0.0.106 - 2022-04-03 |
| 2 | + |
| 3 | +## API Updates |
| 4 | + * Minimum supported rust version (MSRV) is now 1.41.1 (#1310). |
| 5 | + * Lightning feature `option_scid_alias` is now supported and may be negotiated |
| 6 | + when opening a channel with a peer. It can be configured via |
| 7 | + `ChannelHandshakeConfig::negotiate_scid_privacy` and is off by default but |
| 8 | + will be on by default in the future (#1351). |
| 9 | + * `OpenChannelRequest` now has a `channel_type` field indicating the features |
| 10 | + the channel will operate with and should be used to filter channels with |
| 11 | + undesirable features (#1351). See the Serialization Compatibility section. |
| 12 | + * `ChannelManager` supports sending and receiving short channel id aliases in |
| 13 | + the `funding_locked` message. These are used when forwarding payments and |
| 14 | + constructing invoice route hints for improved privacy. `ChannelDetails` has a |
| 15 | + `inbound_scid_alias` field and a `get_inbound_payment_scid` method to support |
| 16 | + the latter (#1311). |
| 17 | + * `DefaultRouter` and `find_route` take an additional random seed to improve |
| 18 | + privacy by adding a random CLTV expiry offset to each path's final hop. This |
| 19 | + helps obscure the intended recipient from adversarial intermediate hops |
| 20 | + (#1286). The seed is also used to randomize candidate paths during route |
| 21 | + selection (#1359). |
| 22 | + * The `lightning-block-sync` crate's `init::synchronize_listeners` method |
| 23 | + interface has been relaxed to support multithreaded environments (#1349). |
| 24 | + * `ChannelManager::create_inbound_payment_for_hash`'s documentation has been |
| 25 | + corrected to remove the one-year restriction on `invoice_expiry_delta_secs`, |
| 26 | + which is only applicable to the deprecated `create_inbound_payment_legacy` |
| 27 | + and `create_inbound_payment_for_hash_legacy` methods (#1341). |
| 28 | + * `Features` mutator methods now take `self` by reference instead of by value |
| 29 | + (#1331). |
| 30 | + * The CLTV of the last hop in a path is now included when comparing against |
| 31 | + `RouteParameters::max_total_cltv_expiry_delta` (#1358). |
| 32 | + * Invoice creation functions in `lightning-invoice` crate's `utils` module |
| 33 | + include versions that accept a description hash instead of only a description |
| 34 | + (#1361). |
| 35 | + * `RoutingMessageHandler::sync_routing_table` has been renamed `peer_connected` |
| 36 | + (#1368). |
| 37 | + * `MessageSendEvent::SendGossipTimestampFilter` has been added to indicate that |
| 38 | + a `gossip_timestamp_filter` should be sent (#1368). |
| 39 | + * `PeerManager` takes an optional `NetAddress` in `new_outbound_connection` and |
| 40 | + `new_inbound_connection`, which is used to report back the remote address to |
| 41 | + the connecting peer in the `init` message (#1326). |
| 42 | + * `ChannelManager::accept_inbound_channel` now takes a `user_channel_id`, which |
| 43 | + is used in a similar manner as in outbound channels. (#1381). |
| 44 | + * `BackgroundProcessor` now persists `NetworkGraph` on a timer and upon |
| 45 | + shutdown as part of a new `Persister` trait, which also includes |
| 46 | + `ChannelManager` persistence (#1376). |
| 47 | + * `ProbabilisticScoringParameters` now has a `base_penalty_msat` option, which |
| 48 | + default to 500 msats. It is applied at each hop to help avoid longer paths |
| 49 | + (#1375). |
| 50 | + * `ProbabilisticScoringParameters::liquidity_penalty_multiplier_msat`'s default |
| 51 | + value is now 40,000 msats instead of 10,000 msats (#1375). |
| 52 | + * The `lightning` crate has a `grind_signatures` feature used to produce |
| 53 | + signatures with low r-values for more predictable transaction weight. This |
| 54 | + feature is on by default (#1388). |
| 55 | + * `ProbabilisticScoringParameters` now has a `amount_penalty_multiplier_msat` |
| 56 | + option, which is used to further penalize large amounts (#1399). |
| 57 | + * `PhantomRouteHints`, `FixedPenaltyScorer`, and `ScoringParameters` now |
| 58 | + implement `Clone` (#1346). |
| 59 | + |
| 60 | +## Bug Fixes |
| 61 | + * Fixed a compilation error in `ProbabilisticScorer` under `--feature=no-std` |
| 62 | + (#1347). |
| 63 | + * Invoice creation functions in `lightning-invoice` crate's `utils` module |
| 64 | + filter invoice hints in order to limit the invoice size (#1325). |
| 65 | + * Fixed a bug where a `funding_locked` message was delayed by a block if the |
| 66 | + funding transaction was confirmed while offline, depending on the ordering |
| 67 | + of `Confirm::transactions_confirmed` calls when brought back online (#1363). |
| 68 | + * Fixed a bug in `NetGraphMsgHandler` where it didn't continue to receive |
| 69 | + gossip messages from peers after initial connection (#1368, #1382). |
| 70 | + * `ChannelManager::timer_tick_occurred` will now timeout a received multi-path |
| 71 | + payment (MPP) after three ticks if not received in full instead of waiting |
| 72 | + until near the HTLC timeout block(#1353). |
| 73 | + * Fixed an issue with `find_route` causing it to be overly aggressive in using |
| 74 | + MPP over channels to the same first hop (#1370). |
| 75 | + * Reduced time spent processing `channel_update` messages by checking |
| 76 | + signatures after checking if no newer messages have already been processed |
| 77 | + (#1380). |
| 78 | + * Fixed a few issues in `find_route` which caused preferring paths with a |
| 79 | + higher cost (#1398). |
| 80 | + * Fixed an issue in `ProbabilisticScorer` where a channel with not enough |
| 81 | + liquidity could still be used when retrying a failed payment if it was on a |
| 82 | + path with an overall lower cost (#1399). |
| 83 | + |
| 84 | +## Serialization Compatibility |
| 85 | + * Channels open with `option_scid_alias` negotiated will be incompatible with |
| 86 | + prior releases (#1351). This may occur in the following cases: |
| 87 | + * Outbound channels when `ChannelHandshakeConfig::negotiate_scid_privacy` is |
| 88 | + enabled. |
| 89 | + * Inbound channels when automatically accepted from an `OpenChannel` message |
| 90 | + with a `channel_type` that has `ChannelTypeFeatures::supports_scid_privacy` |
| 91 | + return true. See `UserConfig::accept_inbound_channels`. |
| 92 | + * Inbound channels when manually accepted from an `OpenChannelRequest` with a |
| 93 | + `channel_type` that has `ChannelTypeFeatures::supports_scid_privacy` return |
| 94 | + true. See `UserConfig::manually_accept_inbound_channels`. |
| 95 | + |
| 96 | +In total, this release features 43 files changed, 4052 insertions, 1274 |
| 97 | +deletions in 75 commits from 11 authors, in alphabetical order: |
| 98 | + * Devrandom |
| 99 | + * Duncan Dean |
| 100 | + * Elias Rohrer |
| 101 | + * Jeffrey Czyz |
| 102 | + * Jurvis Tan |
| 103 | + * Luiz Parreira |
| 104 | + * Matt Corallo |
| 105 | + * Omar Shamardy |
| 106 | + * Viktor Tigerström |
| 107 | + * dependabot[bot] |
| 108 | + * psycho-pirate |
| 109 | + |
| 110 | + |
1 | 111 | # 0.0.105 - 2022-02-28
|
2 | 112 |
|
3 | 113 | ## API Updates
|
|
0 commit comments