Bitcoin Forum
May 05, 2024, 10:42:14 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Unconscious CPFP (I presume)  (Read 175 times)
DdmrDdmr (OP)
Legendary
*
Offline Offline

Activity: 2310
Merit: 10758


There are lies, damned lies and statistics. MTwain


View Profile WWW
December 30, 2022, 06:55:20 AM
Last edit: December 30, 2022, 02:58:12 PM by DdmrDdmr
Merited by hugeblack (4), NeuroticFish (2), pooya87 (1), Lucius (1), Charles-Tim (1)
 #1

It’s never late to place a decent question on Beginners & Help (where I'd prefer it to have stayed):

Here’s a case I encountered the other day. I sent two consecutive TXs minutes apart, let’s call them TX1 and TX2, both from the same wallet, and sent to different recipients with seemingly (at the time) adequate fees to be processed within a block or two.
Since things were taking their time to be confirmed, and encountering a sudden spike in Bitcoin’s network activity, I bumped TX2 using RBF. I then (subsequently) tried doing likewise with TX1, but the wallet software would not let me. I therefore had TX2 in the mempool at a rate of let’s say 3x the fee of TX1.

Now when TX2 got confirmed, I also saw that TX1 also got confirmed within the same block. The weird thing was that TX2 was obviously within the block’s effectively processed min/max fee range, but TX1 was not (my fee on TX1 was way lower than that processed in the mined block).

Now In the aftermaths, I looked at the inputs and outputs, and saw that TX2 was using as an input TX1’s output change address. TX2 therefore depended on TX1.

Now here are the questions:

Q1) Would it be correct to infer that TX1 was mined alongside TX2 because what I pulled off was a CPFP (without using the wallet’s CPFP function, but by performing the steps I described above)?

Q2) Could the said dependency be the cause for the wallet not being able to apply RBF on TX1 (after successfully being able to do in on TX2)?
1714905734
Hero Member
*
Offline Offline

Posts: 1714905734

View Profile Personal Message (Offline)

Ignore
1714905734
Reply with quote  #2

1714905734
Report to moderator
1714905734
Hero Member
*
Offline Offline

Posts: 1714905734

View Profile Personal Message (Offline)

Ignore
1714905734
Reply with quote  #2

1714905734
Report to moderator
There are several different types of Bitcoin clients. The most secure are full nodes like Bitcoin Core, which will follow the rules of the network no matter what miners do. Even if every miner decided to create 1000 bitcoins per block, full nodes would stick to the rules and reject those blocks.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
Charles-Tim
Legendary
*
Offline Offline

Activity: 1540
Merit: 4845



View Profile
December 30, 2022, 07:30:09 AM
Last edit: December 30, 2022, 07:50:56 AM by Charles-Tim
Merited by pooya87 (2), DdmrDdmr (2)
 #2

Q1) Would it be correct to infer that TX1 was mined alongside TX2 because what I pulled off was a CPFP (without using the wallet’s CPFP function, but by performing the steps I described above)?
Yes, as long as they both have UTXO in connection (I mean spending from the same UTXO which is the UTXO in the transaction 1 change address that transaction 2 spend from). I have done this many times without using the wallet CPFP and it worked as the transaction are included into the same block. Transaction 2 is CPFP transaction.

.
.HUGE.
▄██████████▄▄
▄█████████████████▄
▄█████████████████████▄
▄███████████████████████▄
▄█████████████████████████▄
███████▌██▌▐██▐██▐████▄███
████▐██▐████▌██▌██▌██▌██
█████▀███▀███▀▐██▐██▐█████

▀█████████████████████████▀

▀███████████████████████▀

▀█████████████████████▀

▀█████████████████▀

▀██████████▀▀
█▀▀▀▀











█▄▄▄▄
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
.
CASINSPORTSBOOK
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
▀▀▀▀█











▄▄▄▄█
Upgrade00
Legendary
*
Offline Offline

Activity: 2030
Merit: 2173


Professional Community manager


View Profile WWW
December 30, 2022, 07:38:29 AM
 #3

