|
| 1 | +# 0.0.107 - 2022-XX-XX |
| 2 | + |
| 3 | +## API Updates |
| 4 | + * The `lightning-block-sync` crate's `BlockSource` trait methods now take |
| 5 | + `&self` instead of `&mut self` (#1307). |
| 6 | + * `inbound_payment` module is now public to allow for creating phantom invoices |
| 7 | + without a `ChannelManager` (#1384). |
| 8 | + * `lightning-block-sync`'s `init` and `poll` modules support `&dyn BlockSource` |
| 9 | + which can be determined at runtime (#1423). |
| 10 | + * `lightning-invoice` crate's `utils` now accept an expiration time (#1422, |
| 11 | + #1474). |
| 12 | + * `find_route` now assumes variable-length onions by default (#1414). |
| 13 | + * `Event::PaymentForwarded` includes `prev_channel_id` and `next_channel_id` |
| 14 | + (#1419, #1475). |
| 15 | + * `chain::Watch::release_pending_monitor_events`' return type now associates |
| 16 | + `MonitorEvent`s with funding `OutPoints` (#1475). |
| 17 | + * `lightning-background-processor` crate's `Persister` trait has been moved to |
| 18 | + `lightning` crate's `util::persist` module, which now has a general |
| 19 | + `KVStorePersister` trait. Blanket implementations of `Persister` and |
| 20 | + `chainmonitor::Persist` are given for types implementing `KVStorePersister`. |
| 21 | + ` lightning-persister`'s `FilesystemPersister` implements `KVStorePersister` |
| 22 | + (#1417). |
| 23 | + * `ChannelDetails` and `ChannelCounterparty` include fields for HTLC minimum |
| 24 | + and maximum values (#1378, #1444). |
| 25 | + * Added a `filtered_block_connected` method to `chain::Listen` and a default |
| 26 | + implementation of `block_connected` in order to support BIP 157/158 compact |
| 27 | + block filters (#1453). |
| 28 | + * `ProabilisticScorer` is parameterized by a `Logger`, which it uses to log |
| 29 | + channel liquidity updates or lack thereof (#1405). |
| 30 | + * `ChannelDetails` has a `outbound_htlc_limit_msat` field, which should be used |
| 31 | + in routing instead of `outbound_capacity_msat` (#1435). |
| 32 | + * Wumbo channels are now supported and can be enabled for inbound channels |
| 33 | + using `ChannelHandshakeLimits::max_funding_satoshis` (#1425). |
| 34 | + * `ProabilisticScorer`'s channel liquidities can be logged via |
| 35 | + `debug_log_liquidity_stats` (#1460). |
| 36 | + * `BackgroundProcessor` now takes an optional `WriteableScore` which it will |
| 37 | + persist using the `Persister` trait's new `persist_scorer` method (#1416). |
| 38 | + * A `warn` message is now sent when receiving a `channel_reestablish` with an |
| 39 | + old commitment transaction number (#1430). |
| 40 | + * Upgraded to `bitcoin` crate version 0.28.1 (#1389). |
| 41 | + * `ShutdownScript::new_witness_program` now takes a `WitnessVersion` instead of |
| 42 | + a `NonZeroU8` (#1389). |
| 43 | + * When a `channel_update` message is included in an onion error's `failuremsg`, |
| 44 | + its message type is now encoded (#1465). |
| 45 | + * `Event::ChannelClosed::reason` will only be `ClosureReason::DisconnectedPeer` |
| 46 | + when a peer is disconnected prior to completing funding. Thus, channels will |
| 47 | + no longer be automatically force closed when the counterparty is |
| 48 | + disconnected (#1429). |
| 49 | + * `Event::FundingGenerationReady` now has a `counterparty_node_id` field, which |
| 50 | + is used to pass to `ChannelManager` methods for funding, accepting, and |
| 51 | + closing the channel (#1479, #1485). |
| 52 | + * `InvoicePayer::new` now takes a `Retry` enum (replacing the `RetryAttempts` |
| 53 | + struct), which supports both attempt- and timeout-based retrying (#1418). |
| 54 | + * `Score::channel_penalty_msat` takes a `ChannelUsage` struct, which contains |
| 55 | + the capacity as an `EffectiveCapacity` enum and any potential in-flight HTLC |
| 56 | + value, rather than a single `u64`. Used by `ProbabilisticScorer` for more |
| 57 | + accurate penalties (#1456). |
| 58 | + * `lightning-rapid-gossip-sync` is a new crate for syncing gossip data from a |
| 59 | + server, primarily aimed at mobile devices (#1155). |
| 60 | + * `build_route_from_hops` is a new function useful for constructing a route to |
| 61 | + probe (#1491). |
| 62 | + * Support for feature `option_zeroconf`, allowing immediate forwarding of |
| 63 | + payments. This is configured for outbound channels using |
| 64 | + `ChannelHandshakeLimits::trust_own_funding_0conf` whereas |
| 65 | + `ChannelManager::accept_inbound_channel_from_trusted_peer_0conf` is used for |
| 66 | + accepting inbound channels (#1401, #1505). |
| 67 | + * `ChannelManager::claim_funds` no longer returns a `bool` to indicate success. |
| 68 | + Instead, an `Event::PaymentClaimed` is generated if the claim was successful. |
| 69 | + Likewise, `ChannelManager::fail_htlc_backwards` no longer has a return value |
| 70 | + (#1434). |
| 71 | + * `FundingLocked` message has been renamed `ChannelReady`, and related |
| 72 | + identifiers have been renamed accordingly (#1506). |
| 73 | + * `core2::io` or `std::io` (depending on feature flags `no-std` or `std`) is |
| 74 | + exported as a `lightning::io` module (#1504). |
| 75 | + * The deprecated `Scorer` has been removed in favor or `ProbabilisitcScorer` |
| 76 | + (#1512). |
| 77 | + * `RapidGossipSync` can be passed to `BackgroundProcessor` in order to persist |
| 78 | + the `NetworkGraph` and handle `NetworkUpdate`s during event handling (#1433, |
| 79 | + #1517). |
| 80 | + * `NetGraphMsgHandler` has been renamed to `P2PGossipSync`, the `network_graph` |
| 81 | + module has been renamed to `gossip`, and `NetworkUpdate::ChannelClosed` has |
| 82 | + been renamed `NetworkUpdate::ChannelFailure` (#1159). |
| 83 | + |
| 84 | +## Performance Improvements |
| 85 | + * `lightning-persister` crates uses `BufWriter` for improved performance |
| 86 | + (#1404). |
| 87 | + * Log gossip query messages at `GOSSIP` instead of `TRACE` to avoid |
| 88 | + overwhelming default logging (#1421). |
| 89 | + * `PeerManager` supports processing messages from different peers in parallel |
| 90 | + (#1023). |
| 91 | + * `PeerManager` uses a single `Secp256k1` across all peers (#1472). |
| 92 | + |
| 93 | +## Bug Fixes |
| 94 | + * `ProabilisticScorer` uses more precision when approximating `log10` (#1406). |
| 95 | + * `BackgroundProcessor` process pending events before processing network |
| 96 | + messages to reduce lock contention in `ChannelManager`, which can be |
| 97 | + problematic for extremely slow machines (#1436). |
| 98 | + * Fixed an integer underflow during channel opening occurring when the channel |
| 99 | + reserves are greater than the full channel value (#1454, #1463). |
| 100 | + * `gossip_timestamp_filter` filters are now honored when sending gossip to |
| 101 | + peers (#1452). |
| 102 | + * During a reorg, only force-close a channel if its funding transaction is |
| 103 | + unconfirmed (#1461). |
| 104 | + * Fixed a panic in `lightning-net-tokio` when fetching a peer's socket address |
| 105 | + after the connection has been closed (#1449). |
| 106 | + * `find_route` will no longer return routes that would cause Onion construction |
| 107 | + to fail (#1476). |
| 108 | + * Fixed a bug where crashing while persisting a `ChannelMonitorUpdate` for a |
| 109 | + part of a multi-path payment would cause refusal to claim the funds on |
| 110 | + restart (#1434). |
| 111 | + |
| 112 | +## Serialization Compatibility |
| 113 | +* `ChannelManager` serialization is no longer compatible with versions prior to |
| 114 | + 0.0.99 (#1401). |
| 115 | + |
| 116 | +TODO: Fill in stats |
| 117 | + |
| 118 | + |
1 | 119 | # 0.0.106 - 2022-04-03
|
2 | 120 |
|
3 | 121 | ## API Updates
|
|
0 commit comments