8.5 KiB
Release Notes
Protocol/Spec Updates
- We'll now no longer clamp the co-op close fee to the commitment fee. Instead, if users are the initiator, they can now specify a max fee that should be respected.
Zero-Conf Channel Opens
Interoperability
Build system
MuSig2
The experimental MuSig2 RPC interface has been updated to track version 0.4.0 of the draft BIP.
Taproot
lnd will now refuse to start if it detects the full node backend does not
support Tapoot. With this
change, the officially
supported versions of bitcoind are: 21, 22, and 23.
lnd will now use taproot addresses for co-op closes if the remote peer
supports the feature.
The wallet also creates P2TR change addresses by default in most cases.
NOTE for users running a remote signing setup: A manual account import is
necessary when upgrading from lnd v0.14.x-beta to lnd v0.15.x-beta, see the
remote signing documentation for more
details.
Please upgrade to lnd v0.15.3-beta or later directly!
lncli
-
Add
payment_addrflag tobuildrouteso that the mpp record of the route can be set correctly. -
Hop hints are now opt in when using
lncli addholdinvoice. Users now need to explicitly specify the--privateflag. -
Add
chan_pointflag toupdatechanstatusandabandonchannelto offer a convenient way to specify the channel to be updated. -
Add
ignore_pairflag to queryroutes to allow a user to request that specific directional node pairs be ignored during the route search.
Database
-
Delete failed payment attempts once payments are settled, unless specified with
keep-failed-payment-attemptsflag. -
A new db configuration flag
db.prune-revocationis introduced to take the advantage enabled by a recent space optimization. Users can set this flag totrueto run an optional db migration duringlnd's startup. This flag will prune the old revocation logs and save them using the new format that can save large amount of disk space. For a busy channel with millions of updates, this migration can take quite some time. The benchmark shows it takes roughly 70 seconds to finish a migration with 1 million logs. Of course the actual time taken can vary from machine to machine. Users can run the following benchmark test to get an accurate time it'll take for a channel with 1 millions updates to plan ahead,cd ./channeldb/migration30 go test -bench=. -run=TestMigrateRevocationLogMemCap -benchtime=1000000x -timeout=10m -benchmem
Documentation
-
Add minor comment on subscribe/cancel/lookup invoice parameter encoding.
Neutrino
- Add getblockhash command to neutrino sub-server.
RPC Server
-
The RPC middleware interceptor now also allows requests to be replaced instead of just responses. In addition to that, errors returned from
lndcan now also be intercepted and changed by the middleware. -
The
signrpc.SignMessageandsignrpc.VerifyMessagenow supports Schnorr signatures. -
A new flag
skip_temp_erris added toSendToRoute. Set it to true so the payment won't be failed unless a terminal error has occurred, which is useful for constructing MPP. -
Add a message to the RPC MW registration flow so that the server can indicate to the client that it has completed the RPC MW registration.
Bug Fixes
-
Fixed data race found in
TestSerializeHTLCEntries. -
Fixed a bug in the
SignPsbtRPC that produced an invalid response when signing a NP2WKH input. -
Update the
urfave/clipackage because of a flag parsing bug. -
The HtlcSwitch now waits for a ChannelLink to stop before replacing it. This fixes a race condition.
-
Integration tests now always run with nodes never deleting failed payments.
-
Fixes a key scope issue preventing new remote signing setups to be created with
v0.15.0-beta. -
Re-initialise registered middleware index lookup map after removal of a registered middleware
-
Remove
ScidAliasOptionaldependency onExplicitChannelTypeOptional -
Add a default case to the Address Type switch statement in the
NewAddressrpc server method.
Code Health
Code cleanup, refactor, typo fixes
-
Enforce the order of rpc interceptor execution to be the same as the order in which they were registered.
Tooling and documentation
- An
.editorconfigfile was added to autoconfigure most text editors to respect the 80 character line length and to use 8 spaces as the tab size. Rules for Visual Studio Code were also added. And finally, the code formatting rules were extracted into their own document.
Contributors (Alphabetical Order)
- bitromortac
- Carsten Otto
- Elle Mouton
- ErikEk
- Eugene Siegel
- Jordi Montes
- Matt Morehouse
- Slyghtning
- Oliver Gugger
- Olaoluwa Osuntokun
- Priyansh Rastogi
- Tommy Volk
- Yong Yu