Q1) Would it be correct to infer that TX1 was mined alongside TX2 because what I pulled off was a CPFP (without using the wallet’s CPFP function, but by performing the steps I described above)?

Q2) Could the said dependency be the cause for the wallet not being able to apply RBF on TX1 (after successfully being able to do in on TX2)?
• I would assume the same. In this situation TX2 would not be valid if the output from the change address (of TX1) is not included, and output would not be included if TX1 isn't confirmed, so the miner must have been compelled to include both into the block.

• I am not aware of how the link would prevent a bump of the fee.

.BEST..CHANGE.███████████████
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
██
███████████████
..BUY/ SELL CRYPTO..
DiMarxist
Full Member
***
Offline Offline

Activity: 280
Merit: 206



View Profile
December 30, 2022, 07:38:52 AM
 #4



Now here are the questions:

Q1) Would it be correct to infer that TX1 was mined alongside TX2 because what I pulled off was a CPFP (without using the wallet’s CPFP function, but by performing the steps I described above)?

Q2) Could the said dependency be the cause for the wallet not being able to apply RBF on TX1 (after successfully being able to do in on TX2)?


Newbies that are not well knowledgeable in the forum, bitcoin and mining won't understand the thread. We are to observe the comments from experts. If I may say TX1 and TX2 are two different Miners that confirm your transaction at the same time in coincident.

I don't think the dependency caused the RBF rejection but probably because TX1 was unconfirmed

hosseinimr93
Legendary
*
Offline Offline

Activity: 2394
Merit: 5235



View Profile
December 30, 2022, 08:14:39 AM
Merited by DdmrDdmr (2)
 #5

Q1) Would it be correct to infer that TX1 was mined alongside TX2 because what I pulled off was a CPFP (without using the wallet’s CPFP function, but by performing the steps I described above)?
Right. You did CPFP.
Your second transaction used the output of the first transaction and the miner had to include the first transaction as well.

When miners see a transactions spending an unconfirmed output, they usually calculate the effective fee rate and include the transactions (the child and the parent) in the same block if the fee rate is high enough.
For calculating the effective fee rate, they add the total fee of the transactions together and divide the result to the total size of transactions.

.
.BLACKJACK ♠ FUN.
█████████
██████████████
████████████
█████████████████
████████████████▄▄
░█████████████▀░▀▀
██████████████████
░██████████████
████████████████
░██████████████
████████████
███████████████░██
██████████
CRYPTO CASINO &
SPORTS BETTING
▄▄███████▄▄
▄███████████████▄
███████████████████
█████████████████████
███████████████████████
█████████████████████████
█████████████████████████
█████████████████████████
███████████████████████
█████████████████████
███████████████████
▀███████████████▀
█████████
.
nc50lc
Legendary
*
Online Online

Activity: 2408
Merit: 5588


Self-proclaimed Genius


View Profile
December 30, 2022, 08:18:41 AM
Merited by hugeblack (3), NeuroticFish (1), Charles-Tim (1)
 #6

Q1) Would it be correct to infer that TX1 was mined alongside TX2 because what I pulled off was a CPFP

Q2) Could the said dependency be the cause for the wallet not being able to apply RBF on TX1 (after successfully being able to do in on TX2)?
[A2] It depends on the client, for example in Bitcoin Core: you wont be able to replace the parent if it already has a child saved in your mempool or wallet.
In other clients, like Electrum: it's possible to replace the parent but by doing so, it will invalidate the children txns.

[A1] Yes

.
.HUGE.
▄██████████▄▄
▄█████████████████▄
▄█████████████████████▄
▄███████████████████████▄
▄█████████████████████████▄
███████▌██▌▐██▐██▐████▄███
████▐██▐████▌██▌██▌██▌██
█████▀███▀███▀▐██▐██▐█████

▀█████████████████████████▀

▀███████████████████████▀

▀█████████████████████▀

▀█████████████████▀

▀██████████▀▀
█▀▀▀▀











█▄▄▄▄
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
.
CASINSPORTSBOOK
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
▀▀▀▀█











