|
| 1 | +# 0.0.101 - 2021-09-23 |
| 2 | + |
| 3 | +## API Updates |
| 4 | + * Custom message types are now supported directly in the `PeerManager`, |
| 5 | + allowing you to send and receive messages of any type that is not natively |
| 6 | + understood by LDK. This requires a new type bound on `PeerManager`, a |
| 7 | + `CustomMessageHandler`. `IgnoringMessageHandler` provides a simple default |
| 8 | + for this new bound for ignoring unknown messages (#1031, #1074). |
| 9 | + * Route graph updates as a result of failed payments are no longer provided as |
| 10 | + `MessageSendEvent::PaymentFailureNetworkUpdate` but instead included in a |
| 11 | + new field in the `Event::PaymentFailed` events. Generally, this means route |
| 12 | + graph updates are no longer handled as a part of the `PeerManager` but |
| 13 | + instead through the new `EventHandler` implementation for |
| 14 | + `NetGraphMsgHandler`. To make this easy, a new parameter to |
| 15 | + `lightning-background-processor::BackgroundProcessor::start` is added, which |
| 16 | + contains an `Option`al `NetGraphmsgHandler`. If provided as `Some`, relevant |
| 17 | + events will be processed by the `NetGraphMsgHandler` prior to normal event |
| 18 | + handling (#1043). |
| 19 | + * `NetworkGraph` is now, itself, thread-safe. Accordingly, most functions now |
| 20 | + take `&self` instead of `&mut self` and the graph data can be accessed |
| 21 | + through `NetworkGraph.read_only` (#1043). |
| 22 | + * The balances available on-chain to claim after a channel has been closed are |
| 23 | + now exposed via `ChannelMonitor::get_claimable_balances` and |
| 24 | + `ChainMonitor::get_claimable_balances`. The second can be used to get |
| 25 | + information about all closed channels which still have on-chain balances |
| 26 | + associated with them. See enum variants of `ln::channelmonitor::Balance` and |
| 27 | + method documentation for the above methods for more information on the types |
| 28 | + of balances exposed (#1034). |
| 29 | + * When one HTLC of a multi-path payment fails, the new field `all_paths_failed` |
| 30 | + in `Event::PaymentFailed` is set to `false`. This implies that the payment |
| 31 | + has not failed, but only one part. Payment resolution is only indicated by an |
| 32 | + `Event::PaymentSent` event or an `Event::PaymentFailed` with |
| 33 | + `all_paths_failed` set to `true`, which is also set for the last remaining |
| 34 | + part of a multi-path payment (#1053). |
| 35 | + * To better capture the context described above, `Event::PaymentFailed` has |
| 36 | + been renamed to `Event::PaymentPathFailed` (#1084). |
| 37 | + * A new event, `ChannelClosed`, is provided by `ChannelManager` when a channel |
| 38 | + is closed, including a reason and error message (if relevant, #997). |
| 39 | + * `lightning-invoice` now considers invoices with sub-millisatoshi precision |
| 40 | + to be invalid, and requires millisatoshi values during construction (thus |
| 41 | + you must call `amount_milli_satoshis` instead of `amount_pico_btc`, #1057). |
| 42 | + * The `BaseSign` interface now includes two new hooks which provide additional |
| 43 | + information about commitment transaction signatures and revocation secrets |
| 44 | + provided by our counterparty, allowing additional verification (#1039). |
| 45 | + * The `BaseSign` interface now includes additional information for cooperative |
| 46 | + close transactions, making it easier for a signer to verify requests (#1064). |
| 47 | + * `Route` has two additional helper methods to get fees and amounts (#1063). |
| 48 | + * `Txid` and `Transaction` objects can now be deserialized from responses when |
| 49 | + using the HTTP client in the `lightning-block-sync` crate (#1037, #1061). |
| 50 | + |
| 51 | +## Bug Fixes |
| 52 | + * Fix a panic when reading a lightning invoice with a non-recoverable |
| 53 | + signature. Further, restrict lightning invoice parsing to require payment |
| 54 | + secrets and better handle a few edge cases as required by BOLT 11 (#1057). |
| 55 | + * Fix a panic when receiving multiple messages (such as HTLC fulfill messages) |
| 56 | + after a call to `chain::Watch::update_channel` returned |
| 57 | + `Err(ChannelMonitorUpdateErr::TemporaryFailure)` with no |
| 58 | + `ChannelManager::channel_monitor_updated` call in between (#1066). |
| 59 | + * For multi-path payments, `Event::PaymentSent` is no longer generated |
| 60 | + multiple times, once for each independent part (#1053). |
| 61 | + * Multi-hop route hints in invoices are now considered in the default router |
| 62 | + provided via `get_route` (#1040). |
| 63 | + * The time peers have to respond to pings has been increased when building |
| 64 | + with debug assertions enabled. This avoids peer disconnections on slow hosts |
| 65 | + when running in debug mode (#1051). |
| 66 | + * The timeout for the first byte of a response for requests from the |
| 67 | + `lightning-block-sync` crate has been increased to 300 seconds to better |
| 68 | + handle the long hangs in Bitcoin Core when it syncs to disk (#1090). |
| 69 | + |
| 70 | +## Serialization Compatibility |
| 71 | + * Due to a bug in 0.0.100, `Event`s written by 0.0.101 which are of a type not |
| 72 | + understood by 0.0.100 may lead to `Err(DecodeError::InvalidValue)` or corrupt |
| 73 | + deserialized objects in 0.100. Such `Event`s will lead to an |
| 74 | + `Err(DecodeError::InvalidValue)` in versions prior to 0.0.100. The only such |
| 75 | + new event written by 0.0.101 is `Event::ChannelClosed` (#1087). |
| 76 | + * Payments that were initiated in versions prior to 0.0.101 may still |
| 77 | + generate duplicate `PaymentSent` `Event`s or may have spurious values for |
| 78 | + `Event::PaymentPathFailed::all_paths_failed` (#1053). |
| 79 | + * The return values of `ChannelMonitor::get_claimable_balances` (and, thus, |
| 80 | + `ChainMonitor::get_claimable_balances`) may be spurious for channels where |
| 81 | + the spend of the funding transaction appeared on chain while running a |
| 82 | + version prior to 0.0.101. `Balance` information should only be relied upon |
| 83 | + for channels that were closed while running 0.0.101+ (#1034). |
| 84 | + * Payments failed while running versions prior to 0.0.101 will never have a |
| 85 | + `Some` for the `network_update` field (#1043). |
| 86 | + |
| 87 | +In total, this release features 67 files changed, 4980 insertions, 1888 |
| 88 | +deletions in 89 commits from 12 authors, in alphabetical order: |
| 89 | + * Antoine Riard |
| 90 | + * Devrandom |
| 91 | + * Galder Zamarreño |
| 92 | + * Giles Cope |
| 93 | + * Jeffrey Czyz |
| 94 | + * Joseph Goulden |
| 95 | + * Matt Corallo |
| 96 | + * Sergi Delgado Segura |
| 97 | + * Tibo-lg |
| 98 | + * Valentine Wallace |
| 99 | + * abhik-99 |
| 100 | + * vss96 |
| 101 | + |
| 102 | + |
1 | 103 | # 0.0.100 - 2021-08-17
|
2 | 104 |
|
3 | 105 | ## API Updates
|
|
0 commit comments