2023-08-22 09:55:41 -07:00
|
|
|
# Release Notes
|
2022-10-11 09:18:56 +02:00
|
|
|
- [Release Notes](#release-notes)
|
2023-08-22 09:55:41 -07:00
|
|
|
- [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)
|
2022-10-11 09:18:56 +02:00
|
|
|
- [Tlv](#tlv)
|
|
|
|
- [Misc](#misc)
|
|
|
|
- [Logging](#logging)
|
2023-08-22 09:55:41 -07:00
|
|
|
- [RPC Updates](#rpc-updates)
|
|
|
|
- [lncli Updates](#lncli-updates)
|
2023-10-10 13:21:11 -06:00
|
|
|
- [Code Health](#code-health)
|
2023-08-22 09:55:41 -07:00
|
|
|
- [Breaking Changes](#breaking-changes)
|
|
|
|
- [Performance Improvements](#performance-improvements)
|
2023-10-10 13:21:11 -06:00
|
|
|
- [Technical and Architectural Updates](#technical-and-architectural-updates)
|
|
|
|
- [BOLT Spec Updates](#bolt-spec-updates)
|
|
|
|
- [Testing](#testing)
|
|
|
|
- [Database](#database)
|
|
|
|
- [Code Health](#code-health-1)
|
|
|
|
- [Tooling and Documentation](#tooling-and-documentation)
|
|
|
|
- [Contributors (Alphabetical Order)](#contributors-alphabetical-order)
|
2023-08-22 09:55:41 -07:00
|
|
|
|
|
|
|
# Bug Fixes
|
2023-11-30 00:28:15 +01:00
|
|
|
* [Fix a bug](https://github.com/lightningnetwork/lnd/pull/8097) where
|
|
|
|
`sendcoins` command with `--sweepall` flag would not show the correct amount.
|
2023-08-22 09:55:41 -07:00
|
|
|
|
2023-08-24 18:39:38 +08:00
|
|
|
* [Fixed a potential case](https://github.com/lightningnetwork/lnd/pull/7824)
|
|
|
|
that when sweeping inputs with locktime, an unexpected lower fee rate is
|
|
|
|
applied.
|
|
|
|
|
2024-03-20 08:36:12 +01:00
|
|
|
* LND will now [enforce pong
|
|
|
|
responses](https://github.com/lightningnetwork/lnd/pull/7828) from its peers.
|
2023-07-18 17:48:26 -06:00
|
|
|
|
2023-10-13 16:53:25 +08:00
|
|
|
* [Fixed a possible unintended RBF
|
|
|
|
attempt](https://github.com/lightningnetwork/lnd/pull/8091) when sweeping new
|
|
|
|
inputs with retried ones.
|
|
|
|
|
2023-10-30 14:24:46 +08:00
|
|
|
* [Fixed](https://github.com/lightningnetwork/lnd/pull/7811) a case where `lnd`
|
|
|
|
might panic due to empty witness data found in a transaction. More details
|
|
|
|
can be found [here](https://github.com/bitcoin/bitcoin/issues/28730).
|
|
|
|
|
2023-03-09 19:25:41 +08:00
|
|
|
* [Fixed a case](https://github.com/lightningnetwork/lnd/pull/7503) where it's
|
|
|
|
possible a failed payment might be stuck in pending.
|
2023-11-13 12:34:21 +02:00
|
|
|
|
|
|
|
* [Ensure that a valid SCID](https://github.com/lightningnetwork/lnd/pull/8171)
|
|
|
|
is used when marking a zombie edge as live.
|
2023-07-01 23:28:45 +02:00
|
|
|
|
|
|
|
* [Remove sweep transactions of the
|
|
|
|
same exclusive group](https://github.com/lightningnetwork/lnd/pull/7800).
|
|
|
|
When using neutrino as a backend unconfirmed transactions have to be
|
|
|
|
removed from the wallet when a conflicting tx is confirmed. For other backends
|
2024-01-12 10:19:33 +02:00
|
|
|
these unconfirmed transactions are already removed. In addition, a new
|
2024-03-20 08:36:12 +01:00
|
|
|
`walletrpc` endpoint `RemoveTransaction` is introduced which let one easily
|
2023-07-01 23:28:45 +02:00
|
|
|
remove unconfirmed transaction manually.
|
2023-11-05 11:34:19 +01:00
|
|
|
|
|
|
|
* [Fixed](https://github.com/lightningnetwork/lnd/pull/8096) a case where `lnd`
|
2024-03-20 08:36:12 +01:00
|
|
|
might dip below its channel reserve when HTLCs are added concurrently. A
|
2023-11-05 11:34:19 +01:00
|
|
|
fee buffer (additional balance) is now always kept on the local side ONLY
|
2023-11-06 12:13:48 +01:00
|
|
|
if the channel was opened locally. This is in accordance with the BOLT 02
|
2023-11-05 11:34:19 +01:00
|
|
|
specification and protects against sharp fee changes because there is always
|
2024-03-20 08:36:12 +01:00
|
|
|
this buffer which can be used to increase the commitment fee, and it also
|
|
|
|
protects against the case where HTLCs are added asynchronously resulting in
|
2023-11-05 11:34:19 +01:00
|
|
|
stuck channels.
|
2024-01-12 10:19:33 +02:00
|
|
|
|
|
|
|
* [Fixed](https://github.com/lightningnetwork/lnd/pull/8377) a watchtower client
|
|
|
|
test flake that prevented new tasks from overflowing to disk.
|
2023-03-09 19:25:41 +08:00
|
|
|
|
2023-11-28 13:43:42 +02:00
|
|
|
* [Properly handle un-acked updates for exhausted watchtower
|
2024-03-20 08:36:12 +01:00
|
|
|
sessions](https://github.com/lightningnetwork/lnd/pull/8233).
|
2023-11-28 13:43:42 +02:00
|
|
|
|
2024-03-20 08:36:12 +01:00
|
|
|
* [Allow `shutdown`s while HTLCs are
|
|
|
|
in-flight](https://github.com/lightningnetwork/lnd/pull/8167).
|
2024-01-08 18:07:52 -08:00
|
|
|
This change fixes an issue where we would force-close channels when receiving
|
|
|
|
a `shutdown` message if there were currently HTLCs on the channel. After this
|
|
|
|
change, the shutdown procedure should be compliant with BOLT2 requirements.
|
|
|
|
|
2024-01-31 14:01:11 +02:00
|
|
|
* If HTLCs are in-flight at the same time that a `shutdown` is sent and then
|
|
|
|
a re-connect happens before the coop-close is completed we now [ensure that
|
|
|
|
we re-init the `shutdown`
|
2024-03-20 08:36:12 +01:00
|
|
|
exchange](https://github.com/lightningnetwork/lnd/pull/8464).
|
2024-01-31 14:01:11 +02:00
|
|
|
|
2024-03-20 08:36:12 +01:00
|
|
|
* The AMP struct in payment hops will [now be
|
|
|
|
populated](https://github.com/lightningnetwork/lnd/pull/7976) when the AMP TLV
|
|
|
|
is set.
|
2023-09-11 22:05:51 -04:00
|
|
|
|
2024-01-25 21:00:47 +00:00
|
|
|
* [Add Taproot witness types
|
2024-03-20 08:36:12 +01:00
|
|
|
to rpc](https://github.com/lightningnetwork/lnd/pull/8431).
|
2023-11-03 10:04:59 +01:00
|
|
|
|
|
|
|
* [Fixed](https://github.com/lightningnetwork/lnd/pull/7852) the payload size
|
|
|
|
calculation in our pathfinder because blinded hops introduced new tlv records.
|
2024-01-25 21:00:47 +00:00
|
|
|
|
2024-01-26 10:29:25 +08:00
|
|
|
* [Fixed](https://github.com/lightningnetwork/lnd/pull/8432) a timestamp
|
|
|
|
precision issue when querying payments and invoices using the start and end
|
|
|
|
date filters.
|
|
|
|
|
2024-02-29 15:24:21 -08:00
|
|
|
* [Fixed](https://github.com/lightningnetwork/lnd/pull/8496) an issue where
|
|
|
|
`locked_balance` is not updated in `WalletBalanceResponse` when outputs are
|
|
|
|
reserved for `OpenChannel` by using non-volatile leases instead of volatile
|
|
|
|
locks.
|
2024-03-20 08:36:12 +01:00
|
|
|
|
2023-11-06 12:13:48 +01:00
|
|
|
* [Fixed](https://github.com/lightningnetwork/lnd/pull/7805) a case where `lnd`
|
|
|
|
might propose a low fee rate for the channel (when initiator) due to the
|
|
|
|
mempool not having enough data yet or the channel might be drained locally
|
|
|
|
which with the default fee allocation in place will eventually lead to the
|
2024-03-20 08:36:12 +01:00
|
|
|
downsizing to the fee floor (1 sat/vByte) in the worst case.
|
2024-02-29 15:24:21 -08:00
|
|
|
|
2024-04-29 13:55:22 +02:00
|
|
|
* [Removed](https://github.com/lightningnetwork/lnd/pull/8577) some unreachable
|
|
|
|
code.
|
2024-03-23 19:02:23 +08:00
|
|
|
|
2024-04-08 11:06:53 +02:00
|
|
|
* [Fixed](https://github.com/lightningnetwork/lnd/pull/8609) a function
|
|
|
|
call where arguments were swapped.
|
|
|
|
|
|
|
|
* [Addresses derived from imported watch-only accounts now correctly include
|
|
|
|
their master key's
|
|
|
|
fingerprint](https://github.com/lightningnetwork/lnd/pull/8630).
|
2024-04-01 20:05:28 +01:00
|
|
|
|
2024-04-18 18:13:02 +02:00
|
|
|
* [Fixed a bug in `btcd` that caused an incompatibility with
|
|
|
|
`bitcoind v27.0`](https://github.com/lightningnetwork/lnd/pull/8573).
|
2024-03-30 17:05:09 +00:00
|
|
|
|
2024-04-29 13:55:22 +02:00
|
|
|
* [Fixed](https://github.com/lightningnetwork/lnd/pull/8545) UTXO selection
|
2024-03-30 17:05:09 +00:00
|
|
|
for the internal channel funding flow (Single and Batch Funding Flow). Now
|
2024-04-29 13:55:22 +02:00
|
|
|
UTXOs which are unconfirmed and originated from the sweeper subsystem are not
|
2024-03-30 17:05:09 +00:00
|
|
|
selected because they bear the risk of being replaced (BIP 125 RBF).
|
2024-04-04 01:13:53 +01:00
|
|
|
|
|
|
|
* [Fixed](https://github.com/lightningnetwork/lnd/pull/8621) the behaviour of
|
2024-04-29 13:55:22 +02:00
|
|
|
neutrino LND nodes which would lose sync in case they had very unstable
|
2024-04-04 01:13:53 +01:00
|
|
|
peer connection.
|
2024-04-24 16:51:34 +01:00
|
|
|
|
2023-08-22 09:55:41 -07:00
|
|
|
# New Features
|
|
|
|
## Functional Enhancements
|
2023-07-12 21:44:01 +08:00
|
|
|
|
2022-10-11 09:18:56 +02:00
|
|
|
* Experimental support for [inbound routing
|
|
|
|
fees](https://github.com/lightningnetwork/lnd/pull/6703) is added. This allows
|
|
|
|
node operators to require senders to pay an inbound fee for forwards and
|
|
|
|
payments. It is recommended to only use negative fees (an inbound "discount")
|
|
|
|
initially to keep the channels open for senders that do not recognize inbound
|
2024-04-06 18:45:04 +02:00
|
|
|
fees.
|
|
|
|
|
|
|
|
[Send support](https://github.com/lightningnetwork/lnd/pull/6934) is
|
2022-07-05 15:01:18 +02:00
|
|
|
implemented as well.
|
2022-10-11 09:18:56 +02:00
|
|
|
|
2024-04-06 18:45:04 +02:00
|
|
|
[Positive inbound fees](https://github.com/lightningnetwork/lnd/pull/8627)
|
|
|
|
can be enabled with the option `accept-positive-inbound-fees`.
|
|
|
|
|
2023-07-12 21:44:01 +08:00
|
|
|
* A new config value,
|
2024-04-29 13:55:22 +02:00
|
|
|
[`sweeper.maxfeerate`](https://github.com/lightningnetwork/lnd/pull/7823), is
|
2024-03-20 08:36:12 +01:00
|
|
|
added so users can specify the max allowed fee rate when sweeping on-chain
|
2024-04-29 13:55:22 +02:00
|
|
|
funds. The default value is 1000 sat/vB. Setting this value below 100 sat/vB
|
2023-07-12 21:44:01 +08:00
|
|
|
is not allowed, as low fee rate can cause transactions not confirming in
|
|
|
|
time, which could result in fund loss.
|
2024-03-20 08:36:12 +01:00
|
|
|
Please note that the actual fee rate to be used is determined by the fee
|
2024-04-29 13:55:22 +02:00
|
|
|
estimator used (for instance `bitcoind`), and this value is a cap on the max
|
2023-07-12 21:44:01 +08:00
|
|
|
allowed value. So it's expected that this cap is rarely hit unless there's
|
|
|
|
mempool congestion.
|
2024-03-20 08:36:12 +01:00
|
|
|
|
2024-04-03 20:30:00 +02:00
|
|
|
* Support for [pathfinding](https://github.com/lightningnetwork/lnd/pull/7267)
|
2023-08-28 12:36:25 +02:00
|
|
|
and payment to blinded paths has been added via the `QueryRoutes` (and
|
2024-03-20 08:36:12 +01:00
|
|
|
`SendToRouteV2`) APIs. This functionality is surfaced in `lncli queryroutes`
|
2023-10-13 15:31:02 -04:00
|
|
|
where the required flags are tagged with `(blinded paths)`. Updates to mission
|
2024-03-20 08:36:12 +01:00
|
|
|
control to [handle pathfinding
|
|
|
|
errors](https://github.com/lightningnetwork/lnd/pull/8095) for blinded paths
|
|
|
|
are also included.
|
|
|
|
|
2023-10-10 13:21:11 -06:00
|
|
|
* A new config value,
|
2023-08-29 09:22:42 +02:00
|
|
|
[http-header-timeout](https://github.com/lightningnetwork/lnd/pull/7715), is
|
|
|
|
added so users can specify the amount of time the http server will wait for a
|
|
|
|
request to complete before closing the connection. The default value is 5
|
|
|
|
seconds.
|
|
|
|
|
2024-03-20 08:36:12 +01:00
|
|
|
* Update [watchtowers to be Taproot
|
|
|
|
ready](https://github.com/lightningnetwork/lnd/pull/7733).
|
2023-07-12 21:44:01 +08:00
|
|
|
|
2023-11-14 20:37:23 +08:00
|
|
|
* [`routerrpc.usestatusinitiated` is
|
|
|
|
introduced](https://github.com/lightningnetwork/lnd/pull/8177) to signal that
|
|
|
|
the new payment status `Payment_INITIATED` should be used for payment-related
|
|
|
|
RPCs. It's recommended to use it to provide granular controls over payments.
|
|
|
|
|
2023-11-16 15:07:29 -06:00
|
|
|
* A [helper command (`lncli encryptdebugpackage`) for collecting and encrypting
|
|
|
|
useful debug information](https://github.com/lightningnetwork/lnd/pull/8188)
|
|
|
|
was added. This allows a user to collect the most relevant information about
|
|
|
|
their node with a single command and securely encrypt it to the public key of
|
|
|
|
a developer or support person. That way the person supporting the user with
|
|
|
|
their issue has an eas way to get all the information they usually require
|
|
|
|
without the user needing to publicly give away a lot of privacy-sensitive
|
|
|
|
data.
|
|
|
|
|
2024-01-05 17:02:12 +08:00
|
|
|
* When publishing transactions in `lnd`, all the transactions will now go
|
|
|
|
through [mempool acceptance
|
|
|
|
check](https://github.com/lightningnetwork/lnd/pull/8345) before being
|
|
|
|
broadcast. This means when a transaction has failed the `testmempoolaccept`
|
2024-03-20 08:36:12 +01:00
|
|
|
check by `bitcoind` or `btcd`, the broadcast won't be attempted. This check
|
|
|
|
will be performed if the version of the chain backend supports it - for
|
|
|
|
`bitcoind` it's `v22.0.0` and above, for `btcd` it's `v0.24.1` and above.
|
|
|
|
Otherwise, the check will be
|
|
|
|
[skipped](https://github.com/lightningnetwork/lnd/pull/8505).
|
2024-01-05 17:02:12 +08:00
|
|
|
|
2024-02-06 12:26:03 +01:00
|
|
|
* The `coin-selection-strategy` config option [now also applies to channel
|
|
|
|
funding operations and the new `PsbtCoinSelect` option of the `FundPsbt`
|
|
|
|
RPC](https://github.com/lightningnetwork/lnd/pull/8378).
|
|
|
|
|
2024-03-20 08:36:12 +01:00
|
|
|
* [Environment variables can now be used in
|
|
|
|
`lnd.conf`](https://github.com/lightningnetwork/lnd/pull/8310)
|
|
|
|
for the `rpcuser` and `rpcpass` fields to better protect the secrets.
|
2024-03-11 13:10:56 +02:00
|
|
|
|
2024-04-29 13:55:22 +02:00
|
|
|
* When computing a minimum fee for transaction construction, `lnd` [now takes
|
|
|
|
its bitcoin peers' `feefilter` values into
|
|
|
|
account](https://github.com/lightningnetwork/lnd/pull/8418).
|
2024-03-01 17:33:21 -05:00
|
|
|
|
2024-04-23 09:49:04 +02:00
|
|
|
* Web fee estimator settings have been moved into a new `fee` config group.
|
|
|
|
A new `fee.url` option has been added within this group that replaces the old
|
|
|
|
`feeurl` option, which is now deprecated. Additionally, [two new config values,
|
|
|
|
fee.min-update-timeout and fee.max-update-timeout](https://github.com/lightningnetwork/lnd/pull/8484)
|
|
|
|
are added to allow users to specify the minimum and maximum time between fee
|
|
|
|
updates from the web fee estimator. The default values are 5 minutes and 20
|
|
|
|
minutes respectively. These values are used to prevent the fee estimator from
|
|
|
|
being queried too frequently. This replaces previously hardcoded values that
|
|
|
|
were set to the same values as the new defaults. The previously deprecated
|
|
|
|
`neutrino.feeurl` option has been removed.
|
|
|
|
|
2024-02-14 09:13:56 -05:00
|
|
|
* [Preparatory work](https://github.com/lightningnetwork/lnd/pull/8159) for
|
2024-02-14 09:21:56 -05:00
|
|
|
forwarding of blinded routes was added, along with [support](https://github.com/lightningnetwork/lnd/pull/8160)
|
2024-02-20 19:43:56 -05:00
|
|
|
for forwarding blinded payments and [error handling](https://github.com/lightningnetwork/lnd/pull/8485).
|
|
|
|
With this change, LND is now eligible to be selected as part of a blinded
|
|
|
|
route and can forward payments on behalf of nodes that have support for
|
|
|
|
receiving to blinded paths. This upgrade provides a meaningful improvement
|
|
|
|
to the anonymity set and usability of blinded paths in the Lightning Network.
|
2024-02-14 09:13:56 -05:00
|
|
|
|
2024-03-17 13:56:27 +08:00
|
|
|
* Introduced [fee bumper](https://github.com/lightningnetwork/lnd/pull/8424) to
|
2024-04-23 23:19:41 +08:00
|
|
|
handle bumping the fees of sweeping transactions properly. A
|
|
|
|
[README.md](https://github.com/lightningnetwork/lnd/pull/8674) is added to
|
|
|
|
explain this new approach.
|
2024-03-17 13:56:27 +08:00
|
|
|
|
2023-08-22 09:55:41 -07:00
|
|
|
## RPC Additions
|
2023-10-20 09:18:39 +08:00
|
|
|
|
|
|
|
* [Deprecated](https://github.com/lightningnetwork/lnd/pull/7175)
|
|
|
|
`StatusUnknown` from the payment's rpc response in its status and added a new
|
|
|
|
status, `StatusInitiated`, to explicitly report its current state. Before
|
|
|
|
running this new version, please make sure to upgrade your client application
|
|
|
|
to include this new status so it can understand the RPC response properly.
|
2023-10-30 22:53:45 +01:00
|
|
|
|
2024-03-20 08:36:12 +01:00
|
|
|
* Adds a new RPC endpoint `GetTransaction` to the `walletrpc` sub-server to
|
|
|
|
[fetch transaction details](https://github.com/lightningnetwork/lnd/pull/7654).
|
2023-10-20 09:18:39 +08:00
|
|
|
|
2023-11-16 15:07:29 -06:00
|
|
|
* [The new `GetDebugInfo` RPC method was added that returns the full runtime
|
|
|
|
configuration of the node as well as the complete log
|
|
|
|
file](https://github.com/lightningnetwork/lnd/pull/8188). The corresponding
|
|
|
|
`lncli getdebuginfo` command was also added.
|
|
|
|
|
2024-01-08 18:07:52 -08:00
|
|
|
* Add a [new flag](https://github.com/lightningnetwork/lnd/pull/8167) to the
|
|
|
|
`CloseChannel` RPC method that instructs the client to not wait for the
|
|
|
|
closing transaction to be negotiated. This should be used if you don't care
|
2024-03-20 08:36:12 +01:00
|
|
|
about the TXID and don't want the calling code to block while the channel
|
2024-01-08 18:07:52 -08:00
|
|
|
drains the active HTLCs.
|
|
|
|
|
2023-11-30 12:17:08 +02:00
|
|
|
* [New watchtower client DeactivateTower and
|
|
|
|
TerminateSession](https://github.com/lightningnetwork/lnd/pull/8239) commands
|
|
|
|
have been added. The DeactivateTower command can be used to mark a tower as
|
|
|
|
inactive so that its sessions are not loaded on startup and so that the tower
|
|
|
|
is not considered for session negotiation. TerminateSession can be used to
|
|
|
|
mark a specific session as terminal so that that specific is never used again.
|
|
|
|
|
2024-02-06 12:26:03 +01:00
|
|
|
* [The `FundPsbt` RPC method now has a third option for specifying a
|
|
|
|
template](https://github.com/lightningnetwork/lnd/pull/8378) to fund. This
|
|
|
|
new option will instruct the wallet to perform coin selection even if some
|
|
|
|
inputs are already specified in the template (which wasn't the case with
|
|
|
|
the previous options). Also, users have the option to specify whether a new
|
|
|
|
change output should be added or an existing output should be used for the
|
|
|
|
change. And the fee estimation is correct even if no change output is
|
|
|
|
required.
|
|
|
|
|
2023-08-22 09:55:41 -07:00
|
|
|
## lncli Additions
|
|
|
|
|
2024-01-18 20:24:19 +08:00
|
|
|
* Deprecate `bumpclosefee` for `bumpforceclosefee` to accommodate for the fact
|
2024-01-07 00:10:29 +01:00
|
|
|
that only force closing transactions can be bumped to avoid confusion.
|
2024-04-29 13:55:22 +02:00
|
|
|
Moreover, allow to specify a max fee rate range when coop closing a channel.
|
2024-01-07 00:10:29 +01:00
|
|
|
[Deprecate bumpclosefee for bumpforceclosefee and add `max_fee_rate` option
|
|
|
|
to `closechannel` cmd](https://github.com/lightningnetwork/lnd/pull/8350).
|
|
|
|
|
2024-03-06 17:37:25 +01:00
|
|
|
* The [`closeallchannels` command now asks for confirmation before closing
|
|
|
|
all channels](https://github.com/lightningnetwork/lnd/pull/8526).
|
|
|
|
|
2024-03-09 23:52:19 +02:00
|
|
|
* [Man pages](https://github.com/lightningnetwork/lnd/pull/8525) Generate man
|
|
|
|
pages automatically using `lncli generatemanpage` command for both `lncli`
|
2024-05-08 09:25:19 +02:00
|
|
|
and `lnd` commands when running
|
|
|
|
[`make install-all`](https://github.com/lightningnetwork/lnd/pull/8739) in
|
|
|
|
the Makefile.
|
2024-03-09 23:52:19 +02:00
|
|
|
|
2023-08-22 09:55:41 -07:00
|
|
|
# Improvements
|
|
|
|
## Functional Updates
|
2023-10-05 06:13:29 +01:00
|
|
|
### Tlv
|
2024-03-20 08:36:12 +01:00
|
|
|
|
2023-10-05 06:13:29 +01:00
|
|
|
* [Bool was added](https://github.com/lightningnetwork/lnd/pull/8057) to the
|
|
|
|
primitive type of the tlv package.
|
|
|
|
|
2023-11-08 09:48:36 +01:00
|
|
|
## Misc
|
2024-03-20 08:36:12 +01:00
|
|
|
|
2023-12-12 09:47:24 -05:00
|
|
|
* [Added](https://github.com/lightningnetwork/lnd/pull/8142) full validation
|
|
|
|
for blinded path payloads to allow fuzzing before LND fully supports
|
|
|
|
blinded payment relay.
|
|
|
|
|
2024-03-20 08:36:12 +01:00
|
|
|
* Allow `healthcheck` package users to provide [custom
|
|
|
|
callbacks](https://github.com/lightningnetwork/lnd/pull/8504) which will
|
|
|
|
execute whenever a healthcheck succeeds/fails.
|
2024-03-12 09:50:17 -05:00
|
|
|
|
2024-03-15 08:17:40 +08:00
|
|
|
* `PublishTransaction` now [returns the error
|
|
|
|
types](https://github.com/lightningnetwork/lnd/pull/8554) defined in
|
|
|
|
`btcd/rpcclient`.
|
|
|
|
|
2024-04-02 15:02:02 +02:00
|
|
|
* [checkOutboundPeers](https://github.com/lightningnetwork/lnd/pull/8576) is
|
|
|
|
added to `chainHealthCheck` to make sure chain backend `bitcoind` and `btcd`
|
|
|
|
maintain a healthy connection to the network by checking the number of
|
|
|
|
outbound peers if they are below 6.
|
|
|
|
|
2024-05-07 18:58:25 +02:00
|
|
|
* [Add inbound fees](https://github.com/lightningnetwork/lnd/pull/8723) to
|
|
|
|
`subscribeChannelGraph`.
|
|
|
|
|
2024-05-14 08:40:05 -05:00
|
|
|
* [Moved](https://github.com/lightningnetwork/lnd/pull/8744) the experimental
|
|
|
|
"custom" options to the main protocol config so that they can be used without
|
|
|
|
the dev build flag set.
|
|
|
|
|
2023-11-08 09:48:36 +01:00
|
|
|
### Logging
|
|
|
|
* [Add the htlc amount](https://github.com/lightningnetwork/lnd/pull/8156) to
|
2024-03-20 08:36:12 +01:00
|
|
|
contract court logs in case of timed-out HTLCs in order to easily spot dust
|
2023-11-08 09:48:36 +01:00
|
|
|
outputs.
|
|
|
|
|
2024-01-31 15:14:31 +08:00
|
|
|
* [Add warning logs](https://github.com/lightningnetwork/lnd/pull/8446) during
|
|
|
|
startup when deprecated config options are used.
|
|
|
|
|
2023-08-22 09:55:41 -07:00
|
|
|
## RPC Updates
|
2022-11-18 20:59:28 +08:00
|
|
|
|
|
|
|
* [Deprecated](https://github.com/lightningnetwork/lnd/pull/7175)
|
|
|
|
`StatusUnknown` from the payment's rpc response in its status and replaced it
|
|
|
|
with `StatusInitiated` to explicitly report its current state.
|
2024-03-20 08:36:12 +01:00
|
|
|
|
2023-10-20 22:43:19 -05:00
|
|
|
* [Add an option to sign/verify a tagged
|
|
|
|
hash](https://github.com/lightningnetwork/lnd/pull/8106) to the
|
2024-03-20 08:36:12 +01:00
|
|
|
`signer.SignMessage`/`signer.VerifyMessage` RPCs.
|
2022-11-18 20:59:28 +08:00
|
|
|
|
2023-10-24 14:53:39 +08:00
|
|
|
* `sendtoroute` will return an error when it's called using the flag
|
2024-03-20 08:36:12 +01:00
|
|
|
`--skip_temp_err` on a payment that's not an MPP. This is needed as a temp
|
|
|
|
error is defined as a routing error found in one of an MPP's HTLC attempts.
|
2023-10-24 14:53:39 +08:00
|
|
|
If, however, there's only one HTLC attempt, when it's failed, this payment is
|
|
|
|
considered failed, thus there's no such thing as temp error for a non-MPP.
|
2023-10-31 17:50:05 +01:00
|
|
|
|
2023-11-30 00:28:15 +01:00
|
|
|
* Support for
|
|
|
|
[MinConf](https://github.com/lightningnetwork/lnd/pull/8097)(minimum number
|
|
|
|
of confirmations) has been added to the `WalletBalance` RPC call.
|
2023-10-31 17:50:05 +01:00
|
|
|
|
|
|
|
* [EstimateRouteFee](https://github.com/lightningnetwork/lnd/pull/8136) extends
|
|
|
|
the graph based estimation by a payment probe approach which can lead to more
|
|
|
|
accurate estimates. The new estimation method manually incorporates fees of
|
|
|
|
destinations that lie hidden behind lightning service providers.
|
2023-10-24 14:53:39 +08:00
|
|
|
|
2024-01-25 12:35:04 +01:00
|
|
|
* `PendingChannels` now optionally returns the
|
|
|
|
[raw hex of the closing tx](https://github.com/lightningnetwork/lnd/pull/8426)
|
|
|
|
in `waiting_close_channels`.
|
|
|
|
|
2024-03-20 08:36:12 +01:00
|
|
|
* [Allow callers of `ListSweeps` to specify the start
|
|
|
|
height](https://github.com/lightningnetwork/lnd/pull/7372).
|
2023-12-03 22:37:07 +01:00
|
|
|
|
2024-03-26 19:12:34 +02:00
|
|
|
* [Coin Selection Strategy](https://github.com/lightningnetwork/lnd/pull/8515)
|
|
|
|
add coin selection strategy option to the following on-chain RPC calls
|
2024-04-29 13:55:22 +02:00
|
|
|
`EstimateFee`, `SendMany`, `SendCoins`, `BatchOpenChannel`, `SendOutputs`, and
|
|
|
|
`FundPsbt`.
|
2024-03-26 19:12:34 +02:00
|
|
|
|
2024-04-19 23:41:07 +08:00
|
|
|
* `BumpFee` has been updated to take advantage of the [new budget-based
|
|
|
|
sweeper](https://github.com/lightningnetwork/lnd/pull/8667). The param
|
|
|
|
`force` has been deprecated and replaced with a new param `immediate`, and a
|
|
|
|
new param `budget` is added to allow specifying max fees when sweeping
|
|
|
|
outputs. In addition, `PendingSweep` has added new fields `immediate`,
|
|
|
|
`budget`, and `deadline_height`, the fields `force`, `requested_conf_target`,
|
|
|
|
and `next_broadcast_height` are deprecated.
|
|
|
|
|
2024-04-21 22:53:11 +02:00
|
|
|
* [Delete All Payments RPC](https://github.com/lightningnetwork/lnd/pull/8672)
|
|
|
|
adds `all_payments` option to the `DeleteAllPayments` RPC. This update
|
|
|
|
ensures that the arguments are provided when calling `DeleteAllPayments` RPC,
|
|
|
|
whether through gRPC or the REST API, due to the destructive nature of the
|
|
|
|
operation.
|
|
|
|
|
2024-04-23 18:33:39 -07:00
|
|
|
* When paying an AMP payment request, [the `--amp` flag is now
|
|
|
|
required](https://github.com/lightningnetwork/lnd/pull/8681) to be consistent
|
2024-04-29 13:55:22 +02:00
|
|
|
with the flow when a payment request isn't used.
|
2024-04-23 18:33:39 -07:00
|
|
|
|
2023-08-22 09:55:41 -07:00
|
|
|
## lncli Updates
|
2023-11-20 14:51:59 -07:00
|
|
|
|
2024-03-20 08:36:12 +01:00
|
|
|
* [Documented all available `lncli`
|
|
|
|
commands](https://github.com/lightningnetwork/lnd/pull/8181).
|
|
|
|
This change makes all existing `lncli` commands have the appropriate doc tag
|
|
|
|
in the RPC definition to ensure that the autogenerated API documentation
|
|
|
|
properly specifies how to use the `lncli` command.
|
2023-11-20 14:51:59 -07:00
|
|
|
|
2023-12-08 00:56:31 +01:00
|
|
|
* [Enable multiple outgoing channel ids for the payment
|
|
|
|
command](https://github.com/lightningnetwork/lnd/pull/8261). This change adds
|
|
|
|
the ability to specify multiple outgoing channel ids for the `sendpayment`
|
|
|
|
command.
|
|
|
|
|
2024-03-20 08:36:12 +01:00
|
|
|
* [Use the default LND value in the `buildroute` RPC command for the
|
|
|
|
`final cltv delta`](https://github.com/lightningnetwork/lnd/pull/8387).
|
2024-01-16 11:49:29 +01:00
|
|
|
|
2024-01-25 12:35:04 +01:00
|
|
|
* `pendingchannels` now optionally returns the
|
|
|
|
[raw hex of the closing tx](https://github.com/lightningnetwork/lnd/pull/8426)
|
|
|
|
in `waiting_close_channels`.
|
2023-10-31 17:50:05 +01:00
|
|
|
|
2024-03-20 08:36:12 +01:00
|
|
|
* The [`estimateroutefee`](https://github.com/lightningnetwork/lnd/pull/8136)
|
2023-10-31 17:50:05 +01:00
|
|
|
subcommand now gives access to graph based and payment probe fee estimation.
|
2024-01-25 12:35:04 +01:00
|
|
|
|
2023-08-22 09:55:41 -07:00
|
|
|
## Code Health
|
2023-08-03 19:13:54 +02:00
|
|
|
|
|
|
|
* [Remove Litecoin code](https://github.com/lightningnetwork/lnd/pull/7867).
|
|
|
|
With this change, the `Bitcoin.Active` config option is now deprecated since
|
2024-03-12 20:03:35 +02:00
|
|
|
Bitcoin is now the only supported chain. The `chain` field in the
|
|
|
|
`lnrpc.Chain` message has also been deprecated for the same reason.
|
2023-08-03 19:13:54 +02:00
|
|
|
|
2024-03-20 08:36:12 +01:00
|
|
|
* The payment lifecycle code has been refactored to improve its maintainability.
|
2023-03-09 19:25:41 +08:00
|
|
|
In particular, the complexity involved in the lifecycle loop has been
|
|
|
|
decoupled into logical steps, with each step having its own responsibility,
|
|
|
|
making it easier to reason about the payment flow.
|
2023-06-14 11:48:44 +02:00
|
|
|
|
|
|
|
* [Remove io/ioutil package
|
|
|
|
dependence](https://github.com/lightningnetwork/lnd/pull/7765).
|
|
|
|
|
2023-08-11 15:09:17 +02:00
|
|
|
* [Add a watchtower tower client
|
|
|
|
multiplexer](https://github.com/lightningnetwork/lnd/pull/7702) to manage
|
|
|
|
tower clients of different types.
|
2023-08-29 09:22:42 +02:00
|
|
|
|
2023-05-31 10:20:29 +02:00
|
|
|
* [Introduce CommitmentType and JusticeKit
|
|
|
|
interface](https://github.com/lightningnetwork/lnd/pull/7736) to simplify the
|
|
|
|
code.
|
2023-03-09 19:25:41 +08:00
|
|
|
|
2024-02-26 11:41:06 +00:00
|
|
|
* [Correct `fmt.Errorf` error wrapping
|
2024-03-20 08:36:12 +01:00
|
|
|
instances](https://github.com/lightningnetwork/lnd/pull/8503).
|
2024-02-26 11:41:06 +00:00
|
|
|
|
2024-03-19 15:38:35 +02:00
|
|
|
* Bump sqlite version to [fix a data
|
|
|
|
race](https://github.com/lightningnetwork/lnd/pull/8567).
|
|
|
|
|
2024-01-10 02:45:54 +08:00
|
|
|
* The pending inputs in the sweeper is now
|
|
|
|
[stateful](https://github.com/lightningnetwork/lnd/pull/8423) to better
|
|
|
|
manage the lifecycle of the inputs.
|
|
|
|
|
2023-08-22 09:55:41 -07:00
|
|
|
## Breaking Changes
|
2024-04-26 02:42:14 +08:00
|
|
|
|
2024-04-29 13:55:22 +02:00
|
|
|
* Previously when calling `SendCoins`, `SendMany`, `OpenChannel` and
|
2024-04-26 02:42:14 +08:00
|
|
|
`CloseChannel` for coop close, it is allowed to specify both an empty
|
|
|
|
`SatPerVbyte` and `TargetConf`, and a default conf target of 6 will be used.
|
|
|
|
This will [no longer be
|
|
|
|
allowed](https://github.com/lightningnetwork/lnd/pull/8422) in the next
|
|
|
|
release (v0.19.0) and the caller must specify either `SatPerVbyte` or
|
|
|
|
`TargetConf` so the fee estimator can do a proper fee estimation. For current
|
|
|
|
release, [an error will be
|
|
|
|
logged](https://github.com/lightningnetwork/lnd/pull/8693) when no values are
|
|
|
|
specified.
|
|
|
|
|
2024-04-23 09:40:05 +02:00
|
|
|
* Removed deprecated `neutrino.feeurl` option. Please use the newer `fee.url`
|
|
|
|
option instead.
|
|
|
|
|
2023-08-22 09:55:41 -07:00
|
|
|
## Performance Improvements
|
|
|
|
|
2023-11-23 16:10:00 +02:00
|
|
|
* Watchtower client DB migration to massively [improve the start-up
|
|
|
|
performance](https://github.com/lightningnetwork/lnd/pull/8222) of a client.
|
|
|
|
|
2023-08-22 09:55:41 -07:00
|
|
|
# Technical and Architectural Updates
|
|
|
|
## BOLT Spec Updates
|
2023-10-12 16:56:50 -06:00
|
|
|
|
2024-03-20 08:36:12 +01:00
|
|
|
* [Add Dynamic Commitment Wire
|
|
|
|
Types](https://github.com/lightningnetwork/lnd/pull/8026).
|
2023-10-12 16:56:50 -06:00
|
|
|
This change begins the development of Dynamic Commitments allowing for the
|
|
|
|
negotiation of new channel parameters and the upgrading of channel types.
|
2023-11-08 13:32:10 +02:00
|
|
|
|
|
|
|
* Start using the [timestamps query
|
|
|
|
option](https://github.com/lightningnetwork/lnd/pull/8030) in the
|
|
|
|
`query_channel_range` message. This will allow us to know if our peer has a
|
|
|
|
newer update for a channel that we have marked as a zombie. This addition can
|
|
|
|
be switched off using the new `protocol.no-timestamp-query-option` config
|
|
|
|
option.
|
2023-10-12 16:56:50 -06:00
|
|
|
|
2024-03-20 08:36:12 +01:00
|
|
|
* [Update `min_final_cltv_expiry_delta`](https://github.com/lightningnetwork/lnd/pull/8308).
|
2023-11-06 12:13:48 +01:00
|
|
|
This only affects external invoices which do not supply the
|
2024-03-20 08:36:12 +01:00
|
|
|
`min_final_cltv_expiry` parameter. LND has NOT allowed the creation of
|
|
|
|
invoices with a lower `min_final_cltv_expiry_delta` value than 18 blocks since
|
|
|
|
LND v0.11.0.
|
2023-12-29 19:49:15 +01:00
|
|
|
|
2024-03-20 08:36:12 +01:00
|
|
|
* [Make Legacy Features
|
|
|
|
Compulsory](https://github.com/lightningnetwork/lnd/pull/8275).
|
|
|
|
This change implements changes codified in
|
|
|
|
[bolts#1092](https://github.com/lightning/bolts/pull/1092)
|
|
|
|
and makes TLV Onions, Static Remote Keys, Gossip Queries, compulsory features
|
|
|
|
for LND's peers. Data Loss Protection has been compulsory for years.
|
2023-12-29 19:49:15 +01:00
|
|
|
|
2024-04-04 12:28:37 -07:00
|
|
|
* [Don't Require Gossip Queries](https://github.com/lightningnetwork/lnd/pull/8615)
|
|
|
|
This change undoes a portion of what was introduced in #8275 due to a subsequent
|
|
|
|
[spec change](https://github.com/lightning/bolts/pull/1092/commits/e0ee59f3c92b7c98be8dfc47b7db358b45baf9de)
|
|
|
|
that meant we shouldn't require it.
|
|
|
|
|
2023-08-22 09:55:41 -07:00
|
|
|
## Testing
|
2023-10-27 14:54:29 -05:00
|
|
|
|
|
|
|
* Added fuzz tests for [onion
|
|
|
|
errors](https://github.com/lightningnetwork/lnd/pull/7669).
|
|
|
|
|
2024-03-15 12:54:39 +01:00
|
|
|
* Fixed stability and [compatibility of unit tests with `bitcoind
|
|
|
|
v26.0`](https://github.com/lightningnetwork/lnd/pull/8273).
|
|
|
|
|
2023-08-22 09:55:41 -07:00
|
|
|
## Database
|
2023-10-11 13:42:59 +02:00
|
|
|
|
|
|
|
* [Add context to InvoiceDB
|
|
|
|
methods](https://github.com/lightningnetwork/lnd/pull/8066). This change adds
|
|
|
|
a context parameter to all `InvoiceDB` methods which is a pre-requisite for
|
|
|
|
the SQL implementation.
|
|
|
|
|
2023-10-11 14:42:15 +02:00
|
|
|
* [Refactor InvoiceDB](https://github.com/lightningnetwork/lnd/pull/8081) to
|
|
|
|
eliminate the use of `ScanInvoices`.
|
|
|
|
|
2024-01-24 20:22:16 +01:00
|
|
|
* [Update](https://github.com/lightningnetwork/lnd/pull/8419) the embedded
|
|
|
|
Postgres version and raise max connections.
|
|
|
|
|
2023-10-26 14:42:20 +02:00
|
|
|
* [Refactor UpdateInvoice](https://github.com/lightningnetwork/lnd/pull/8100) to
|
|
|
|
make it simpler to adjust code to also support SQL InvoiceDB implementation.
|
|
|
|
|
2024-01-23 17:53:19 +01:00
|
|
|
* [InvoiceDB implementation](https://github.com/lightningnetwork/lnd/pull/8052)
|
|
|
|
for SQL backends enabling new users to optionally use an experimental native
|
|
|
|
SQL invoices database.
|
|
|
|
|
2024-03-19 15:22:02 +01:00
|
|
|
* [Ensure that LND won't
|
|
|
|
start](https://github.com/lightningnetwork/lnd/pull/8568) if native SQL is
|
|
|
|
enabled but the channeldb already has any KV invoices stored.
|
|
|
|
|
2024-03-27 17:55:00 +01:00
|
|
|
* [Fix a bug](https://github.com/lightningnetwork/lnd/pull/8595) when retrying
|
|
|
|
SQL InvoiceDB transactions due to database errors.
|
|
|
|
|
2024-04-02 10:38:09 +02:00
|
|
|
* [Turn `sqldb` into a separate Go
|
|
|
|
module](https://github.com/lightningnetwork/lnd/pull/8603).
|
|
|
|
|
2024-04-02 16:48:11 +02:00
|
|
|
* [Consolidate transaction
|
|
|
|
retry](https://github.com/lightningnetwork/lnd/pull/8611) logic and isolation
|
|
|
|
settings between `sqldb` and `kvdb` packages.
|
|
|
|
|
2024-01-08 04:12:50 +08:00
|
|
|
* [Expanded SweeperStore](https://github.com/lightningnetwork/lnd/pull/8147) to
|
2024-04-29 13:55:22 +02:00
|
|
|
also store the fee rate, fees paid, and whether it's published or not for a
|
2024-01-08 04:12:50 +08:00
|
|
|
given sweeping transaction.
|
|
|
|
|
2023-08-22 09:55:41 -07:00
|
|
|
## Code Health
|
2023-10-23 15:19:06 +02:00
|
|
|
|
|
|
|
* [Remove database pointers](https://github.com/lightningnetwork/lnd/pull/8117)
|
2024-03-20 08:36:12 +01:00
|
|
|
from `channeldb` schema structs.
|
2023-10-23 15:19:06 +02:00
|
|
|
|
2022-11-18 20:59:28 +08:00
|
|
|
# Contributors (Alphabetical Order)
|
|
|
|
|
2024-02-29 15:24:21 -08:00
|
|
|
* Alex Akselrod
|
2024-04-29 13:42:33 +02:00
|
|
|
* Alex Sears
|
2023-10-10 13:21:11 -06:00
|
|
|
* Amin Bashiri
|
2023-10-11 13:42:59 +02:00
|
|
|
* Andras Banki-Horvath
|
2024-04-29 13:42:33 +02:00
|
|
|
* AtomicInnovation321
|
|
|
|
* bartoli
|
2023-09-11 22:05:51 -04:00
|
|
|
* BitcoinerCoderBob
|
2024-04-29 13:42:33 +02:00
|
|
|
* bitromortac
|
|
|
|
* bota87
|
2024-05-07 18:58:25 +02:00
|
|
|
* Bufo
|
2024-04-29 13:42:33 +02:00
|
|
|
* Calvin Zachman
|
2023-08-28 12:36:25 +02:00
|
|
|
* Carla Kirk-Cohen
|
2024-04-29 13:42:33 +02:00
|
|
|
* cristiantroy
|
|
|
|
* cuinix
|
|
|
|
* davisv7
|
2023-08-03 19:13:54 +02:00
|
|
|
* Elle Mouton
|
2023-10-30 22:53:45 +01:00
|
|
|
* ErikEk
|
2024-04-29 13:42:33 +02:00
|
|
|
* Eugene Siegel
|
2024-04-06 18:45:04 +02:00
|
|
|
* Feelancer21
|
2024-04-29 13:42:33 +02:00
|
|
|
* ffranr
|
|
|
|
* Hao Wang
|
|
|
|
* hidewrong
|
2024-01-25 12:35:04 +01:00
|
|
|
* Jesse de Wit
|
2024-04-29 13:42:33 +02:00
|
|
|
* João Thallis
|
|
|
|
* Jonathan Harvey-Buschel
|
2022-10-11 09:18:56 +02:00
|
|
|
* Joost Jager
|
2024-04-29 13:42:33 +02:00
|
|
|
* Jordi Montes
|
2023-07-18 17:48:26 -06:00
|
|
|
* Keagan McClelland
|
2024-04-29 13:42:33 +02:00
|
|
|
* kilrau
|
|
|
|
* mani2310
|
2023-11-30 00:28:15 +01:00
|
|
|
* Marcos Fernandez Perez
|
2023-10-27 14:54:29 -05:00
|
|
|
* Matt Morehouse
|
2024-04-29 13:42:33 +02:00
|
|
|
* Michael Rooke
|
2024-03-09 23:52:19 +02:00
|
|
|
* Mohamed Awnallah
|
2024-04-23 18:33:39 -07:00
|
|
|
* Olaoluwa Osuntokun
|
2024-04-29 13:42:33 +02:00
|
|
|
* Oliver Gugger
|
2023-10-31 17:50:05 +01:00
|
|
|
* Ononiwu Maureen Chiamaka
|
2024-04-29 13:42:33 +02:00
|
|
|
* Sam Korn
|
|
|
|
* saubyk
|
|
|
|
* Simone Ragonesi
|
2023-11-08 09:48:36 +01:00
|
|
|
* Slyghtning
|
2024-04-29 13:42:33 +02:00
|
|
|
* tdb3
|
2023-09-11 22:05:51 -04:00
|
|
|
* Tee8z
|
2024-04-29 13:42:33 +02:00
|
|
|
* testwill
|
|
|
|
* Thabokani
|
|
|
|
* threewebcode
|
2024-05-03 08:06:49 +02:00
|
|
|
* Tom Kirkpatrick
|
2023-10-20 22:43:19 -05:00
|
|
|
* Turtle
|
2024-04-29 13:42:33 +02:00
|
|
|
* twofaktor
|
|
|
|
* vuittont60
|
2023-09-11 22:05:51 -04:00
|
|
|
* w3irdrobot
|
2024-04-29 13:42:33 +02:00
|
|
|
* weiliy
|
|
|
|
* xiaoxianBoy
|
2023-07-18 17:48:26 -06:00
|
|
|
* Yong Yu
|
2024-04-29 13:42:33 +02:00
|
|
|
* zhiqiangxu
|
2023-11-05 11:34:19 +01:00
|
|
|
* Ziggie
|