8.6 KiB
Release Notes
Networking & Tor
A new flag has been added to enable a hybrid tor connectivity mode, where tor
is only used for onion address connections, and clearnet for everything else.
This new behavior can be added using the tor.skip-proxy-for-clearnet-targets
flag.
Backend Enhancements & Optimizations
Full remote database support
lnd
now stores all its data in the same remote/external
database such as etcd
instead of only the channel state and wallet data. This makes lnd
fully
stateless and therefore makes switching over to a new leader instance almost
instantaneous. Read the guide on leader
election
for more information.
RPC Server
-
Return payment address and add index from addholdinvoice call.
-
The versions of several gRPC related libraries were bumped and the main
rpc.proto
was renamed tolightning.proto
to fix a warning related to protobuf file name collisions. -
Stub code for interacting with
lnrpc
from a WASM context through JSON messages was added. -
LND now reports to systemd that RPC is ready (port bound, certificate generated, macaroons created, in case of
wallet-unlock-password-file
wallet unlocked). This can be used to avoid misleading error messages from dependent services if they useAfter
systemd option.
Wallet
-
It is now possible to fund a psbt without specifying any outputs. This option is useful for CPFP bumping of unconfirmed outputs or general utxo consolidation.
-
The internal wallet can now also be created or restored by using an extended master root key (
xprv
) instead of anaezeed
only. This allows wallet integrators to use existing seed mechanism that might already be in place. It is still not supported to use the same seed/root key on multiplelnd
instances simultaneously though.
Security
Admin macaroon permissions
The default file permissions of admin.macaroon were changed from 0600 to 0640. This makes it easier to allow other users to manage LND. This is safe on common Unix systems because they always create a new group for each user.
If you use a strange system or changed group membership of the group running LND you may want to check your system to see if it introduces additional risk for you.
Safety
- Locally force closed channels are now kept in the channel.backup file until their time lock has fully matured.
Build System
-
A new pre-submit check has been added to ensure that all PRs (aside from merge commits) add an entry in the release notes folder that at least links to PR being added.
-
A new build target itest-race to help uncover undetected data races with our itests.
-
The itest error whitelist check was removed to reduce the number of failed Travis builds.
-
A flake in the Neutrino integration tests with anchor sweeps was addressed.
-
The
lnwire
fuzz tests have been fixed and now run without crashing. -
A flake in the race unit tests was addressed that lead to failed tests sometimes when the CPU of the GitHub CI runner was strained too much.
Documentation
-
Clarified 'ErrReservedValueInvalidated' error string to explain that the error is triggered by a transaction that would deplete funds already reserved for potential future anchor channel closings (via CPFP) and that more information (e.g., specific sat amounts) can be found in the debug logs.
Misc
- The direct use of certain syscalls in packages such as
bbolt
orlnd
's ownhealthcheck
package made it impossible to importlnd
code as a library into projects that are compiled to WASM binaries. That problem was fixed by guarding those syscalls with build tags.
Code Health
Code cleanup, refactor, typo fixes
-
Refactor the interaction between the
htlcswitch
andpeer
packages for cleaner separation. -
Shorten Pull Request check list by referring to the CI checks that are in place.
-
Bumped version of
github.com/miekg/dns
library to fix a Dependabot alert. -
Fixed transaction not found in mempool flake in commitment deadline itest.
-
Fixed a missing import and git tag in the healthcheck package.
-
Fixed context leak in integration tests, and properly handled context timeout.
Database
-
Ensure single writer for legacy code when using etcd backend.
-
Optimized payment sequence generation to make LNDs payment throughput (and latency) with better when using etcd.
-
More robust commit queue design to make it less likely that we retry etcd transactions and make the commit queue more scalable.
Performance improvements
-
Update MC store in blocks to make payment throughput better when using etcd.
-
The
lnwire
package now uses a write buffer pool when encoding/decoding messages. Such that most of the heap escapes are fixed, resulting in less memory being used when runninglnd
.
Log system
Bug Fixes
A bug has been fixed that would cause lnd
to try to bootstrap using the
currnet DNS seeds when in SigNet
mode.
A validation check for sane CltvLimit
and FinalCltvDelta
has been added for REST
-initiated payments.
Documentation
Contributors (Alphabetical Order)
- Andras Banki-Horvath
- de6df1re
- ErikEk
- Eugene Siegel
- Martin Habovstiak
- Oliver Gugger
- xanoni
- Yong Yu
- Zero-1729