Bitcoin Forum
February 21, 2019, 05:02:26 PM *
News: Latest Bitcoin Core release: 0.17.1 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Submitting CPFP transaction with zero-fee parent  (Read 152 times)
domob
Legendary
*
Offline Offline

Activity: 1049
Merit: 1078


View Profile WWW
February 06, 2019, 09:51:59 AM
Merited by LoyceV (2), aliashraf (2), joniboini (2), d5000 (1), ETFbitcoin (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
1550768546
Hero Member
*
Offline Offline

Posts: 1550768546

View Profile Personal Message (Offline)

Ignore
1550768546
Reply with quote  #2

1550768546
Report to moderator
1550768546
Hero Member
*
Offline Offline

Posts: 1550768546

View Profile Personal Message (Offline)

Ignore
1550768546
Reply with quote  #2

1550768546
Report to moderator
Your Bitcoin transactions
The Ultimate Bitcoin mixer
made truly anonymous.
with an advanced technology.
Mix coins
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
1550768546
Hero Member
*
Offline Offline

Posts: 1550768546

View Profile Personal Message (Offline)

Ignore
1550768546
Reply with quote  #2

1550768546
Report to moderator
1550768546
Hero Member
*
Offline Offline

Posts: 1550768546

View Profile Personal Message (Offline)

Ignore
1550768546
Reply with quote  #2

1550768546
Report to moderator
1550768546
Hero Member
*
Offline Offline

Posts: 1550768546

View Profile Personal Message (Offline)

Ignore
1550768546
Reply with quote  #2

1550768546
Report to moderator
aliashraf
Hero Member
*****
Online Online

Activity: 728
Merit: 586


View Profile
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
ETFbitcoin
Legendary
*
Online Online

Activity: 1596
Merit: 1555

Use SegWit and enjoy lower fees.


View Profile WWW
February 06, 2019, 07:02:00 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?

aliashraf
Hero Member
*****
Online Online

Activity: 728
Merit: 586


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

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: 1680
Merit: 2085


bc1qshxkrpe4arppq89fpzm6c0tpdvx5cfkve2c8kl


View Profile WWW
February 06, 2019, 08:21:27 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.

aliashraf
Hero Member
*****
Online Online

Activity: 728
Merit: 586


View Profile
February 06, 2019, 10:30:06 PM
 #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?
achow101
Moderator
Legendary
*
expert
Offline Offline

Activity: 1680
Merit: 2085


bc1qshxkrpe4arppq89fpzm6c0tpdvx5cfkve2c8kl


View Profile WWW
February 07, 2019, 02:05:08 AM
Merited by aliashraf (2), ETFbitcoin (1), bones261 (1)
 #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.
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
Legendary
*
Offline Offline

Activity: 1049
Merit: 1078


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

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
*
Online Online

Activity: 2016
Merit: 1110



View Profile WWW
February 07, 2019, 10:39:33 AM
 #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/

ETFbitcoin
Legendary
*
Online Online

Activity: 1596
Merit: 1555

Use SegWit and enjoy lower fees.


View Profile WWW
February 07, 2019, 05:45:02 PM
Merited by aliashraf (2)
 #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.

buwaytress
Hero Member
*****
Online Online

Activity: 896
Merit: 807


I bit, therefore I am


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

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.

Pages: [1]
  Print  
 
Jump to:  

Bitcointalk.org is not available or authorized for sale. Do not believe any fake listings.
Sponsored by , a Bitcoin-accepting VPN.
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!