2024-07-06 14:01:40 +08:00
|
|
|
# Release Notes
|
|
|
|
- [Bug Fixes](#bug-fixes)
|
|
|
|
- [New Features](#new-features)
|
|
|
|
- [Functional Enhancements](#functional-enhancements)
|
|
|
|
- [RPC Additions](#rpc-additions)
|
|
|
|
- [lncli Additions](#lncli-additions)
|
|
|
|
- [Improvements](#improvements)
|
|
|
|
- [Functional Updates](#functional-updates)
|
|
|
|
- [RPC Updates](#rpc-updates)
|
|
|
|
- [lncli Updates](#lncli-updates)
|
|
|
|
- [Breaking Changes](#breaking-changes)
|
|
|
|
- [Performance Improvements](#performance-improvements)
|
|
|
|
- [Technical and Architectural Updates](#technical-and-architectural-updates)
|
|
|
|
- [BOLT Spec Updates](#bolt-spec-updates)
|
|
|
|
- [Testing](#testing)
|
|
|
|
- [Database](#database)
|
|
|
|
- [Code Health](#code-health)
|
|
|
|
- [Tooling and Documentation](#tooling-and-documentation)
|
|
|
|
|
|
|
|
# Bug Fixes
|
|
|
|
|
|
|
|
* `closedchannels` now [successfully reports](https://github.com/lightningnetwork/lnd/pull/8800)
|
|
|
|
settled balances even if the delivery address is set to an address that
|
|
|
|
LND does not control.
|
|
|
|
|
|
|
|
* [SendPaymentV2](https://github.com/lightningnetwork/lnd/pull/8734) now cancels
|
|
|
|
the background payment loop if the user cancels the stream context.
|
|
|
|
|
|
|
|
* [Fixed a bug](https://github.com/lightningnetwork/lnd/pull/8822) that caused
|
|
|
|
LND to read the config only partially and continued with the startup.
|
|
|
|
|
2024-07-18 08:52:42 +02:00
|
|
|
* [Avoids duplicate wallet addresses being
|
|
|
|
created](https://github.com/lightningnetwork/lnd/pull/8921) when multiple RPC
|
|
|
|
calls are made concurrently.
|
2024-07-11 22:26:15 +02:00
|
|
|
|
|
|
|
* [Fixed a bug](https://github.com/lightningnetwork/lnd/pull/8896) that caused
|
|
|
|
LND to use a default fee rate for the batch channel opening flow.
|
2024-07-23 11:27:50 +02:00
|
|
|
|
|
|
|
* [Fixed](https://github.com/lightningnetwork/lnd/pull/8497) a case where LND
|
|
|
|
would not shut down properly when interrupted via e.g. SIGTERM. Moreover, LND
|
|
|
|
now shutsdown correctly in case one subsystem fails to startup.
|
2024-07-18 08:52:42 +02:00
|
|
|
|
2024-07-26 11:17:00 +02:00
|
|
|
* The fee limit for payments [was made
|
|
|
|
compatible](https://github.com/lightningnetwork/lnd/pull/8941) with inbound
|
|
|
|
fees.
|
2024-07-29 11:21:42 +02:00
|
|
|
|
|
|
|
* [Fixed](https://github.com/lightningnetwork/lnd/pull/8946) a case where
|
|
|
|
bumping an anchor channel closing was not possible when no HTLCs were on the
|
|
|
|
commitment when the channel was force closed.
|
2024-07-26 11:17:00 +02:00
|
|
|
|
2023-11-16 20:58:32 +08:00
|
|
|
* [Fixed](https://github.com/lightningnetwork/lnd/pull/8174) old payments that
|
|
|
|
are stuck inflight. Though the root cause is unknown, it's possible the
|
|
|
|
network result for a given HTLC attempt was not saved, which is now fixed.
|
|
|
|
Check
|
|
|
|
[here](https://github.com/lightningnetwork/lnd/pull/8174#issue-1992055103)
|
|
|
|
for the details about the analysis, and
|
|
|
|
[here](https://github.com/lightningnetwork/lnd/issues/8146) for a summary of
|
|
|
|
the issue.
|
|
|
|
|
2024-07-31 18:03:57 -07:00
|
|
|
* We'll now always send [channel updates to our remote peer for open
|
|
|
|
channels](https://github.com/lightningnetwork/lnd/pull/8963).
|
|
|
|
|
discovery: fix bug that can lead to sending invalid chan_ann msgs
Initially in lnd, we didn't store the extra TLV data that could be
dangling off of gossip messages. This was fixed initially in lnd v0.5
with this PR: https://github.com/lightningnetwork/lnd/pull/1825.
Within the PR, we incorrect set the `ExtraOpaqueData` (extra TLV blob)
of the `ChannelAnnouncement` to the value stored in `edge`, which is
actually our channel update. As 6-ish years ago we didn't yet have
anything that used the TLV gossip fields, this went unnoticed.
Fast forward to 2024, we shipped an experimental version of inbounbd
fees. This starts to store additional data in the `ExtraOpaqueData`
field, the TLV for the inbound fee. Initially, everything is valid when
the first `ChannelAnnouncement` is sent, but as soon as a user attempts
to set an inbound fee policy, we'd incorrectly swap in that new
serialized TLV for the _channel announcement_:
https://github.com/lightningnetwork/lnd/commit/841e24399c5e4b211c10f0282c7a1bff3ad8372e#diff-1eda595bbebe495bd74a6a0431c46b66cb4e8b53beb311067c010feac2665dcbR2560.
Since we're just trying to generate a new `channel_update`, we don't
also regenerate the signature for the `channel_announcement` message. As
a result, we end up storing a `channel_announcement` with an invalid sig
on disk, continuing to broadcast that to peers.
2024-08-13 19:25:04 -07:00
|
|
|
* [A bug has been fixed that could cause invalid channel
|
|
|
|
announcements](https://github.com/lightningnetwork/lnd/pull/9002) to be
|
|
|
|
generated if the inbound fee discount is used.
|
2024-08-15 12:07:53 +02:00
|
|
|
|
|
|
|
* [Fixed](https://github.com/lightningnetwork/lnd/pull/9011) a timestamp issue
|
|
|
|
in the `ReplyChannelRange` msg and introduced a check that ChanUpdates with a
|
|
|
|
timestamp too far into the future will be discarded.
|
discovery: fix bug that can lead to sending invalid chan_ann msgs
Initially in lnd, we didn't store the extra TLV data that could be
dangling off of gossip messages. This was fixed initially in lnd v0.5
with this PR: https://github.com/lightningnetwork/lnd/pull/1825.
Within the PR, we incorrect set the `ExtraOpaqueData` (extra TLV blob)
of the `ChannelAnnouncement` to the value stored in `edge`, which is
actually our channel update. As 6-ish years ago we didn't yet have
anything that used the TLV gossip fields, this went unnoticed.
Fast forward to 2024, we shipped an experimental version of inbounbd
fees. This starts to store additional data in the `ExtraOpaqueData`
field, the TLV for the inbound fee. Initially, everything is valid when
the first `ChannelAnnouncement` is sent, but as soon as a user attempts
to set an inbound fee policy, we'd incorrectly swap in that new
serialized TLV for the _channel announcement_:
https://github.com/lightningnetwork/lnd/commit/841e24399c5e4b211c10f0282c7a1bff3ad8372e#diff-1eda595bbebe495bd74a6a0431c46b66cb4e8b53beb311067c010feac2665dcbR2560.
Since we're just trying to generate a new `channel_update`, we don't
also regenerate the signature for the `channel_announcement` message. As
a result, we end up storing a `channel_announcement` with an invalid sig
on disk, continuing to broadcast that to peers.
2024-08-13 19:25:04 -07:00
|
|
|
|
2024-08-22 17:53:38 +02:00
|
|
|
* [Fixed](https://github.com/lightningnetwork/lnd/pull/9026) a bug where we
|
|
|
|
would create a blinded route with a minHTLC greater than the actual payment
|
|
|
|
amount. Moreover remove strict correlation between min_cltv_delta and the
|
|
|
|
blinded path expiry.
|
|
|
|
|
2024-07-06 14:01:40 +08:00
|
|
|
# New Features
|
|
|
|
## Functional Enhancements
|
|
|
|
## RPC Additions
|
|
|
|
|
|
|
|
* The [SendPaymentRequest](https://github.com/lightningnetwork/lnd/pull/8734)
|
|
|
|
message receives a new flag `cancelable` which indicates if the payment loop
|
|
|
|
is cancelable. The cancellation can either occur manually by cancelling the
|
|
|
|
send payment stream context, or automatically at the end of the timeout period
|
|
|
|
if the user provided `timeout_seconds`.
|
|
|
|
|
2024-07-30 17:32:11 +08:00
|
|
|
* The [SendCoinsRequest](https://github.com/lightningnetwork/lnd/pull/8955) now
|
|
|
|
takes an optional param `Outpoints`, which is a list of `*lnrpc.OutPoint`
|
|
|
|
that specifies the coins from the wallet to be spent in this RPC call. To
|
|
|
|
send selected coins to a given address with a given amount,
|
|
|
|
```go
|
|
|
|
req := &lnrpc.SendCoinsRequest{
|
|
|
|
Addr: ...,
|
|
|
|
Amount: ...,
|
|
|
|
Outpoints: []*lnrpc.OutPoint{
|
|
|
|
selected_wallet_utxo_1,
|
|
|
|
selected_wallet_utxo_2,
|
|
|
|
},
|
|
|
|
}
|
|
|
|
|
|
|
|
SendCoins(req)
|
|
|
|
```
|
|
|
|
To send selected coins to a given address without change output,
|
|
|
|
```go
|
|
|
|
req := &lnrpc.SendCoinsRequest{
|
|
|
|
Addr: ...,
|
|
|
|
SendAll: true,
|
|
|
|
Outpoints: []*lnrpc.OutPoint{
|
|
|
|
selected_wallet_utxo_1,
|
|
|
|
selected_wallet_utxo_2,
|
|
|
|
},
|
|
|
|
}
|
|
|
|
|
|
|
|
SendCoins(req)
|
|
|
|
```
|
|
|
|
|
2024-08-06 16:39:26 -07:00
|
|
|
* The `EstimateFee` call on the `walletrpc` sub-server now [also returns the
|
|
|
|
current `min_relay_fee`](https://github.com/lightningnetwork/lnd/pull/8986).
|
|
|
|
|
2024-07-06 14:01:40 +08:00
|
|
|
## lncli Additions
|
|
|
|
|
|
|
|
* [Added](https://github.com/lightningnetwork/lnd/pull/8491) the `cltv_expiry`
|
|
|
|
argument to `addinvoice` and `addholdinvoice`, allowing users to set the
|
|
|
|
`min_final_cltv_expiry_delta`.
|
|
|
|
|
|
|
|
* The [`lncli wallet estimatefeerate`](https://github.com/lightningnetwork/lnd/pull/8730)
|
|
|
|
command returns the fee rate estimate for on-chain transactions in sat/kw and
|
|
|
|
sat/vb to achieve a given confirmation target.
|
|
|
|
|
2024-07-30 17:32:11 +08:00
|
|
|
* [`sendcoins` now takes an optional utxo
|
|
|
|
flag](https://github.com/lightningnetwork/lnd/pull/8955). This allows users
|
|
|
|
to specify the coins that they want to use as inputs for the transaction. To
|
|
|
|
send selected coins to a given address with a given amount,
|
|
|
|
```sh
|
|
|
|
sendcoins --addr YOUR_ADDR --amt YOUR_AMT --utxo selected_wallet_utxo1 --utxo selected_wallet_utxo2
|
|
|
|
```
|
|
|
|
To send selected coins to a given address without change output,
|
|
|
|
```sh
|
|
|
|
sendcoins --addr YOUR_ADDR --utxo selected_wallet_utxo1 --utxo selected_wallet_utxo2 --sweepall
|
|
|
|
```
|
|
|
|
|
2024-07-06 14:01:40 +08:00
|
|
|
# Improvements
|
|
|
|
## Functional Updates
|
2024-07-19 16:12:06 +08:00
|
|
|
|
|
|
|
* A new field, `min_relay_feerate`, is [now
|
|
|
|
expected](https://github.com/lightningnetwork/lnd/pull/8891) in the response
|
|
|
|
from querying the external fee estimation URL. The new response should have
|
|
|
|
the format,
|
|
|
|
```json
|
|
|
|
{
|
|
|
|
"fee_by_block_target": {
|
|
|
|
"2": 5076,
|
|
|
|
"3": 4228,
|
|
|
|
"26": 4200
|
|
|
|
},
|
|
|
|
"min_relay_feerate": 1000
|
|
|
|
}
|
|
|
|
```
|
|
|
|
All units are `sats/kvB`. If the new field `min_relay_feerate` is not set,
|
|
|
|
the default floor feerate (1012 sats/kvB) will be used.
|
|
|
|
|
2024-07-29 14:12:37 -04:00
|
|
|
* Commitment fees are now taken into account when [calculating the fee
|
|
|
|
exposure threshold](https://github.com/lightningnetwork/lnd/pull/8824).
|
|
|
|
|
2024-07-22 10:35:14 +02:00
|
|
|
* [Allow](https://github.com/lightningnetwork/lnd/pull/8845) multiple etcd hosts
|
|
|
|
to be specified in db.etcd.host.
|
|
|
|
|
2024-08-01 03:59:55 +08:00
|
|
|
* Improved the internal [`LeaseOutput`
|
|
|
|
method](https://github.com/lightningnetwork/lnd/pull/8961) to be more
|
|
|
|
efficient, which improves the performance of related RPC calls such as
|
|
|
|
`LeaseOutput`, `SendCoins`, and PSBT funding process.
|
|
|
|
|
2024-07-06 14:01:40 +08:00
|
|
|
## RPC Updates
|
|
|
|
|
|
|
|
* [`xImportMissionControl`](https://github.com/lightningnetwork/lnd/pull/8779)
|
|
|
|
now accepts `0` failure amounts.
|
|
|
|
|
|
|
|
* [`ChanInfoRequest`](https://github.com/lightningnetwork/lnd/pull/8813)
|
|
|
|
adds support for channel points.
|
|
|
|
|
2024-07-02 12:25:18 +02:00
|
|
|
* [BuildRoute](https://github.com/lightningnetwork/lnd/pull/8886) now supports
|
|
|
|
inbound fees.
|
|
|
|
|
2024-07-06 14:01:40 +08:00
|
|
|
## lncli Updates
|
|
|
|
|
|
|
|
* [`importmc`](https://github.com/lightningnetwork/lnd/pull/8779) now accepts
|
|
|
|
`0` failure amounts.
|
|
|
|
|
|
|
|
* [`getchaninfo`](https://github.com/lightningnetwork/lnd/pull/8813) now accepts
|
|
|
|
a channel outpoint besides a channel id.
|
|
|
|
|
|
|
|
* [Fixed](https://github.com/lightningnetwork/lnd/pull/8823) how we parse the
|
|
|
|
`--amp` flag when sending a payment specifying the payment request.
|
|
|
|
|
|
|
|
## Code Health
|
2024-06-13 09:44:30 +02:00
|
|
|
|
|
|
|
* [Added](https://github.com/lightningnetwork/lnd/pull/8836) a new failure
|
|
|
|
reason `FailureReasonCanceled` to the list of payment failure reasons. It
|
|
|
|
indicates that a payment was manually cancelled by the user.
|
2024-08-05 11:38:29 +02:00
|
|
|
|
|
|
|
* [Update the version](https://github.com/lightningnetwork/lnd/pull/8974) of
|
|
|
|
[falafel](https://github.com/lightninglabs/falafel) used to generate JSON/wasm
|
|
|
|
stubs. This latest version of falafel also supports proto3 optional fields.
|
2024-06-13 09:44:30 +02:00
|
|
|
|
2024-07-06 14:01:40 +08:00
|
|
|
## Breaking Changes
|
|
|
|
## Performance Improvements
|
|
|
|
|
|
|
|
* Mission Control Store [improved performance during DB
|
|
|
|
flushing](https://github.com/lightningnetwork/lnd/pull/8549) stage.
|
|
|
|
|
|
|
|
# Technical and Architectural Updates
|
|
|
|
## BOLT Spec Updates
|
|
|
|
|
|
|
|
* Start assuming that all hops used during path-finding and route construction
|
|
|
|
[support the TLV onion
|
|
|
|
format](https://github.com/lightningnetwork/lnd/pull/8791).
|
|
|
|
|
|
|
|
* Allow channel fundee to send a [minimum confirmation depth of
|
|
|
|
0](https://github.com/lightningnetwork/lnd/pull/8796) for a non-zero-conf
|
|
|
|
channel. We will still wait for the channel to have at least one confirmation
|
|
|
|
and so the main change here is that we don't error out for such a case.
|
|
|
|
|
2024-05-14 15:39:09 +02:00
|
|
|
* [Groundwork](https://github.com/lightningnetwork/lnd/pull/8752) in preparation
|
|
|
|
for implementing route blinding receives.
|
|
|
|
|
2024-07-02 14:23:18 +02:00
|
|
|
* [Generate and send to](https://github.com/lightningnetwork/lnd/pull/8735) an
|
|
|
|
invoice with blinded paths. With this, the `--blind` flag can be used with
|
|
|
|
the `lncli addinvoice` command to instruct LND to include blinded paths in the
|
|
|
|
invoice.
|
|
|
|
|
2024-07-10 12:14:31 +02:00
|
|
|
* Add the ability to [send to use multiple blinded payment
|
|
|
|
paths](https://github.com/lightningnetwork/lnd/pull/8764) in an MP payment.
|
|
|
|
|
2024-08-05 14:39:44 +02:00
|
|
|
* [Improve route blinding invoice generation
|
|
|
|
UX](https://github.com/lightningnetwork/lnd/pull/8976) by making various
|
|
|
|
params configurable on a per-RPC basis.
|
|
|
|
|
2024-07-06 14:01:40 +08:00
|
|
|
## Testing
|
|
|
|
## Database
|
2024-06-27 22:44:15 +02:00
|
|
|
|
|
|
|
* [Migrate](https://github.com/lightningnetwork/lnd/pull/8855) incorrectly
|
|
|
|
stored invoice expiry values. This migration only affects users of native SQL
|
|
|
|
invoice database. Invoices with incorrect expiry values will be updated to
|
|
|
|
24-hour expiry, which is the default behavior in LND.
|
|
|
|
|
2024-07-12 12:30:23 +02:00
|
|
|
* [Fixed](https://github.com/lightningnetwork/lnd/pull/8854) pagination issues
|
|
|
|
in SQL invoicedb queries.
|
|
|
|
|
2024-08-01 16:54:21 +02:00
|
|
|
* [Check](https://github.com/lightningnetwork/lnd/pull/8938) leader status with
|
|
|
|
our health checker to correctly shut down LND if network partitioning occurs
|
|
|
|
towards the etcd cluster.
|
|
|
|
|
2024-07-06 14:01:40 +08:00
|
|
|
## Code Health
|
2024-07-12 12:30:23 +02:00
|
|
|
|
|
|
|
* [Move graph building and
|
|
|
|
maintaining](https://github.com/lightningnetwork/lnd/pull/8848) duties from
|
|
|
|
the `routing.ChannelRouter` to the new `graph.Builder` sub-system and also
|
|
|
|
remove the `channeldb.ChannelGraph` pointer from the `ChannelRouter`.
|
|
|
|
|
2024-07-06 14:01:40 +08:00
|
|
|
## Tooling and Documentation
|
|
|
|
|
2024-07-16 03:39:52 +08:00
|
|
|
* [`lntest.HarnessTest` no longer exposes `Miner`
|
|
|
|
instance](https://github.com/lightningnetwork/lnd/pull/8892). Instead, it's
|
|
|
|
changed into a private `miner` instance and all mining related assertions are
|
|
|
|
now only accessible via the harness.
|
|
|
|
|
2024-07-06 14:01:40 +08:00
|
|
|
# Contributors (Alphabetical Order)
|
|
|
|
|
|
|
|
* Andras Banki-Horvath
|
2024-07-26 11:17:00 +02:00
|
|
|
* bitromortac
|
2024-07-06 14:01:40 +08:00
|
|
|
* Bufo
|
|
|
|
* Elle Mouton
|
2024-07-29 14:12:37 -04:00
|
|
|
* Eugene Siegel
|
2024-07-06 14:01:40 +08:00
|
|
|
* Matheus Degiovani
|
2024-07-31 18:03:57 -07:00
|
|
|
* Olaoluwa Osuntokun
|
2024-07-06 14:01:40 +08:00
|
|
|
* Oliver Gugger
|
|
|
|
* Slyghtning
|
|
|
|
* Yong Yu
|
2024-07-11 22:26:15 +02:00
|
|
|
* Ziggie
|