▄▄▄▄█
DdmrDdmr (OP)
Legendary
*
Offline Offline

Activity: 2310
Merit: 10758


There are lies, damned lies and statistics. MTwain


View Profile WWW
December 30, 2022, 10:37:15 AM
 #7


<…>
That was the first time I recall encountering the situation on my end, likely because I tend to perform single widely spaced TXs in practice.

<…>
Whilst the casuistry is not necessarily common knowledge, it is a potential common situation that one may encounter, even though it took me quite a while to come across it myself in practical terms.

Both TXs were confirmed within the same block, so there’s no option for both TXs to have been deal with by different miners.

<…> In other clients, like Electrum: it's possible to replace the parent but by doing so, it will invalidate the children txns. <…>
I was actually using Electrum (mobile), but since I bumped TX2 (the child TX) I didn’t get a chance to see what would have happened to it (child TX2), had I bumped TX1 instead.
nc50lc
Legendary
*
Online Online

Activity: 2408
Merit: 5588


Self-proclaimed Genius


View Profile
December 30, 2022, 11:27:58 AM
Merited by DdmrDdmr (2)
 #8

<…> In other clients, like Electrum: it's possible to replace the parent but by doing so, it will invalidate the children txns. <…>
I was actually using Electrum (mobile), but since I bumped TX2 (the child TX) I didn’t get a chance to see what would have happened to it (child TX2), had I bumped TX1 instead.
If you're using Desktop, the child will suddenly vanish from your history and nodes will remove it from their mempool since its input(s) are now missing.
If the recipient of TX2 is also Electrum, it will appear as a "local transaction" instead of "unconfirmed parent", broadcasting it will just return with "input missing or spent error".

I haven't tested it in Mobile Electrum but based from the info in the OP, it seems like it's the same as Bitcoin Core where you wont be able to replace the txn if it has a child txn.
Interesting, I though both Android and Desktop versions work the same way.

.
.HUGE.
▄██████████▄▄
▄█████████████████▄
▄█████████████████████▄
▄███████████████████████▄
▄█████████████████████████▄
███████▌██▌▐██▐██▐████▄███
████▐██▐████▌██▌██▌██▌██
█████▀███▀███▀▐██▐██▐█████

▀█████████████████████████▀

▀███████████████████████▀

▀█████████████████████▀

▀█████████████████▀

▀██████████▀▀
█▀▀▀▀











█▄▄▄▄
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
.
CASINSPORTSBOOK
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
▀▀▀▀█











▄▄▄▄█
jackg
Copper Member
Legendary
*
Offline Offline

Activity: 2856
Merit: 3071


https://bit.ly/387FXHi lightning theory


View Profile
December 30, 2022, 05:19:14 PM
Merited by DdmrDdmr (2)
 #9

This is the only way I normally end up doing cpfp (to give myself a reason to send the other transaction) so it does work that way.

I think you set your fee a bit high if you did 3x the recommended.

Funds are spent in transactions by using the hash of the receiving transaction to reference the unspent funds, that's likely why you couldn't rbf the first transaction.

I had some funds to spend yesterday and I originally sent a low fee transaction and then did recommended and both were confirmed in the next block.
o_e_l_e_o
In memoriam
Legendary
*
Offline Offline

Activity: 2268
Merit: 18509


View Profile
December 31, 2022, 10:13:06 AM
 #10

Yeah, I would also have assumed that Electrum would have no issues RBFing the first transaction even if it invalidated the second one. The first transaction was definitely opted in to RBF?

I think you set your fee a bit high if you did 3x the recommended.
Not necessarily if the fee on the second transaction was also being used to bump the first. Most wallets and software will base their suggested fee only on the size of the child transaction, and will not include the size of any unconfirmed parent transactions. Depending on the sizes of the two transactions, you might end up needing 10x or more the recommended fee on the child transaction to get the combined fee for both transactions up to a suitable level.
khaled0111
Legendary
*
Offline Offline

Activity: 2520
Merit: 2853


Top Crypto Casino


