+# 0.0.112 - Oct 25, 2022 - "History Matters"
+
+## API Updates
+ * `Result<(), ChannelMonitorUpdateErr>` return values have been replaced with
+ a `ChannelMonitorUpdateStatus` trinary enum. This better denotes that
+ `ChannelMonitorUpdateStatus::InProgress` is not an error, but asynchronous
+ persistence of a monitor update. Note that asynchronous persistence still
+ has some edge cases and is not yet recommended for production (#1106).
+ * `ChannelMonitor` persistence failure no longer automatically broadcasts the
+ latest commitment transaction. See the
+ `ChannelMonitorUpdateStatus::PermanentFailure` docs for more info (#1106).
+ * `*Features::known` has been replaced with individual
+ `*MessageHandler::provided_*_features` methods (#1707).
+ * `OnionMessenger` now takes a `CustomOnionMessageHandler` implementation,
+ allowing you to send and receive custom onion messages (#1748).
+ * `ProbabilisticScorer` now tracks the historical distribution of liquidity
+ estimates for channels. See new `historical_*` parameters in
+ `ProbabilisticScoringParameters` for more details (#1625).
+ * `lightning-block-sync`'s `BlockSource` trait now supports BIP 157/158
+ filtering clients by returning only header data for some blocks (#1706).
+ * `lightning-invoice`'s `Router` trait now accepts an `InFlightHtlcs` to
+ ensure we do not over-use a remote channel's funds during routing (#1694).
+ Note that this was previously backported to 0.0.111 for bindings users.
+ * `NetworkGraph::remove_stale_channels` has been renamed
+ `NetworkGraph::remove_stale_channels_and_tracking` as `NetworkGraph` now
+ refuses to re-add nodes and channels that were recently removed (#1649).
+ * The `lightning-rapid-gossip-sync` crate now supports `no-std` (#1708).
+ * The default `ProbabilisticScoringParameters::liquidity_offset_half_life` has
+ been increased to six hours from one (#1754).
+ * All commitment transaction building logic for anchor outputs now assumes the
+ no-HTLC-tx-fee variant (#1685).
+ * A number of missing `Eq` implementations were added (#1763).
+
+## Bug Fixes
+ * `lightning-background-processor` now builds without error with the `futures`
+ feature (#1744).
+ * `ChannelManager::get_persistable_update_future`'s returned `Future` has been
+ corrected to not fail to be awoken in some cases (#1758).
+ * Asynchronously performing the initial `ChannelMonitor` persistence is now
+ safe (#1678).
+ * Redundantly applying rapid gossip sync updates no longer `Err`s (#1764).
+ * Nodes which inform us via payment failures that they should no longer be
+ used are now removed from the network graph. Some LND nodes spuriously
+ generate this error and may remove themselves from our graph (#1649).
+
+In total, this release features 134 files changed, 6598 insertions, 4370
+deletions in 109 commits from 13 authors, in alphabetical order:
+ * Duncan Dean
+ * Elias Rohrer
+ * Gabriel Comte
+ * Gursharan Singh
+ * Jeffrey Czyz
+ * Jurvis Tan
+ * Matt Corallo
+ * Max Fang
+ * Paul Miller
+ * Valentine Wallace
+ * Viktor Tigerström
+ * Wilmer Paulino
+ * acid-bit
+
+# 0.0.111 - Sep 12, 2022 - "Saturated with Messages"
+
+## API Updates
+ * Support for relaying onion messages has been added via a new
+ `OnionMessenger` struct when passed as the `OnionMessageHandler` to a
+ `PeerManager`. Pre-encoded onion messages can also be sent and received
+ (#1503, #1650, #1652, #1688).
+ * Rate-limiting of outbound gossip syncs has been rewritten to utilize less
+ buffering inside LDK. The new rate-limiting is also used for onion messages
+ to avoid delaying other messages (#1604. #1660, #1683).
+ * Rather than spawning a full OS thread, `lightning-background-processor` has
+ a new `process_events_async` method which takes the place of a
+ `BackgroundProcessor` for those using Rust's async (#1657).
+ * `ChannelManager::get_persistable_update_future` has been added to block on
+ a ChannelManager needing re-persistence in a Rust async environment (#1657).
+ * The `Filter::register_output` return value has been removed, as it was
+ very difficult to correctly implement (i.e., without blocking). Users
+ previously using it should instead pass dependent transactions in via
+ additional `chain::Confirm::transactions_confirmed` calls (#1663).
+ * `ChannelHandshakeConfig::their_channel_reserve_proportional_millionths` has
+ been added to allow configuring counterparty reserve values (#1619).
+ * `KeysInterface::ecdh` has been added as an ECDH oracle (#1503, #1658).
+ * The `rust-bitcoin` dependency has been updated 0.29 (#1658).
+ * The `bitcoin_hashes` dependency has been updated 0.11 (#1677).
+ * `ChannelManager::broadcast_node_announcement` has been moved to
+ `PeerManager` (#1699).
+ * `channel_` and `node_announcement`s are now rebroadcast automatically to all
+ new peers which connect (#1699).
+ * `{Init,Node}Features` sent to peers/broadcasted are now fetched via the
+ various `*MessageHandler` traits, rather than hard-coded (#1701, #1688).
+ * `Event::PaymentPathFailed::rejected_by_dest` has been renamed
+ `payment_failed_permanently` (#1702).
+ * `Invoice` now derives the std `Hash` trait (#1575).
+ * `{Signed,}RawInvoice::hash` have been renamed `signable_hash` (#1714).
+ * `chain::AccessError` now derives the std `Debug` trait (#1709).
+ * `ReadOnlyNetworkGraph::list_{channels,nodes}` have been added largely for
+ users of downstream bindings (#1651).
+ * `ChannelMonitor::get_counterparty_node_id` is now available (#1635).
+
+## Bug Fixes
+ * The script compared with that returned from `chain::Access` was incorrect
+ ~half of the time, causing spurious gossip rejection (#1666).
+ * Pending in-flight HTLCs are now considered when calculating new routes,
+ ensuring, e.g. MPP retries do not take known-saturated paths (#1643).
+ * Counterparty-revoked outputs are now included in `get_claimable_balance`
+ output via a new `Balance::CounterpartyRevokedOutputClaimable` (#1495).
+ * Inbound HTLCs for which we do not (yet) have a preimage are now included in
+ `get_claimable_balance` via a `Balance::MaybePreimageClaimableHTLC` (#1673).
+ * Probes that fail prior to being sent over their first hop are correctly
+ failed with a `Event::ProbeFailed` rather than a `PaymentPathFailed` (#1704).
+ * Pending `Event::HTLCHandlingFailed`s are no longer lost on restart (#1700).
+ * HTLCs that fail prior to being sent over their first hop are now marked as
+ retryable via `!PaymentPathFailed::payment_failed_permanently` (#1702).
+ * Dust HTLCs are now considered failed in the payment tracking logic after the
+ commitment transaction confirms, allowing retry on restart (#1691).
+ * On machines with buggy "monotonic" clocks, LDK will no longer panic if time
+ goes backwards (#1692).
+
+## Backwards Compatibility
+ * The new `current_time` argument to `PeerManager` constructors must be set to
+ a UNIX timestamp for upgraded nodes; new nodes may use a counter (#1699).
+ * `Balance::CounterpartyRevokedOutputClaimable` will never be generated for
+ channels that were observed to go on-chain with LDK versions prior to
+ 0.0.111 (#1495).
+ * `ChannelMonitor::get_counterparty_node_id` will return `None` for all
+ channels opened on a version of LDK prior to 0.0.110 (#1635).
+ * Setting `their_channel_reserve_proportional_millionths` to any value other
+ than the default will cause LDK versions prior to 0.0.104 to be unable to
+ read the serialized `ChannelManager` (#1619).
+
+## Security
+0.0.111 fixes a denial-of-service vulnerability which is reachable from
+untrusted input in deployments accepting 0conf channels, or via a race-condition
+in deployments creating outbound 0conf channels.
+
+ * LDK versions prior to 0.0.111 may spuriously panic when receiving a block if
+ they are awaiting the construction of a funding transaction for a 0-conf
+ channel (#1711). 0-conf support was added in LDK version 0.0.107.
+
+In total, this release features 84 files changed, 6306 insertions, 1960
+deletions in 121 commits from 11 authors, in alphabetical order:
+ * Arik Sosman
+ * Devrandom
+ * Duncan Dean
+ * Elias Rohrer
+ * Gursharan Singh
+ * Matt Corallo
+ * NicolaLS
+ * Valentine Wallace
+ * Viktor Tigerström
+ * jurvis
+ * ok300
+
+
# 0.0.110 - 2022-07-26 - "Routing, With a Vengeance"
## API Updates