lnd: [bug]: unable to bump a channel open transaction
Background
Bumping the UTXO with lncli wallet bumpfee --conf_target 3 0891630eac3c56a538b28947ebbf356530d550e68081ff2cdf4d10f2a210cb38:0
, no error reported. After exactly 30 seconds the CPFP tx is created and instantly removed as “invalid”, it’s never broadcasted. Tried the same with --sat_per_vbyte
with any number up to 20, same outcome.
Mar 11 11:09:28 fullnode lnd[1252982]: 2023-03-11 11:09:28.529 [INF] SWPR: Candidate sweep set of size=1 (+0 wallet inputs), has yield=0.00519214 BTC, weight=397
Mar 11 11:09:28 fullnode lnd[1252982]: 2023-03-11 11:09:28.531 [INF] SWPR: Sweep candidates at height=780267 with fee_rate=1886 sat/kw, yield 1 distinct txns
Mar 11 11:09:58 fullnode lnd[1252982]: 2023-03-11 11:09:58.534 [INF] SWPR: Candidate sweep set of size=1 (+0 wallet inputs), has yield=0.00519214 BTC, weight=397
Mar 11 11:09:58 fullnode lnd[1252982]: 2023-03-11 11:09:58.539 [INF] SWPR: Creating sweep transaction 199a1f155bbc523e8a9328177211f7deaf1145a756dfbebf38d4c4ec7e7b48d1 for 1 inputs (0891630eac3c56a538b28947ebbf356530d550e68081ff2cdf4d10f2a210cb38:0 (TaprootPubKeySpend)) using 1886 sat/kw, tx_weight=445, tx_fee=0.00000839 BTC, parents_count=0, parents_fee=0 BTC, parents_weight=0
Mar 11 11:09:58 fullnode lnd[1252982]: 2023-03-11 11:09:58.545 [INF] LNWL: Inserting unconfirmed transaction 199a1f155bbc523e8a9328177211f7deaf1145a756dfbebf38d4c4ec7e7b48d1
Mar 11 11:09:58 fullnode lnd[1252982]: 2023-03-11 11:09:58.637 [INF] LNWL: Removed invalid transaction: (*wire.MsgTx)(0x405e051580)({
Mar 11 11:09:58 fullnode lnd[1252982]: Version: (int32) 2,
Mar 11 11:09:58 fullnode lnd[1252982]: TxIn: ([]*wire.TxIn) (len=1 cap=15) {
Mar 11 11:09:58 fullnode lnd[1252982]: (*wire.TxIn)(0x4053df5aa0)({
Mar 11 11:09:58 fullnode lnd[1252982]: PreviousOutPoint: (wire.OutPoint) 0891630eac3c56a538b28947ebbf356530d550e68081ff2cdf4d10f2a210cb38:0,
Mar 11 11:09:58 fullnode lnd[1252982]: SignatureScript: ([]uint8) <nil>,
Mar 11 11:09:58 fullnode lnd[1252982]: Witness: (wire.TxWitness) (len=1 cap=1) {
Mar 11 11:09:58 fullnode lnd[1252982]: ([]uint8) (len=64 cap=64) {
Mar 11 11:09:58 fullnode lnd[1252982]: 00000000 1f b9 b7 0b 8f 8c 52 45 23 1b e9 db 23 23 bd 8f |......RE#...##..|
Mar 11 11:09:58 fullnode lnd[1252982]: 00000010 64 9f 65 cd a8 b0 72 4d 44 f2 87 cc ce 90 d3 13 |d.e...rMD.......|
Mar 11 11:09:58 fullnode lnd[1252982]: 00000020 c5 2b fb 12 ec d8 43 eb bb 95 83 a3 04 57 3e 92 |.+....C......W>.|
Mar 11 11:09:58 fullnode lnd[1252982]: 00000030 de 53 55 7e 61 d1 9d 5e 60 17 b9 73 d1 21 f2 aa |.SU~a..^`..s.!..|
Mar 11 11:09:58 fullnode lnd[1252982]: }
Mar 11 11:09:58 fullnode lnd[1252982]: },
Mar 11 11:09:58 fullnode lnd[1252982]: Sequence: (uint32) 0
Mar 11 11:09:58 fullnode lnd[1252982]: })
Mar 11 11:09:58 fullnode lnd[1252982]: },
Mar 11 11:09:58 fullnode lnd[1252982]: TxOut: ([]*wire.TxOut) (len=1 cap=15) {
Mar 11 11:09:58 fullnode lnd[1252982]: (*wire.TxOut)(0x4038a97620)({
Mar 11 11:09:58 fullnode lnd[1252982]: Value: (int64) 519123,
Mar 11 11:09:58 fullnode lnd[1252982]: PkScript: ([]uint8) (len=34 cap=500) {
Mar 11 11:09:58 fullnode lnd[1252982]: 00000000 51 20 90 2d 57 a5 43 f7 cd 75 f1 55 58 03 89 fd |Q .-W.C..u.UX...|
Mar 11 11:09:58 fullnode lnd[1252982]: 00000010 1c 7e 82 b3 4d f7 d7 96 23 73 fc a2 6c eb e5 7f |.~..M...#s..l...|
Mar 11 11:09:58 fullnode lnd[1252982]: 00000020 58 b0 |X.|
Mar 11 11:09:58 fullnode lnd[1252982]: }
Mar 11 11:09:58 fullnode lnd[1252982]: })
Mar 11 11:09:58 fullnode lnd[1252982]: },
Mar 11 11:09:58 fullnode lnd[1252982]: LockTime: (uint32) 780267
Mar 11 11:09:58 fullnode lnd[1252982]: })
Mar 11 11:09:58 fullnode lnd[1252982]: 2023-03-11 11:09:58.640 [INF] NTFN: Canceling spend notification: spend_id=89, outpoint=0891630eac3c56a538b28947ebbf356530d550e68081ff2cdf4d10f2a210cb38:0, script=1 0000000000000000000000000000000000000000000000000000000000000000
Your environment
- version of
lnd
0.15.5 - which operating system (
uname -a
on *Nix) Raspbian testing amd64 - version of
btcd
,bitcoind
, or other backend bitcoind v24.0.0 - any other relevant environment details
About this issue
- Original URL
- State: closed
- Created a year ago
- Comments: 46 (3 by maintainers)
Finally worked… Thanks for your support guggero!
You need to bump the change output, so try
lncli wallet bumpfee --sat_per_byte 20 e230f9f104421b9386354c7708ca9e0f9994e10f98f51ce76f1e32a320f71309:1
instead.Hi everyone,
First of all, thank you all for the great effort in make LND running in our own home nodes. The help you provide is highly appreciated.
I’ve been facing a similar problem to this since yesterday, in particular with transaction:
e230f9f104421b9386354c7708ca9e0f9994e10f98f51ce76f1e32a320f71309
. I erroneously tip 1 sat/vB instead of 10, and even if I can see the transaction in the meempool, my node is not able to bump the fee.What I am doing is the following:
lncli wallet publishtx 0200000000010102e5d8c103d3f87c48567d0d20ad0cac7416b7046944530448a94eb784bca2320000000000000000000240420f0000000000220020ab5285033019fa81163922c9f7741c8b743507678648fb457772415a18ebaebe1ac62d00000000002251207c2c105f7b88b72377cab2fc6a21a1a4bb3a007e48e77db106a0bd867c22db2302483045022100c24aa8ff883fc6d943d5756ba6e0076a300b79d0ab4d8836fe329a36aa9a60be02205d8bfc69eb36e8adce582613b1a2b1f075a994d783b5580a3be08c894bb81a81012103ded649cbcd2b884983d572405e4f051274b896e6145280cc9c386937bd503ba200000000
Result:
{ "txid": "e230f9f104421b9386354c7708ca9e0f9994e10f98f51ce76f1e32a320f71309" }
lncli wallet bumpfee --sat_per_byte 20 e230f9f104421b9386354c7708ca9e0f9994e10f98f51ce76f1e32a320f71309:0
Result:[lncli] rpc error: code = Unknown desc = the passed output does not belong to the wallet
lncli wallet releaseoutput e230f9f104421b9386354c7708ca9e0f9994e10f98f51ce76f1e32a320f71309:0
And the result is:
[lncli] rpc error: code = Unknown desc = unknown output
Do you have any idea of to proceed to unlock this transaction?
@rkfg are you running a node w/ default settings? If so, then your node might have dropped the tx out of the mempool. You can increase the mempool size, then confirm that lnd does a rebroadcast on start up. After that, you should be able to do the fee bump.
Hi guggero, Just to make sure I am doing right, the file to edit is: bitcoin.conf? I use umbrel, the pathway for me is showing: ./app-data/bitcoin/data/bitcoin/bitcoin.conf
Thank you!
No, you need to edit your bitcoind’s config file and add
maxmempool=512
.Okay, nice!
Yeah, kudos to Roasbeef for figuring that out, I guess I got side tracked fearing it might be something worse. I think we can do the following on the
lnd
side:v0.16.0-beta
.mempoolminfee
field of thegetmempoolinfo
RPC that was added withbitcoind v0.21.0
and reject creating any transactions below that fee. That won’t solve the issue for Neutrino though, as we don’t have access to that fee rate info. --> Going to create a new issue for this.Oooooffff, it finally worked: https://mempool.space/tx/ebfc6b2247142c8490a20c4c9ff95fdccd4b9018f136496b32363935989c793a
Thanks, this rebroadcast and bump helped. I increased the mempool but I think it’s not really needed as I disabled persisting it on disk long ago, it takes enormous load on RPi when I restart bitcoind so just dropping it is much better. After restart it should have plenty of space before repopulating with new txs but anyway, I guess it wouldn’t eat all the remaining RAM with 512 Mb limit.
Okay, now we have a bunch of issues to fix when working in a congested environment. Unfortunately, it’s gonna be like that in the foreseeable future. One of the big problems is that I didn’t have this tx among my wallet txs until I rebroadcasted it. Kinda makes sense after resetting the wallet txs because channel open tx can’t be derived directly from the seed if I understand it right, it includes two node pubkeys, and in my case there are 2 channels and one change output. So if mempool.space didn’t save this tx I’m not sure how I’d have recovered it.
The enhancements I’d suggest:
Guess that’s it. Feel free to close this issue as it’s technically solved, or maybe it’s good to keep it around until a better mempool congestion mitigation is implemented.
The TX is likely being removed (as in the first log), as the input is an unknown, since the transaction that created the input (funding tx) isn’t in the mempool of your node.
Sent you a message on Nostr