View Profile WWW
December 31, 2022, 07:42:55 PM
 #11

Q1) Would it be correct to infer that TX1 was mined alongside TX2 because what I pulled off was a CPFP (without using the wallet’s CPFP function, but by performing the steps I described above)?
Yes, bacause on your wallet settings, the "Spend Unconfirmed" feature is turned on. To avoid this, either turn it off or use the coin control feature to select which UTXOs to spend.

Quote
Q2) Could the said dependency be the cause for the wallet not being able to apply RBF on TX1 (after successfully being able to do in on TX2)?
Not sure, but did you have enough balance to pay for the extra fee? Put in mind that the change you received from TX2 does not count as that transaction is not valid any more!

█████████████████████████
████▐██▄█████████████████
████▐██████▄▄▄███████████
████▐████▄█████▄▄████████
████▐█████▀▀▀▀▀███▄██████
████▐███▀████████████████
████▐█████████▄█████▌████
████▐██▌█████▀██████▌████
████▐██████████▀████▌████
█████▀███▄█████▄███▀█████
███████▀█████████▀███████
██████████▀███▀██████████
█████████████████████████
.
BC.GAME
▄▄░░░▄▀▀▄████████
▄▄▄
██████████████
█████░░▄▄▄▄████████
▄▄▄▄▄▄▄▄▄██▄██████▄▄▄▄████
▄███▄█▄▄██████████▄████▄████
███████████████████████████▀███
▀████▄██▄██▄░░░░▄████████████
▀▀▀█████▄▄▄███████████▀██
███████████████████▀██
███████████████████▄██
▄███████████████████▄██
█████████████████████▀██
██████████████████████▄
.
..CASINO....SPORTS....RACING..
█░░░░░░█░░░░░░█
▀███▀░░▀███▀░░▀███▀
▀░▀░░░░▀░▀░░░░▀░▀
░░░░░░░░░░░░
▀██████████
░░░░░███░░░░
░░█░░░███▄█░░░
░░██▌░░███░▀░░██▌
░█░██░░███░░░█░██
░█▀▀▀█▌░███░░█▀▀▀█▌
▄█▄░░░██▄███▄█▄░░▄██▄
▄███▄
░░░░▀██▄▀


▄▄████▄▄
▄███▀▀███▄
██████████
▀███▄░▄██▀
▄▄████▄▄░▀█▀▄██▀▄▄████▄▄
▄███▀▀▀████▄▄██▀▄███▀▀███▄
███████▄▄▀▀████▄▄▀▀███████
▀███▄▄███▀░░░▀▀████▄▄▄███▀
▀▀████▀▀████████▀▀████▀▀
nc50lc
Legendary
*
Online Online

Activity: 2408
Merit: 5588


Self-proclaimed Genius


View Profile
January 01, 2023, 11:07:53 AM
 #12

Quote
Q2) Could the said dependency be the cause for the wallet not being able to apply RBF on TX1 (after successfully being able to do in on TX2)?
Not sure, but did you have enough balance to pay for the extra fee? Put in mind that the change you received from TX2 does not count as that transaction is not valid any more!
If that's the case, TX2's input (TX1's change) is not enough to fill both transaction's total fee plus 1sat/vB rate of the replacement txn.

Electrum's default rbf behavior is: "decrease change, or add new inputs, or decrease any outputs" in particular order.
Replacing TX1 will invalidate TX2 anyways so it'll use TX2's input for additional fee.

.
.HUGE.
▄██████████▄▄
▄█████████████████▄
▄█████████████████████▄
▄███████████████████████▄
▄█████████████████████████▄
███████▌██▌▐██▐██▐████▄███
████▐██▐████▌██▌██▌██▌██
█████▀███▀███▀▐██▐██▐█████

▀█████████████████████████▀

▀███████████████████████▀

▀█████████████████████▀

▀█████████████████▀

▀██████████▀▀
█▀▀▀▀











█▄▄▄▄
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
.
CASINSPORTSBOOK
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
▀▀▀▀█











▄▄▄▄█
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!