Bitcoin Forum
April 25, 2024, 09:54:53 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Submitting CPFP transaction with zero-fee parent  (Read 264 times)
domob (OP)
Legendary
*
Offline Offline

Activity: 1135
Merit: 1161


View Profile WWW
February 06, 2019, 09:51:59 AM
Merited by LoyceV (2), joniboini (2), aliashraf (2), d5000 (1), ABCbits (1), darosior (1)
 #1

Suppose that I have two Bitcoin transactions:  Tx A pays no transaction fees at all.  Tx B spends an output from Tx A and pays fees covering both transactions.  Now in general CPFP should allow me to get both transactions mined together.

But is it actually possible to submit them somehow to the network "as a package"?  If I try to submit them using "submitrawtransaction", I cannot do so because Tx A is rejected (not meeting min relay fee) and Tx B obviously can't be submitted before Tx A is.

(The reason why I'm interested in this is the following:  For a particular decentralised asset exchange I would like to allow makers to create Tx A corresponding to an order and publish them off-chain to some communication platform - they should not need to pay a fee for that.  Only if someone wants to actually take the offer then they would build Tx B on top of it, pay transaction fees, and submit both together.)

Use your Namecoin identity as OpenID: https://nameid.org/
Donations: 1domobKsPZ5cWk2kXssD8p8ES1qffGUCm | NMC: NCdomobcmcmVdxC5yxMitojQ4tvAtv99pY
BM-GtQnWM3vcdorfqpKXsmfHQ4rVYPG5pKS | GPG 0xA7330737
1714038893
Hero Member
*
Offline Offline

Posts: 1714038893

View Profile Personal Message (Offline)

Ignore
1714038893
Reply with quote  #2

1714038893
Report to moderator
"If you don't want people to know you're a scumbag then don't be a scumbag." -- margaritahuyan
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
aliashraf
Legendary
*
Offline Offline

Activity: 1456
Merit: 1174

Always remember the cause!


View Profile WWW
February 06, 2019, 12:36:27 PM
Last edit: February 06, 2019, 12:50:46 PM by aliashraf
 #2

OP, I've come to this requirement for a kinda similar application and AFAIK bitcoin doesn't support a strong mechanism for such applications, because incentivising by fee system does not guarantee a smooth and predictable behavior and for my use case, miners would be able to censor the second txn and seize the funds as the parent is an ANYONE_CAN_SPEND txn.

As of my primary assessments the  solution appears to be a nested transaction mechanism (rather than packaging)  in which the child txn embeds the parent in a way that only the two of them can be relayed/verified at once and in a same block. I have thought about a soft-fork proposal for this.

I've discussed it a bit more in details (I mean a bit) here:
https://bitcointalk.org/index.php?topic=4702304.msg49545770#msg49545770
aliashraf
Legendary
*
Offline Offline

Activity: 1456
Merit: 1174

Always remember the cause!


View Profile WWW
February 06, 2019, 07:20:05 PM
 #3

Interesting idea Smiley

A bit off-topic, after a node receive new block (on compact-block format), a nodes would request other node all transaction which isn't exist on it's mempool but listed on the compact-blocks. Now i wonder if similar mechanism is exist for CPFP transaction?
As of now, there is no such thing as asking for a missing utxo embedded in a block and I don't see a reasonable logic behind such a behavior. All inputs of all txns included in a block, should be either already present in the UTXO and blockchain history or in the block body.

It is also worth mentioning that this specific problem is about transaction relay phase and how txns find their way into the mempool and not the blocks and how they are validated and added into the chain.

One simple solution for this problem would be  improving txn relay (no consensus, no fork) to allow txns with missing inputs remain like few minutes in quarantine and improve "minimum fee" logic to support more sophisticated scenarios (the same as how miners pick txns from the mempool) but I prefer a more radical approach (as usual  Tongue) which is supporting nested transactions to help with more general use cases and to guarantee a deterministic relationship between the parent  txn and its child.
achow101
Moderator
Legendary
*
expert
Offline Offline

Activity: 3374
Merit: 6535


Just writing some code


View Profile WWW
February 06, 2019, 08:21:27 PM
 #4

But is it actually possible to submit them somehow to the network "as a package"?
Unfortunately there is not. However there was some discussion about this and I believe someone is working on it.

aliashraf
Legendary
*
Offline Offline

Activity: 1456
Merit: 1174

Always remember the cause!


View Profile WWW
February 06, 2019, 10:30:06 PM
 #5

But is it actually possible to submit them somehow to the network "as a package"?
Unfortunately there is not. However there was some discussion about this and I believe someone is working on it.
Would you please do some digging and submit a link?
achow101
Moderator
Legendary
*
expert
Offline Offline

Activity: 3374
Merit: 6535


Just writing some code


View Profile WWW
February 07, 2019, 02:05:08 AM
Merited by aliashraf (2), ABCbits (1), bones261 (1)
 #6

But is it actually possible to submit them somehow to the network "as a package"?
Unfortunately there is not. However there was some discussion about this and I believe someone is working on it.
Would you please do some digging and submit a link?
https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018-November/016518.html

That message and thread talks about CPFP and Lightning. It brings up package relay since that is a prerequisite for that.

domob (OP)
Legendary
*
Offline Offline

Activity: 1135
Merit: 1161


View Profile WWW
February 07, 2019, 07:24:20 AM
 #7

But is it actually possible to submit them somehow to the network "as a package"?
Unfortunately there is not. However there was some discussion about this and I believe someone is working on it.

Thanks for confirming that I didn't simply miss a way to do that - and thanks for the very interesting reference (posted later)!

Use your Namecoin identity as OpenID: https://nameid.org/
Donations: 1domobKsPZ5cWk2kXssD8p8ES1qffGUCm | NMC: NCdomobcmcmVdxC5yxMitojQ4tvAtv99pY
BM-GtQnWM3vcdorfqpKXsmfHQ4rVYPG5pKS | GPG 0xA7330737
Abdussamad
Legendary
*
Offline Offline

Activity: 3598
Merit: 1560



View Profile
February 07, 2019, 10:39:33 AM
 #8

some mining pools will mine your transaction for you if you pay them. viabtc has this service. it takes tx id as input thought. you could try broadcasting via the tool on their site. it may accept zero fee transactions. if it does it'll return a tx id which you can use.

another one is btc.com: https://pushtx.btc.com/
ABCbits
Legendary
*
Offline Offline

Activity: 2856
Merit: 7404


Crypto Swap Exchange


View Profile
February 07, 2019, 05:45:02 PM
Merited by aliashraf (2)
 #9

some mining pools will mine your transaction for you if you pay them. viabtc has this service. it takes tx id as input thought. you could try broadcasting via the tool on their site. it may accept zero fee transactions. if it does it'll return a tx id which you can use.

another one is btc.com: https://pushtx.btc.com/

AFAIK most free transaction accelerator can't/don't accept transaction with low fees or transaction which isn't exist on their pool

While it's possible to "bypass" default minrelayfees with paid transaction accelerator, it's ridiculous idea as you'd pay more than 192 satoshi (1 sat/byte for common transaction) and risking de-anonymization.

█▀▀▀











█▄▄▄
▀▀▀▀▀▀▀▀▀▀▀
e
▄▄▄▄▄▄▄▄▄▄▄
█████████████
████████████▄███
██▐███████▄█████▀
█████████▄████▀
███▐████▄███▀
████▐██████▀
█████▀█████
███████████▄
████████████▄
██▄█████▀█████▄
▄█████████▀█████▀
███████████▀██▀
████▀█████████
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
c.h.
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
▀▀▀█











▄▄▄█
▄██████▄▄▄
█████████████▄▄
███████████████
███████████████
███████████████
███████████████
███░░█████████
███▌▐█████████
█████████████
███████████▀
██████████▀
████████▀
▀██▀▀
buwaytress
Legendary
*
Offline Offline

Activity: 2786
Merit: 3437


Join the world-leading crypto sportsbook NOW!


View Profile
February 08, 2019, 11:50:16 AM
 #10

some mining pools will mine your transaction for you if you pay them. viabtc has this service. it takes tx id as input thought. you could try broadcasting via the tool on their site. it may accept zero fee transactions. if it does it'll return a tx id which you can use.

another one is btc.com: https://pushtx.btc.com/

AFAIK most free transaction accelerator can't/don't accept transaction with low fees or transaction which isn't exist on their pool

While it's possible to "bypass" default minrelayfees with paid transaction accelerator, it's ridiculous idea as you'd pay more than 192 satoshi (1 sat/byte for common transaction) and risking de-anonymization.

Viabtc itself has a min fee/byte range, which is pretty high actually as I recall.

But antpool's accelerator (still free) has in the past accepted 0 fee or even below 1 sat/byte fees. In fact, as long as it's in mempool somewhere, antpool will add it to queue.

Only problem is you've to submit a TX id so if nodes won't accept your transaction anymore, and you can't broadcast from Electrum anymore... then you're still stuck.

██
██
██
██
██
██
██
██
██
██
██
██
██
... LIVECASINO.io    Play Live Games with up to 20% cashback!...██
██
██
██
██
██
██
██
██
██
██
██
██
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!