ElementsProject / lightning

Core Lightning — Lightning Network implementation focusing on spec compliance and performance
Other
2.84k stars 901 forks source link

lnd interoperability: "Channel open canceled by us" #5713

Open C-Otto opened 1 year ago

C-Otto commented 1 year ago

Please see https://github.com/lightningnetwork/lnd/issues/7151 for details. My CLN peer didn't complete the "open channel" process and sends out the error "Channel open canceled by us" upon reconnection. My peer also seems to have issues fixing the state on their machine.

cdecker commented 1 year ago

This is caused by a call to fundchannel_cancel and is the intended behavior:

https://github.com/ElementsProject/lightning/blob/d4ead536529cd297705e12a4178e4956f13b7637/lightningd/opening_control.c#L1056-L1095

Not quite sure what you're referring to when it comes to "fixing the state" though. Could still be a multifundchannel accidentally cancelling a funding, or some plugin calling fundchannel_cancel that the node operator did not intend, but we'd need more information to say anything about that.

lightyear15 commented 1 year ago

Hello there, the other side "of the issue" so to speak Yes, we ended up here with a multifundchannel that went wrong. When retrying the same multifundchannel command LND nodes were sending me back

They sent error channel <redacted-account-id>: Number of pending channels exceed maximum

So I tried the fundchannel_close command to see if I could make the LND nodes forget the failed operation. Now trying to move funds somewhere else to see if empty UTXOs would convince nodes to foget about it.

C-Otto commented 1 year ago

Some nodes limit the number of pending channels from the same peer, in this case someone (not me) only allows one channel-open-attempt and refuses a second attempt until the first is done (either successfully or as a failure). This check takes your pubkey into account, so it would only help to use a different node/pubkey, or wait until the previous attempt(s) are finished.

WesVleuten commented 1 year ago

I'm also having this issue or a similar issue. I tried using multifundchannel but my transaction got denied with mempool min fee not met, 166 < 210 even though I had set feerate=14. Increasing it to 30 yielded the same result, then to 50 gave me Number of pending channels exceed maximum.

Channel openings seems stuck, with the input transaction seemingly being unused onchain. With the opening nowhere near the mempool. And me being able to "double spend" the input.

Is the feerate not properly respected when using multifundchannel? Could that be the root of this issue? Or am I misinterpreting this option?

btweenthebars commented 1 year ago

I ran into the "Number of pending channels exceed maximum" response from some peers before. The issue in general is by using multifundchannel to open many channels at once. if one channel fails with whatever reasons (for me, dualfund deamon crashed, a node replied minimum channel size too low, a node replied it was "syncing blockchain", etc) . CLN won't broadcast the tx, and the "pending" is on those nodes that it successfully initiated the intent. Some nodes has the setting of maximum pending, sometimes only 1. If it happens, I have to exclude such nodes from my multifund list. Usually it takes 2 weeks before they forget the pending.

It would be nice if there's a way to send some message to cancel the "pending", so multifund can do it automatically, or manually by the channel opener.