|
| 1 | +# 0.0.111 - 2022-09-09 - "Saturated with Messages" |
| 2 | + |
| 3 | +## API Updates |
| 4 | + * Support for relaying onion messages has been added via a new |
| 5 | + `OnionMessenger` struct when passed as the `OnionMessageHandler` to a |
| 6 | + `PeerManager`. Pre-encoded onion messages can also be sent and received |
| 7 | + (#1503, #1650, #1652, #1688). |
| 8 | + * Rate-limiting of outbound gossip syncs has been rewritten to utilize less |
| 9 | + buffering inside LDK. The new rate-limiting is also used for onion messages |
| 10 | + to avoid delaying other messages (#1604. #1660, #1683). |
| 11 | + * Rather than spawning a full OS thread, `lightning-background-processor` has |
| 12 | + a new `process_events_async` method which takes the place of a |
| 13 | + `BackgroundProcessor` for those using Rust's async (#1657). |
| 14 | + * `ChannelManager::get_persistable_update_future` has been added to block on |
| 15 | + a ChannelManager needing re-persistence in a Rust async environment (#1657). |
| 16 | + * The `Filter::register_output` return value has been removed, as it was |
| 17 | + very difficult to correctly implement (i.e., without blocking). Users |
| 18 | + previously using it should instead pass dependent transactions in via new |
| 19 | + `chain::Confirm::transactions_confirmed` calls (#1663). |
| 20 | + * `ChannelHandshakeConfig::their_channel_reserve_proportional_millionths` has |
| 21 | + been added to allow configuring counterparty reserve values (#1619). |
| 22 | + * `KeysInterface::ecdh` has been added as an ECDH oracle (#1503, #1658). |
| 23 | + * The `rust-bitcoin` dependency has been updated 0.29 (#1658). |
| 24 | + * The `bitcoin_hashes` dependency has been updated 0.11 (#1677). |
| 25 | + * `ChannelManager::broadcast_node_announcement` has been moved to |
| 26 | + `PeerManager` (#1699). |
| 27 | + * `channel_` and `node_announcement`s are now rebroadcast automatically to all |
| 28 | + new peers which connect (#1699). |
| 29 | + * `{Init,Node}Features` sent to peers/broadcasted are now fetched via the |
| 30 | + various `*MessageHandler` traits, rather than hard-coded (#1701, #1688). |
| 31 | + * `Event::PaymentPathFailed::rejected_by_dest` has been renamed |
| 32 | + `payment_failed_permanently` (#1702). |
| 33 | + * `Invoice` now derives the std `Hash` trait (#1575). |
| 34 | + * `{Signed,}RawInvoice::hash` have been renamed `signed_hash` (#1714). |
| 35 | + * `chain::AccessError` now derives the std `Debug` trait (#1709). |
| 36 | + * `ReadOnlyNetworkGraph::list_{channels,nodes}` have been added largely for |
| 37 | + users of downstream bindings (#1651). |
| 38 | + * `ChannelMonitor::get_counterparty_node_id` is now available (#1635). |
| 39 | + |
| 40 | +## Bug Fixes |
| 41 | + * The script compared with that returned from `chain::Access` was incorrect |
| 42 | + ~half of the time, causing spurious gossip rejection (#1666). |
| 43 | + * Pending in-flight HTLCs are now considered when calculating new routes, |
| 44 | + ensuring, e.g. MPP retries do not take known-saturated paths (#1643). |
| 45 | + * Counterparty-revoked outputs are now included in `get_claimable_balance` |
| 46 | + output via a new `Balance::CounterpartyRevokedOutputClaimable` (#1495). |
| 47 | + * Inbound HTLCs for which we do not (yet) have a preimage are now included in |
| 48 | + `get_claimable_balance` via a `Balance::MaybePreimageClaimableHTLC` (#1673). |
| 49 | + * Probes that fail prior to being sent over their first hop are correctly |
| 50 | + failed with a `Event::ProbeFailed` rather than a `PaymentPathFailed` (#1704). |
| 51 | + * Pending `Event::HTLCHandlingFailed`s are no longer lost on restart (#1700). |
| 52 | + * HTLCs that fail prior to being sent over their first hop are now marked as |
| 53 | + retryable via `!PaymentPathFailed::payment_failed_permanently` (#1702). |
| 54 | + * Dust HTLCs are now considered failed in the payment tracking logic after the |
| 55 | + commitment transaction confirms, allowing retry on restart (#1691). |
| 56 | + * On machines with buggy "monotonic" clocks, LDK will no longer panic if time |
| 57 | + goes backwards (#1692). |
| 58 | + |
| 59 | +## Backwards Compatibility |
| 60 | + * The new `current_time` argument to `PeerManager` constructors must be set to |
| 61 | + a UNIX timestamp for upgraded nodes, new nodes may use a counter (#1699). |
| 62 | + * `Balance::CounterpartyRevokedOutputClaimable` will never be generated for |
| 63 | + channels which were observed to go on-chain with LDK versions prior to |
| 64 | + 0.0.111 (#1495). |
| 65 | + * `ChannelMonitor::get_counterparty_node_id` will return `None` for all |
| 66 | + channels opened on a version of LDK prior to 0.0.110 (#1635). |
| 67 | + * Setting `their_channel_reserve_proportional_millionths` to any value other |
| 68 | + than the default will cause LDK versions prior to 0.0.104 to be unable to |
| 69 | + read the serialized `ChannelManager` (#1619). |
| 70 | + |
| 71 | +## Security |
| 72 | +0.0.111 fixes a denial-of-service vulnerability which is reachable from |
| 73 | +untrusted input in deployments accepting 0conf channels, or via a race-condition |
| 74 | +in deployments creating outbound 0conf channels. |
| 75 | + |
| 76 | + * LDK versions prior to 0.0.111 may spuriously panic when receiving a block if |
| 77 | + they are awaiting the construction of a funding transaction for a 0-conf |
| 78 | + channel (#1711). 0-conf support was added in LDK version 0.0.107. |
| 79 | + |
| 80 | +In total, this release features 84 files changed, 6306 insertions, 1960 |
| 81 | +deletions in 121 commits from 11 authors, in alphabetical order: |
| 82 | + * Arik Sosman |
| 83 | + * Devrandom |
| 84 | + * Duncan Dean |
| 85 | + * Elias Rohrer |
| 86 | + * Gursharan Singh |
| 87 | + * Matt Corallo |
| 88 | + * NicolaLS |
| 89 | + * Valentine Wallace |
| 90 | + * Viktor Tigerström |
| 91 | + * jurvis |
| 92 | + * ok300 |
| 93 | + |
| 94 | + |
1 | 95 | # 0.0.110 - 2022-07-26 - "Routing, With a Vengeance"
|
2 | 96 |
|
3 | 97 | ## API Updates
|
|
0 commit comments