Merge pull request #6966 from guggero/remote-signer-fix

lncli+docs: fix and document remote signing setup upgrade to lnd v0.15.2-beta
This commit is contained in:
Oliver Gugger 2022-10-05 13:13:11 +02:00 committed by GitHub
commit 2efc70a5c4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 45 additions and 3 deletions

View file

@ -93,9 +93,11 @@ func parseAddrType(addrTypeStr string) (walletrpc.AddressType, error) {
return walletrpc.AddressType_NESTED_WITNESS_PUBKEY_HASH, nil
case "np2wkh-p2wkh":
return walletrpc.AddressType_HYBRID_NESTED_WITNESS_PUBKEY_HASH, nil
case "p2tr":
return walletrpc.AddressType_TAPROOT_PUBKEY, nil
default:
return 0, errors.New("invalid address type, supported address " +
"types are: p2wkh, np2wkh, and np2wkh-p2wkh")
"types are: p2wkh, p2tr, np2wkh, and np2wkh-p2wkh")
}
}

View file

@ -34,6 +34,12 @@ were created after introducing the Taproot key
derivation](https://github.com/lightningnetwork/lnd/pull/6524) to simplify
detecting Taproot compatibility of a seed.
**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](../remote-signing.md#migrating-a-remote-signing-setup-from-014x-to-015x).
Please upgrade to `lnd v0.15.2-beta` or later directly!
## MuSig2
The [`signrpc.Signer` RPC service now supports EXPERIMENTAL MuSig2

View file

@ -44,6 +44,12 @@ supports the feature.](https://github.com/lightningnetwork/lnd/pull/6633)
The [wallet also creates P2TR change addresses by
default](https://github.com/lightningnetwork/lnd/pull/6810) 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](../remote-signing.md#migrating-a-remote-signing-setup-from-014x-to-015x).
Please upgrade to `lnd v0.15.2-beta` or later directly!
## `lncli`
* [Add `payment_addr` flag to

View file

@ -14,15 +14,21 @@
* [A bug has been fixed that caused fee estimation to be incorrect for taproot
inputs when using the `SendOutputs` call.](https://github.com/lightningnetwork/lnd/pull/6941)
# Contributors (Alphabetical Order)
## Taproot
* [Add `p2tr` address type to account
import](https://github.com/lightningnetwork/lnd/pull/6966).
**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](../remote-signing.md#migrating-a-remote-signing-setup-from-014x-to-015x).
## Performance improvements
* [Refactor hop hint selection
algorithm](https://github.com/lightningnetwork/lnd/pull/6914)
# Contributors (Alphabetical Order)
* Eugene Siegel

View file

@ -153,6 +153,28 @@ To migrate an existing node, follow these steps:
a watch-only one (by purging all private key material from it) by adding the
`remotesigner.migrate-wallet-to-watch-only=true` configuration entry.
## Migrating a remote signing setup from 0.14.x to 0.15.x
If you were running a remote signing setup with `lnd v0.14.x-beta` and want to
upgrade to `lnd v0.15.x-beta`, you need to manually import the newly added
Taproot account to the watch-only node, otherwise you will encounter errors such
as `account 0 not found` when doing on-chain operations that require creating
(change) P2TR addresses.
**NOTE**: For this to work, you need to upgrade to at least `lnd v0.15.2-beta`
or later!
The upgrade process should look like this:
1. Upgrade the "signer" node to `lnd v0.15.x-beta` and unlock it.
2. Run `lncli wallet accounts list | grep -A5 TAPROOT` on the **"signer"** node
and copy the `xpub...` value from `extended_public_key`.
3. Upgrade the "watch-only" node to `lnd v0.15.x-beta` and unlock it.
4. Run `lncli wallet accounts import --address_type p2tr <xpub...> default` on
the **"watch-only"** node (notice the `default` account name at the end,
that's important).
5. Run `lncli newaddress p2tr` on the "watch-only" node to test that everything
works as expected.
## Example initialization script
This section shows an example script that initializes the watch-only wallet of