lnd/docs/release-notes/release-notes-0.14.0.md

11 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.

LN Peer-to-Peer Netowrk

Bitcoin Blockheaders in Ping Messages

In this release, we implement a long discussed mechanism to use the Lightning Network as a redundant block header source. By sending our latest block header with each ping message, we give peers another source (outside of the Bitcoin P2P network) they can use to spot check their chain state. Peers can also use this information to detect if they've been eclipsed from the traditional Bitcoin P2P network itself.

As is, we only send this data in Ping messages (which are periodically sent), in the future we could also move to send them as the partial payload for our pong messages, and also randomize the payload size requested as well.

The ListPeers RPC call will now also include a hex encoded version of the last ping message the peer has sent to us.

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.

Protocol Extensions

Explicit Channel Negotiation

[A new protocol extension has been added known as explicit channel negotiation] (https://github.com/lightningnetwork/lnd/pull/5669). This allows a channel initiator to signal their desired channel type to use with the remote peer. If the remote peer supports said channel type and agrees, the previous implicit negotiation based on the shared set of feature bits is bypassed, and the proposed channel type is used.

RPC Server

Wallet

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

Build System

Documentation

Misc

Code Health

Code cleanup, refactor, typo fixes

Database

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 running lnd.

  • [lnd will now no longer (in a steady state) need to open a new database transaction each time a private key needs to be derived for signing or ECDH operations]https://github.com/lightningnetwork/lnd/pull/5629). This results in a massive performance improvement across several routine operations at the

  • [When decrypting incoming encrypted brontide messages on the wire, we'll now properly re-use the buffer that was allocated for the ciphertext to store the plaintext]https://github.com/lightningnetwork/lnd/pull/5622). When combined with the buffer pool, this ensures that we no longer need to allocate a new buffer each time we decrypt an incoming message, as we recycle these buffers in the peer.

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.

A bug has been fixed with Neutrino's RegisterConfirmationsNtfn and RegisterSpendNtfn calls that would cause notifications to be missed.

Documentation

The code contribution guidelines have been updated to mention the new requirements surrounding updating the release notes for each new change.

Contributors (Alphabetical Order)

  • Andras Banki-Horvath
  • de6df1re
  • ErikEk
  • Eugene Siegel
  • Martin Habovstiak
  • Oliver Gugger
  • Wilmer Paulino
  • xanoni
  • Yong Yu
  • Zero-1729