lnd v0.15.0 - Release Candidate 3

84 views
Skip to first unread message

Olaoluwa Osuntokun

unread,
May 24, 2022, 5:45:42 PM5/24/22
to lnd
Hi y'all,

The third release candidate for the upcoming 0.15 has been released!
Compared to the prior versions, this version is much more stable as some
kinks in the migration that allows for a 95% reduction in disk space
consumed by channel updates have been worked out. I'd expect at least one
more release candidate to patch a minor RPC issue we've found w/ the new
taproot PSBT signing capabilities.

The release itself can be found here:
https://github.com/lightningnetwork/lnd/releases/tag/v0.15.0-beta.rc3
 
With the current draft of release notes here:
https://github.com/lightningnetwork/lnd/blob/master/docs/release-notes/release-notes-0.15.0.md

This release certainly has arrived a bit later that we anticipated, but we
wanted to make sure all the new taproot functionality was a fully featured
as possible, and also wanted to ensure that we addresses the existing
database growth issues (w/ 0.15 it isn't much of any issue anymore). The
release also has nearly 50 contributors which is very exciting as it may be
the highest number of external contributions we've had in a release to date!

This release contains a number of important bug and stability fixes and the
following major features:

  * The amount of space needed to track revocation related channel state has
    been reduced by 96%! This release doesn't yet reclaim _old_ state
    however. This will be implemented via an optional migration scheduled to
    be packaged as part of 0.15.1.

  * Support for including payment meta data in invoices which can be used to
    implement stateless invoices.

  * Complete taproot support for the internal wallet, making it one of the
    most advanced taproot wallets today. With this release lnd has the
    ability to:

      * Generate P2TR addresses for receiving (`lncli newaddress p2tr), and
        also sending support both via bech32m.

      * Use the new PSBT extensions to fund+populate+validate an empty or
        complete PSBT, along with signing logic for: normal keyspend paths,
        BIP 86 keyspend paths, and also tapscript signing.

      * Import schnorr public keys to implement a watch-only P2TR wallet
        system.

    The aezeeed version has also been bumped to 1, which allows future
    wallet software to cut down on the amount of addresses it needs to
    search since the mnemonic itself encodes the capabilities of the
    wallet/seed. An offline tool will be provided for those that wish to
    "upgrade" the aezeed to version 1. Bumping the seed in this manner
    allows for any other 3rd party rescanning/import tool to be simplified
    as it doesn't need to prompt the user for: legacy, segwit, taproot, etc.

  * Support for an experimental musig2 API compliant with the latest BIP
    draft. This is marked as experimental as things may still change, but
    the set of APIs are complete enough for Lightning Labs to begin
    integrating musig2 based multi-party signing into various systems we
    operate. Care has been taken to make the API hard to misuse via the way
    it manages nonce/session state.

  * Neutrino now supports BIP 155, meaning it can connect to Tor v3 hidden
    services.

  * Neutrino also has a brand new sub-server
    (https://api.lightning.community/#service-neutrinokit) which allows
    users to do things like connect/disconnect peers, fetch headers/blocks,
    etc. Future iterations will enable functionality such as doing custom
    rescans using the filters and also introspecting further into the sync
    state.

  * A new polling option for bitcoind has been added! This gives users that
    don't run bitcoind w/ zmq compiled in another option. A series of new
    options have been added that control the transaction+block polling
    interval.

  * A new `time_pref` option has been added to the payment APIs which allow
    a user to control the trade-off between payment execution speed and
    total fees spent. A value of -1 means optimize for fees only (lowest
    cost route), 0 is default, and 1 attempts to optimize for reliability
    (based on the probabilistic model).

    The 0.16 release will ideally start to implement some path finding
    changes based on some active research on going in this area
    (https://github.com/lightningnetwork/lnd/issues/5988#issuecomment-1131234858).

  * The HTLC interoceptor can now be notified of HTLCs that hit the chain,
    and also have full control over failure messages.

  * All mobile sub-servers are now built by default, which means lnd nodes
    running on mobile platforms gain access to things like the new musig2
    signing API, and all the existing on-chain monitoring/confirmation APIs.

  * A new flag (`--prometheus.perfhistograms=true`) has been added which
    allows Prometheus to scrape gRPC related perf/latency information. This
    can be used to keep track of performance degradations or unintended RPC
    load.

I'm probably missing some things, but check out the full release notes for
the rest of the details!

In terms of future releases, we plan to fast follow with an 0.15.1 release
that includes some items that didn't quite make it into 0.15. From there
0.16 will attempt to return back to the normal quarterly-ish schedule which
will target some additional fundamental database improvements, and also an
early version of private taproot channels amongst other things.

As usual, feel free to reach out to me if you have any questions/concerns
w.r.t updating.

-- Laolu
Reply all
Reply to author
Forward
0 new messages