Disable fast-fail to let CI actually run even though beta is broken
[rust-lightning] / CHANGELOG.md
1 # 0.0.99 - 2021-07-09
2
3 ## API Updates
4
5  * `lightning_block_sync::poll::Validate` is now public, allowing you to
6    implement the `lightning_block_sync::poll::Poll` trait without
7    `lightning_block_sync::poll::ChainPoller` (#956).
8  * `lightning::ln::peer_handler::PeerManager` no longer requires that no calls
9    are made to referencing the same `SocketDescriptor` after
10    `disconnect_socket` returns. This makes the API significantly less
11    deadlock-prone and simplifies `SocketDescriptor` implementations
12    significantly. The relevant changes have been made to `lightning_net_tokio`
13    and `PeerManager` documentation has been substantially rewritten (#957).
14  * `lightning::util::message_signing`'s `sign` and `verify` methods now take
15    secret and public keys by reference instead of value (#974).
16  * Substantially more information is now exposed about channels in
17    `ChannelDetails`. See documentation for more info (#984 and #988).
18  * The latest best block seen is now exposed in
19    `ChannelManager::current_best_block` and
20    `ChannelMonitor::current_best_block` (#984).
21  * Feerates charged when forwarding payments over channels is now set in
22    `ChannelConfig::fee_base_msat` when the channel is opened. For existing
23    channels, the value is set to the value provided in
24    `ChannelManagerReadArgs::default_config::channel_options` the first time the
25    `ChannelManager` is loaded in 0.0.99 (#975).
26  * We now reject HTLCs which are received to be forwarded over private channels
27    unless `UserConfig::accept_forwards_to_priv_channels` is set. Note that
28    `UserConfig` is never serialized and must be provided via
29    `ChannelManagerReadArgs::default_config` at each start (#975).
30
31 ## Bug Fixes
32
33  * We now forward gossip messages to peers instead of only relaying
34    locally-generated gossip or sending gossip messages during initial sync
35    (#948).
36  * Correctly send `channel_update` messages to direct peers on private channels
37    (#949). Without this, a private node connected to an LDK node over a private
38    channel cannot receive funds as it does not know which fees the LDK node
39    will charge.
40  * `lightning::ln::channelmanager::ChannelManager` no longer expects to be
41    persisted spuriously after we receive a `channel_update` message about any
42    channel in the routing gossip (#972).
43  * Asynchronous `ChannelMonitor` updates (using the
44    `ChannelMonitorUpdateErr::TemporaryFailure` return variant) no longer cause
45    spurious HTLC forwarding failures (#954).
46  * Transaction provided via `ChannelMonitor::transactions_confirmed`
47    after `ChannelMonitor::best_block_updated` was called for a much later
48    block now trigger all relevant actions as of the later block. Previously
49    some transaction broadcasts or other responses required an additional
50    block be provided via `ChannelMonitor::best_block_updated` (#970).
51  * We no longer panic in rare cases when an invoice contained last-hop route
52    hints which were unusable (#958).
53
54 ## Node Compatibility
55
56  * We now accept spurious `funding_locked` messages sent prior to
57    `channel_reestablish` messages after reconnect. This is a
58    [known, long-standing bug in lnd](https://github.com/lightningnetwork/lnd/issues/4006)
59    (#966).
60  * We now set the `first_blocknum` and `number_of_blocks` fields in
61    `reply_channel_range` messages to values which c-lightning versions prior to
62    0.10 accepted. This avoids spurious force-closes from such nodes (#961).
63
64 ## Serialization Compatibility
65
66  * Due to a bug discovered in 0.0.98, if a `ChannelManager` is serialized on
67    version 0.0.98 while an `Event::PaymentSent` is pending processing, the
68    `ChannelManager` will fail to deserialize both on version 0.0.98 and later
69    versions. If you have such a `ChannelManager` available, a simple patch will
70    allow it to deserialize. Please file an issue if you need assistance (#973).
71
72 # 0.0.98 - 2021-06-11
73
74 0.0.98 should be considered a release candidate to the first alpha release of
75 Rust-Lightning and the broader LDK. It represents several years of work
76 designing and fine-tuning a flexible API for integrating lightning into any
77 application. LDK should make it easy to build a lightning node or client which
78 meets specific requirements that other lightning node software cannot. As
79 lightning continues to evolve, and new use-cases for lightning develop, the API
80 of LDK will continue to change and expand. However, starting with version 0.1,
81 objects serialized with prior versions will be readable with the latest LDK.
82 While Rust-Lightning is approaching the 0.1 milestone, language bindings
83 components of LDK available at https://github.com/lightningdevkit are still of
84 varying quality. Some are also approaching an 0.1 release, while others are
85 still much more experimental. Please note that, at 0.0.98, using Rust-Lightning
86 on mainnet is *strongly* discouraged.