synonymdev / bitkit

Self-custodial Bitcoin and Lightning Wallet for Android and iOS.
https://bitkit.to
MIT License
116 stars 23 forks source link

[Bug]: Onchain transaction not found in Mempool #1576

Closed JeanlChristophe closed 7 months ago

JeanlChristophe commented 7 months ago

Describe the bug

I carried out two transactions:

  1. One was CPFP and impossible to find in the Mempool.
  2. The other was CPFP and impossible to find in the Mempool.

Reproduce

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Screenshots / Recording

https://github.com/synonymdev/bitkit/assets/46056211/bf7729e9-f1ae-4923-8b50-1f5c53f7ec32

Operating system

GrapheneOS

Bitkit version

v106

Log output

No response

JeanlChristophe commented 7 months ago

Same issue when I am trying to open channel (no-Cjit)

https://github.com/synonymdev/bitkit/assets/46056211/cddf0c84-9588-4cbd-9f3d-715890c1c888

thisispav commented 7 months ago

https://github.com/synonymdev/bitkit/assets/119061223/fc3c14d2-caf0-471a-8e5c-664f2307bef2

coreyphillips commented 7 months ago

Not everyone has the same mempool. Each mempool also purges transactions below a certain fee threshold. The Electrum server and corresponding Bitcoin Core node we use has a lower fee threshold than most so that we do not refuse to broadcast and/or purge low fee transactions during times of high fee volatility. This is why you are unable to see your broadcasted transaction in other services mempool until the fee threshold drops.

JeanlChristophe commented 7 months ago

However, we are not in a period of high fee volatility, plus:

coreyphillips commented 7 months ago

Two UI improvements/features we might want to consider to help improve this:

  1. Adjust the current "Potentially Low Fee" warning to include verbiage regarding being unable to see the transaction in the mempool until fee rates come down.
  2. Display the effective fee rate of any given transaction when unconfirmed instead of the actual fee rate of the given transaction. This will help reduce confusion if the transaction has multiple low-fee parent transactions that result in a lower effective fee-rate than the actual fee rate displayed in Bitkit
JeanlChristophe commented 7 months ago

hey. We tried to CPFP a transaction today and it doesn't work:

We first did a transaction with lo sat/vb. then we tried to boost it. Current fees are 15sat/vb and I setup a tx of 30/vb. now I am trying to find this tx f6b35a5bc2eecdd68ea532a15af7bde9ec38014bb77e58dd377a4dd5b45126b1 on the mempool but it doesn't appear.

https://mempool.space/tx/f6b35a5bc2eecdd68ea532a15af7bde9ec38014bb77e58dd377a4dd5b45126b1 Screenshot_20240312-142122

JeanlChristophe commented 7 months ago

We tried another transaction:

coreyphillips commented 7 months ago

From todays testing session it took several minutes for some transactions to eventually appear in some block explorer's mempool (blockstream & mempool specifically) even though the fees were set appropriately and were above the purge threshold.

@rbndg, would it be possible to more directly add mempool and blockstream nodes as peers with our Bitcoin Core node that Electrum is connected to? If so, this may help propagate our unconfirmed transactions and ensure they show up in their mempool/block-explorers faster and more reliably.

JeanlChristophe commented 7 months ago

On my side, 2 days after the issue, the tx is still not found by the mempool @coreyphillips

coreyphillips commented 7 months ago

Doubt it will get propagated at this point unless you CPFP or RBF.

JeanlChristophe commented 7 months ago

Sound to be fixed.

"Reza said he added more peers. If you do make a transaction, make sure that all of your utxo's and their parent transactions are confirmed. One theory I have is that in our testing session we first made an extremely small and low-fee tx. This could have resulted in it not being propagated by Bitcoin Core nor any of the child txs that followed. If that's the case, we might want to reconsider allowing extremely low-fee transactions in the app depending on network fee conditions."