Skip to content

Commit 527e7a2

Browse files
yyforyongyukaloudis
authored andcommitted
Merge pull request lightningnetwork#8431 from ziggie1984/unhandled-witness-type-taproot
walletrpc: Add Taproot witness types to rpc.
1 parent 6cc1995 commit 527e7a2

File tree

6 files changed

+665
-140
lines changed

6 files changed

+665
-140
lines changed
Lines changed: 311 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,311 @@
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

Comments
 (0)