lightninglabs / chantools

A loose collection of tools all somehow related to lnd and Lightning Network channels.
MIT License
220 stars 32 forks source link

Zombie recovery error `error matching keys to script: address: must be a bech32 P2WPKH or P2WSH address` #133

Closed hsjoberg closed 1 month ago

hsjoberg commented 4 months ago

Hi, I'm getting the following error when trying to do a zombie recovery.

error matching keys to script: address: must be a bech32 P2WPKH or P2WSH address

Does zombie channel recovery support Taproot channels? This is a private taproot channel.

Cheers Hampus

guggero commented 4 months ago

No, Taproot Channels are currently not supported by chantools (or at least not in the zombie recovery flow).

hsjoberg commented 4 months ago

I see. Thank you for your reply

Darth-Coin commented 3 months ago

@guggero please can we have more "love" for this chantools update? There are a growing number of users of simple taproot channels that could end up in such situation. I think this is an important update for chantools. Thanks

guggero commented 2 months ago

@Darth-Coin see https://github.com/lightninglabs/chantools/pull/141. That wasn't easy at all... I had to:

Took me about 2 days of my precious spare time. So I hope you show some "love" back by testing, reviewing, whatever.

How do your users (@hsjoberg, @kaloudis) even get into this situation? Because the normal zombie matching process of node-recovery.com can't be it, since Simple Taproot channels are private only and will never be known by the wider graph. So IMO there need to be quite a few warning messages ignored and best practices violated for users to need to use this command in the first place. Maybe an app or LSP shouldn't rely on the existence of this command and instead assure proper backups and safety guidelines?

Darth-Coin commented 2 months ago

@guggero Thank you very much! How we end up in this shity situation? Exactly testing a lot all kind of situations with Zeus and Blixt. I explained in this discussion all I tested with Zeus: https://github.com/ZeusLN/zeus/discussions/2174

guggero commented 2 months ago

Ah, the classic, RBFing a channel funding transaction. It's interesting to me how many users there are who know enough to pull it off but not enough to know they shouldn't... Maybe it would be worth adding warnings to the RBF dialog in Sparrow/Electrum to inform users they shouldn't do it with channel funding transactions.

Darth-Coin commented 2 months ago

I end up importing the wallet into Sparrow because the opening channel and bump fee in Zeus was non-responsive. In Zeus you have the option to bump the fee, but in my case, without any warning or error message was not responding. So I thought that something is wrong with Zeus and wanted to try doing it from Sparrow.

Maybe, as you said, adding a warning message in Zeus, about the bumping fee, for that particular opening channel tx is not possible (due to x reason), so the user will know what is the cause and calm down.

guggero commented 2 months ago

@Darth-Coin any update on testing this?

Darth-Coin commented 2 months ago

@guggero oh sorry, I saw https://github.com/lightninglabs/chantools/pull/141 still open and I thought is not ready yet. Will talk with @hsjoberg to see if he's available to finish what we started. Thanks for heads up! Will get to you with a feedback after I finish with Hampus the recovery.

4rkad commented 1 month ago

About 15 days ago I had a forced closure on Zeus and I was waiting for 2 weeks to be able to access to onchain funds. I was unable to do so so I went to the Chantools documentation to recover them but I was unsuccessful. Looking at this thread I realized that my channel was opened with the Olympus LSP via taproot. Do I have to wait for an update to be able to recover the funds?

guggero commented 1 month ago

A normal force closure should just be resolved automatically by lnd within Zeus (assuming you didn't lose your channel state). So I'd just file an issue with them, perhaps it's another issue? You don't need to use chantools if you don't lose your channel state.