|
1 |
| -# 0.0.100 - WIP |
| 1 | +# 0.0.100 - 2021-08-17 |
| 2 | + |
| 3 | +## API Updates |
| 4 | + * The `lightning` crate can now be built in no_std mode, making it easy to |
| 5 | + target embedded hardware for rust users. Note that mutexes are replaced with |
| 6 | + no-ops for such builds (#1008, #1028). |
| 7 | + * LDK now supports sending and receiving "keysend" payments. This includes |
| 8 | + modifications to `lightning::util::events::Event::PaymentReceived` to |
| 9 | + indicate the type of payment (#967). |
| 10 | + * A new variant, `lightning::util::events::Event::PaymentForwarded` has been |
| 11 | + added which indicates a forwarded payment has been successfully claimed and |
| 12 | + we've received a forwarding fee (#1004). |
| 13 | + * `lightning::chain::keysinterface::KeysInterface::get_shutdown_pubkey` has |
| 14 | + been renamed to `get_shutdown_scriptpubkey`, returns a script, and is now |
| 15 | + called on channel open only if |
| 16 | + `lightning::util::config::ChannelConfig::commit_upfront_shutdown_pubkey` is |
| 17 | + set (#1019). |
| 18 | + * Closing-signed negotiation is now more configurable, with an explicit |
| 19 | + `lightning::util::config::ChannelConfig::force_close_avoidance_max_fee_satoshis` |
| 20 | + field allowing you to select the maximum amount you are willing to pay to |
| 21 | + avoid a force-closure. Further, we are now less restrictive on the fee |
| 22 | + placed on the closing transaction when we are not the party paying it. To |
| 23 | + control the feerate paid on a channel at close-time, use |
| 24 | + `ChannelManager::close_channel_with_target_feerate` instead of |
| 25 | + `close_channel` (#1011). |
| 26 | + * `lightning_background_processor::BackgroundProcessor` now stops the |
| 27 | + background thread when dropped (#1007). It is marked `#[must_use]` so that |
| 28 | + Rust users will receive a compile-time warning when it is immediately |
| 29 | + dropped after construction (#1029). |
| 30 | + * Total potential funds burn on force-close due to dust outputs is now limited |
| 31 | + to `lightning::util::config::ChannelConfig::max_dust_htlc_exposure_msat` per |
| 32 | + channel (#1009). |
| 33 | + * The interval on which |
| 34 | + `lightning::ln::peer_handler::PeerManager::timer_tick_occurred` should be |
| 35 | + called has been reduced to once every five seconds (#1035) and |
| 36 | + `lightning::ln::channelmanager::ChannelManager::timer_tick_occurred` should |
| 37 | + now be called on startup in addition to once per minute (#985). |
| 38 | + * The rust-bitcoin and bech32 dependencies have been updated to their |
| 39 | + respective latest versions (0.27 and 0.8, #1012). |
| 40 | + |
| 41 | +## Bug Fixes |
| 42 | + * Fix panic when reading invoices generated by some versions of c-lightning |
| 43 | + (#1002 and #1003). |
| 44 | + * Fix panic when attempting to validate a signed message of incorrect length |
| 45 | + (#1010). |
| 46 | + * Do not ignore the route hints in invoices when the invoice is over 250k |
| 47 | + sats (#986). |
| 48 | + * Fees are automatically updated on outbound channels to ensure commitment |
| 49 | + transactions are always broadcastable (#985). |
| 50 | + * Fixes a rare case where a `lightning::util::events::Event::SpendableOutputs` |
| 51 | + event is not generated after a counterparty commitment transaction is |
| 52 | + confirmed in a reorg when a conflicting local commitment transaction is |
| 53 | + removed in the same reorg (#1022). |
| 54 | + * Fixes a remotely-triggerable force-closure of an origin channel after an |
| 55 | + HTLC was forwarded over a next-hop channel and the next-hop channel was |
| 56 | + force-closed by our counterparty (#1025). |
| 57 | + * Fixes a rare force-closure case when sending a payment as a channel fundee |
| 58 | + when overdrawing our remaining balance. Instead the send will fail (#998). |
| 59 | + * Fixes a rare force-closure case when a payment was claimed prior to a |
| 60 | + peer disconnection or restart, and later failed (#977). |
2 | 61 |
|
3 | 62 | ## Serialization Compatibility
|
| 63 | + * Pending inbound keysend payments which have neither been failed nor claimed |
| 64 | + when serialized will result in a `ChannelManager` which is not readable on |
| 65 | + pre-0.0.100 clients (#967). |
| 66 | + * Because |
| 67 | + `lightning::chain::keysinterface::KeysInterface::get_shutdown_scriptpubkey` |
| 68 | + has been updated to return a script instead of only a `PublicKey`, |
| 69 | + `ChannelManager`s constructed with custom `KeysInterface` implementations on |
| 70 | + 0.0.100 and later versions will not be readable on previous versions. |
| 71 | + `ChannelManager`s created with 0.0.99 and prior versions will remain readable |
| 72 | + even after the a serialization roundtrip on 0.0.100, as long as no new |
| 73 | + channels are opened. Further, users using a |
| 74 | + `lightning::chain::keysinterface::KeysManager` as their `KeysInterface` will |
| 75 | + have `ChannelManager`s which are readable on prior versions as well (#1019). |
| 76 | + * `ChannelMonitorUpdate`s created by 0.0.100 and later for channels when |
| 77 | + `lightning::util::config::ChannelConfig::commit_upfront_shutdown_pubkey` is |
| 78 | + not set may not be readable by versions prior to 0.0.100 (#1019). |
4 | 79 | * HTLCs which were in the process of being claimed on-chain when a pre-0.0.100
|
5 | 80 | `ChannelMonitor` was serialized may generate `PaymentForwarded` events with
|
6 | 81 | spurious `fee_earned_msat` values. This only applies to payments which were
|
7 |
| - unresolved at the time of the upgrade. |
8 |
| - * 0.0.100 clients with pending PaymentForwarded events at serialization-time |
9 |
| - will generate serialized `ChannelManager` objects which 0.0.99 and earlier |
10 |
| - clients cannot read. The likelihood of this can be reduced by ensuring you |
11 |
| - process all pending events immediately before serialization (as is done by |
12 |
| - the `lightning-background-processor` crate). |
| 82 | + unresolved at the time of the upgrade (#1004). |
| 83 | + * 0.0.100 clients with pending `Event::PaymentForwarded` events at |
| 84 | + serialization-time will generate serialized `ChannelManager` objects which |
| 85 | + 0.0.99 and earlier clients cannot read. The likelihood of this can be reduced |
| 86 | + by ensuring you process all pending events immediately before serialization |
| 87 | + (as is done by the `lightning-background-processor` crate, #1004). |
| 88 | + |
| 89 | + |
| 90 | +In total, this release features 59 files changed, 5861 insertions, and 2082 |
| 91 | +deletions in 95 commits from 6 authors. |
13 | 92 |
|
14 | 93 |
|
15 | 94 | # 0.0.99 - 2021-07-09
|
|
0 commit comments