|
| 1 | +# Release Notes |
| 2 | +- [Bug Fixes](#bug-fixes) |
| 3 | +- [New Features](#new-features) |
| 4 | + - [Functional Enhancements](#functional-enhancements) |
| 5 | + - [RPC Additions](#rpc-additions) |
| 6 | + - [lncli Additions](#lncli-additions) |
| 7 | +- [Improvements](#improvements) |
| 8 | + - [Functional Updates](#functional-updates) |
| 9 | + - [RPC Updates](#rpc-updates) |
| 10 | + - [lncli Updates](#lncli-updates) |
| 11 | + - [Code Health](#code-health) |
| 12 | + - [Breaking Changes](#breaking-changes) |
| 13 | + - [Performance Improvements](#performance-improvements) |
| 14 | + - [Misc](#misc) |
| 15 | +- [Technical and Architectural Updates](#technical-and-architectural-updates) |
| 16 | + - [BOLT Spec Updates](#bolt-spec-updates) |
| 17 | + - [Testing](#testing) |
| 18 | + - [Database](#database) |
| 19 | + - [Code Health](#code-health-1) |
| 20 | + - [Tooling and Documentation](#tooling-and-documentation) |
| 21 | +- [Contributors (Alphabetical Order)](#contributors-alphabetical-order) |
| 22 | + |
| 23 | +# Bug Fixes |
| 24 | +* [Fix a bug](https://github.com/lightningnetwork/lnd/pull/8097) where |
| 25 | + `sendcoins` command with `--sweepall` flag would not show the correct amount. |
| 26 | + |
| 27 | +* [Fixed a potential case](https://github.com/lightningnetwork/lnd/pull/7824) |
| 28 | + that when sweeping inputs with locktime, an unexpected lower fee rate is |
| 29 | + applied. |
| 30 | + |
| 31 | +* LND will now [enforce pong responses |
| 32 | + ](https://github.com/lightningnetwork/lnd/pull/7828) from its peers |
| 33 | + |
| 34 | +* [Fixed a possible unintended RBF |
| 35 | + attempt](https://github.com/lightningnetwork/lnd/pull/8091) when sweeping new |
| 36 | + inputs with retried ones. |
| 37 | + |
| 38 | +* [Fixed](https://github.com/lightningnetwork/lnd/pull/7811) a case where `lnd` |
| 39 | + might panic due to empty witness data found in a transaction. More details |
| 40 | + can be found [here](https://github.com/bitcoin/bitcoin/issues/28730). |
| 41 | + |
| 42 | +* [Fixed a case](https://github.com/lightningnetwork/lnd/pull/7503) where it's |
| 43 | + possible a failed payment might be stuck in pending. |
| 44 | + |
| 45 | +* [Ensure that a valid SCID](https://github.com/lightningnetwork/lnd/pull/8171) |
| 46 | + is used when marking a zombie edge as live. |
| 47 | + |
| 48 | +* [Remove sweep transactions of the |
| 49 | + same exclusive group](https://github.com/lightningnetwork/lnd/pull/7800). |
| 50 | + When using neutrino as a backend unconfirmed transactions have to be |
| 51 | + removed from the wallet when a conflicting tx is confirmed. For other backends |
| 52 | + these unconfirmed transactions are already removed. In addition, a new |
| 53 | + walletrpc endpoint `RemoveTransaction` is introduced which let one easily |
| 54 | + remove unconfirmed transaction manually. |
| 55 | + |
| 56 | +* [Fixed](https://github.com/lightningnetwork/lnd/pull/8096) a case where `lnd` |
| 57 | + might dip below its channel reserve when htlcs are added concurrently. A |
| 58 | + fee buffer (additional balance) is now always kept on the local side ONLY |
| 59 | + if the channel was opened locally. This is in accordance with the BOTL 02 |
| 60 | + specification and protects against sharp fee changes because there is always |
| 61 | + this buffer which can be used to increase the commitment fee and it also |
| 62 | + protects against the case where htlcs are added asynchronously resulting in |
| 63 | + stuck channels. |
| 64 | + |
| 65 | +* [Fixed](https://github.com/lightningnetwork/lnd/pull/8377) a watchtower client |
| 66 | + test flake that prevented new tasks from overflowing to disk. |
| 67 | + |
| 68 | +* [Properly handle un-acked updates for exhausted watchtower |
| 69 | + sessions](https://github.com/lightningnetwork/lnd/pull/8233) |
| 70 | + |
| 71 | +* [Allow `shutdown`s while HTLCs are in-flight](https://github.com/lightningnetwork/lnd/pull/8167). |
| 72 | + This change fixes an issue where we would force-close channels when receiving |
| 73 | + a `shutdown` message if there were currently HTLCs on the channel. After this |
| 74 | + change, the shutdown procedure should be compliant with BOLT2 requirements. |
| 75 | + |
| 76 | +* The AMP struct in payment hops will [now be populated](https://github.com/lightningnetwork/lnd/pull/7976) when the AMP TLV is set. |
| 77 | + |
| 78 | +* [Add Taproot witness types |
| 79 | + to rpc](https://github.com/lightningnetwork/lnd/pull/8431) |
| 80 | + |
| 81 | +# New Features |
| 82 | +## Functional Enhancements |
| 83 | + |
| 84 | +* A new config value, |
| 85 | + [sweeper.maxfeerate](https://github.com/lightningnetwork/lnd/pull/7823), is |
| 86 | + added so users can specify the max allowed fee rate when sweeping onchain |
| 87 | + funds. The default value is 1000 sat/vb. Setting this value below 100 sat/vb |
| 88 | + is not allowed, as low fee rate can cause transactions not confirming in |
| 89 | + time, which could result in fund loss. |
| 90 | + Please note that the actual fee rate to be used is deteremined by the fee |
| 91 | + estimator used(for instance `bitcoind`), and this value is a cap on the max |
| 92 | + allowed value. So it's expected that this cap is rarely hit unless there's |
| 93 | + mempool congestion. |
| 94 | +* Support for [pathfinding]((https://github.com/lightningnetwork/lnd/pull/7267) |
| 95 | + and payment to blinded paths has been added via the `QueryRoutes` (and |
| 96 | + SendToRouteV2) APIs. This functionality is surfaced in `lncli queryroutes` |
| 97 | + where the required flags are tagged with `(blinded paths)`. Updates to mission |
| 98 | + control to [handle pathfinding errors](https://github.com/lightningnetwork/lnd/pull/8095) |
| 99 | + for blinded paths are also included. |
| 100 | +* A new config value, |
| 101 | + [http-header-timeout](https://github.com/lightningnetwork/lnd/pull/7715), is |
| 102 | + added so users can specify the amount of time the http server will wait for a |
| 103 | + request to complete before closing the connection. The default value is 5 |
| 104 | + seconds. |
| 105 | +* Update [watchtowers to be Taproot |
| 106 | + ready](https://github.com/lightningnetwork/lnd/pull/7733) |
| 107 | + |
| 108 | + |
| 109 | +* [`routerrpc.usestatusinitiated` is |
| 110 | + introduced](https://github.com/lightningnetwork/lnd/pull/8177) to signal that |
| 111 | + the new payment status `Payment_INITIATED` should be used for payment-related |
| 112 | + RPCs. It's recommended to use it to provide granular controls over payments. |
| 113 | + |
| 114 | +* A [helper command (`lncli encryptdebugpackage`) for collecting and encrypting |
| 115 | + useful debug information](https://github.com/lightningnetwork/lnd/pull/8188) |
| 116 | + was added. This allows a user to collect the most relevant information about |
| 117 | + their node with a single command and securely encrypt it to the public key of |
| 118 | + a developer or support person. That way the person supporting the user with |
| 119 | + their issue has an eas way to get all the information they usually require |
| 120 | + without the user needing to publicly give away a lot of privacy-sensitive |
| 121 | + data. |
| 122 | + |
| 123 | +* When publishing transactions in `lnd`, all the transactions will now go |
| 124 | + through [mempool acceptance |
| 125 | + check](https://github.com/lightningnetwork/lnd/pull/8345) before being |
| 126 | + broadcast. This means when a transaction has failed the `testmempoolaccept` |
| 127 | + check by bitcoind or btcd, the broadcast won't be attempted. |
| 128 | + |
| 129 | +## RPC Additions |
| 130 | + |
| 131 | +* [Deprecated](https://github.com/lightningnetwork/lnd/pull/7175) |
| 132 | + `StatusUnknown` from the payment's rpc response in its status and added a new |
| 133 | + status, `StatusInitiated`, to explicitly report its current state. Before |
| 134 | + running this new version, please make sure to upgrade your client application |
| 135 | + to include this new status so it can understand the RPC response properly. |
| 136 | + |
| 137 | +* Adds a new rpc endpoint gettx to the walletrpc sub-server to [fetch |
| 138 | + transaction details](https://github.com/lightningnetwork/lnd/pull/7654). |
| 139 | + |
| 140 | +* [The new `GetDebugInfo` RPC method was added that returns the full runtime |
| 141 | + configuration of the node as well as the complete log |
| 142 | + file](https://github.com/lightningnetwork/lnd/pull/8188). The corresponding |
| 143 | + `lncli getdebuginfo` command was also added. |
| 144 | + |
| 145 | +* Add a [new flag](https://github.com/lightningnetwork/lnd/pull/8167) to the |
| 146 | + `CloseChannel` RPC method that instructs the client to not wait for the |
| 147 | + closing transaction to be negotiated. This should be used if you don't care |
| 148 | + about the txid and don't want the calling code to block while the channel |
| 149 | + drains the active HTLCs. |
| 150 | + |
| 151 | +## lncli Additions |
| 152 | + |
| 153 | +* Deprecate `bumpclosefee` for `bumpforceclosefee` to accommodate for the fact |
| 154 | + that only force closing transactions can be bumped to avoid confusion. |
| 155 | + Moreover allow to specify a max fee rate range when coop closing a channel. |
| 156 | + [Deprecate bumpclosefee for bumpforceclosefee and add `max_fee_rate` option |
| 157 | + to `closechannel` cmd](https://github.com/lightningnetwork/lnd/pull/8350). |
| 158 | + |
| 159 | +# Improvements |
| 160 | +## Functional Updates |
| 161 | +### Tlv |
| 162 | +* [Bool was added](https://github.com/lightningnetwork/lnd/pull/8057) to the |
| 163 | + primitive type of the tlv package. |
| 164 | + |
| 165 | +## Misc |
| 166 | +* [Added](https://github.com/lightningnetwork/lnd/pull/8142) full validation |
| 167 | + for blinded path payloads to allow fuzzing before LND fully supports |
| 168 | + blinded payment relay. |
| 169 | + |
| 170 | +### Logging |
| 171 | +* [Add the htlc amount](https://github.com/lightningnetwork/lnd/pull/8156) to |
| 172 | + contract court logs in case of timed-out htlcs in order to easily spot dust |
| 173 | + outputs. |
| 174 | + |
| 175 | +## RPC Updates |
| 176 | + |
| 177 | +* [Deprecated](https://github.com/lightningnetwork/lnd/pull/7175) |
| 178 | + `StatusUnknown` from the payment's rpc response in its status and replaced it |
| 179 | + with `StatusInitiated` to explicitly report its current state. |
| 180 | +* [Add an option to sign/verify a tagged |
| 181 | + hash](https://github.com/lightningnetwork/lnd/pull/8106) to the |
| 182 | + signer.SignMessage/signer.VerifyMessage RPCs. |
| 183 | + |
| 184 | +* `sendtoroute` will return an error when it's called using the flag |
| 185 | + `--skip_temp_err` on a payment that's not a MPP. This is needed as a temp |
| 186 | + error is defined as a routing error found in one of a MPP's HTLC attempts. |
| 187 | + If, however, there's only one HTLC attempt, when it's failed, this payment is |
| 188 | + considered failed, thus there's no such thing as temp error for a non-MPP. |
| 189 | +* Support for |
| 190 | + [MinConf](https://github.com/lightningnetwork/lnd/pull/8097)(minimum number |
| 191 | + of confirmations) has been added to the `WalletBalance` RPC call. |
| 192 | + |
| 193 | +* `PendingChannels` now optionally returns the |
| 194 | + [raw hex of the closing tx](https://github.com/lightningnetwork/lnd/pull/8426) |
| 195 | + in `waiting_close_channels`. |
| 196 | + |
| 197 | +## lncli Updates |
| 198 | + |
| 199 | +* [Documented all available lncli commands](https://github.com/lightningnetwork/lnd/pull/8181). |
| 200 | + This change makes all existing lncli commands have the appropriate doc tag |
| 201 | + in the rpc definition to ensure that the autogenerated API documentation |
| 202 | + properly specifies how to use the lncli command. |
| 203 | + |
| 204 | +* [Enable multiple outgoing channel ids for the payment |
| 205 | + command](https://github.com/lightningnetwork/lnd/pull/8261). This change adds |
| 206 | + the ability to specify multiple outgoing channel ids for the `sendpayment` |
| 207 | + command. |
| 208 | + |
| 209 | +* [Use the default LND value in the buildroute rpc command for the |
| 210 | + final cltv delta](https://github.com/lightningnetwork/lnd/pull/8387). |
| 211 | + |
| 212 | +* `pendingchannels` now optionally returns the |
| 213 | + [raw hex of the closing tx](https://github.com/lightningnetwork/lnd/pull/8426) |
| 214 | + in `waiting_close_channels`. |
| 215 | + |
| 216 | +## Code Health |
| 217 | + |
| 218 | +* [Remove Litecoin code](https://github.com/lightningnetwork/lnd/pull/7867). |
| 219 | + With this change, the `Bitcoin.Active` config option is now deprecated since |
| 220 | + Bitcoin is now the only supported chain. The `chains` field in the |
| 221 | + `lnrpc.GetInfoResponse` message along with the `chain` field in the |
| 222 | + `lnrpc.Chain` message have also been deprecated for the same reason. |
| 223 | + |
| 224 | +* The payment lifecycle code has been refactored to improve its maintainablity. |
| 225 | + In particular, the complexity involved in the lifecycle loop has been |
| 226 | + decoupled into logical steps, with each step having its own responsibility, |
| 227 | + making it easier to reason about the payment flow. |
| 228 | + |
| 229 | +* [Add a watchtower tower client |
| 230 | + multiplexer](https://github.com/lightningnetwork/lnd/pull/7702) to manage |
| 231 | + tower clients of different types. |
| 232 | + |
| 233 | +* [Introduce CommitmentType and JusticeKit |
| 234 | + interface](https://github.com/lightningnetwork/lnd/pull/7736) to simplify the |
| 235 | + code. |
| 236 | + |
| 237 | +## Breaking Changes |
| 238 | +## Performance Improvements |
| 239 | + |
| 240 | +* Watchtower client DB migration to massively [improve the start-up |
| 241 | + performance](https://github.com/lightningnetwork/lnd/pull/8222) of a client. |
| 242 | + |
| 243 | +# Technical and Architectural Updates |
| 244 | +## BOLT Spec Updates |
| 245 | + |
| 246 | +* [Add Dynamic Commitment Wire Types](https://github.com/lightningnetwork/lnd/pull/8026). |
| 247 | + This change begins the development of Dynamic Commitments allowing for the |
| 248 | + negotiation of new channel parameters and the upgrading of channel types. |
| 249 | + |
| 250 | +* Start using the [timestamps query |
| 251 | + option](https://github.com/lightningnetwork/lnd/pull/8030) in the |
| 252 | + `query_channel_range` message. This will allow us to know if our peer has a |
| 253 | + newer update for a channel that we have marked as a zombie. This addition can |
| 254 | + be switched off using the new `protocol.no-timestamp-query-option` config |
| 255 | + option. |
| 256 | + |
| 257 | +* [Update min_final_cltv_expiry_delta](https://github.com/lightningnetwork/lnd/pull/8308). |
| 258 | + This only effects external invoices which do not supply the |
| 259 | + min_final_cltv_expiry parameter. LND has NOT allowed the creation of invoices |
| 260 | + with a lower min_final_cltv_expiry_delta value than 18 blocks since |
| 261 | + LND 0.11.0. |
| 262 | + |
| 263 | +* [Make Legacy Features Compulsory](https://github.com/lightningnetwork/lnd/pull/8275). |
| 264 | + This change implements changes codified in [bolts#1092](https://github.com/lightning/bolts/pull/1092) |
| 265 | + and makes TLV Onions, Static Remote Keys, Gossip Queries, compulsory features for |
| 266 | + LND's peers. Data Loss Protection has been compulsory for years. |
| 267 | + |
| 268 | +## Testing |
| 269 | + |
| 270 | +* Added fuzz tests for [onion |
| 271 | + errors](https://github.com/lightningnetwork/lnd/pull/7669). |
| 272 | + |
| 273 | +## Database |
| 274 | + |
| 275 | +* [Add context to InvoiceDB |
| 276 | + methods](https://github.com/lightningnetwork/lnd/pull/8066). This change adds |
| 277 | + a context parameter to all `InvoiceDB` methods which is a pre-requisite for |
| 278 | + the SQL implementation. |
| 279 | + |
| 280 | +* [Refactor InvoiceDB](https://github.com/lightningnetwork/lnd/pull/8081) to |
| 281 | + eliminate the use of `ScanInvoices`. |
| 282 | + |
| 283 | +* [Update](https://github.com/lightningnetwork/lnd/pull/8419) the embedded |
| 284 | + Postgres version and raise max connections. |
| 285 | + |
| 286 | +## Code Health |
| 287 | + |
| 288 | +* [Remove database pointers](https://github.com/lightningnetwork/lnd/pull/8117) |
| 289 | + from channeldb schema structs. |
| 290 | + |
| 291 | +## Tooling and Documentation |
| 292 | + |
| 293 | +# Contributors (Alphabetical Order) |
| 294 | + |
| 295 | +* Amin Bashiri |
| 296 | +* Andras Banki-Horvath |
| 297 | +* BitcoinerCoderBob |
| 298 | +* Carla Kirk-Cohen |
| 299 | +* Elle Mouton |
| 300 | +* ErikEk |
| 301 | +* Jesse de Wit |
| 302 | +* Keagan McClelland |
| 303 | +* Marcos Fernandez Perez |
| 304 | +* Matt Morehouse |
| 305 | +* Slyghtning |
| 306 | +* Tee8z |
| 307 | +* Turtle |
| 308 | +* Ononiwu Maureen Chiamaka |
| 309 | +* w3irdrobot |
| 310 | +* Yong Yu |
| 311 | +* Ziggie |
0 commit comments