Author

Topic: is it possible to cancel a transaction once sent? (Read 962 times)

legendary
Activity: 980
Merit: 1008
There was a suggestion for being able to "add" fees to an existing tx to ensure it does get processed but I am not sure whether this idea has been looked into in detail yet.
There is the feature where the recipient can then spend the yet unconfirmed funds and pay a fee that will incent the miner to include both transactions to earn the fee.
As far as I can, see the ability to modify an unconfirmed transactions needs to be implemented at some point, since mining fees can't be properly determined unless miners are willing to replace an unconfirmed transaction with a new one that includes a higher fee.

If the punishment for not including a high enough fee is literally locking the coins in that transaction, then there is no way to determine - for a sender - how low a fee he can include.

This will, of course, make accepting unconfirmed transactions more risky, but I think accepting these is bad practice anyway, and the negative consequences of not being able to determine the lowest possible fee is worse than being somewhat able to rely on unconfirmed transactions - which were never reliable in the first place.

At some point I think the Satoshi client will need to implement this, since when mining competition increases, miners who see two transactions spending the same output will have financial incentive to include the one with the highest fees, regardless of if this transaction was sent out later. The miners trying to make unconfirmed transactions more reliable, by not including the same transaction with a higher fee if it is seen later, will lose revenue compared to the other miners, and will have a harder time staying in business.
legendary
Activity: 2506
Merit: 1010
There was a suggestion for being able to "add" fees to an existing tx to ensure it does get processed but I am not sure whether this idea has been looked into in detail yet.


There is the feature where the recipient can then spend the yet unconfirmed funds and pay a fee that will incent the miner to include both transactions to earn the fee.


CreateNewBlock: Child-pays-for-parent / Add transaction fee later
 - https://github.com/bitcoin/bitcoin/pull/1647


That is in a "next" version of the client:

Please test (if you dare): next and next-test 2012-09-20
 - http://bitcointalk.org/?topic=110898.0


Also what would prevent this is:

improve dust spamming prevention algorithm
 - https://github.com/bitcoin/bitcoin/pull/1536
legendary
Activity: 1596
Merit: 1100
After playing some satoshidice I had a lot of 'dust' in my wallet.  I made a transaction that combined a bunch of 0.00000001 outputs with some old large outputs in an attempt to tidy up my wallet a little.  The satoshi client determined that no fee was required, and so sent the transaction without a fee.

The miners seem to disagree.  The transaction isn't getting into blocks.  I expect if I wait long enough it will happen, but I'm wondering whether there's any way to cancel the transaction and send it again with a fee this time.

Right now the answer is lame:  wait a while.  If you don't see it confirmed, hope that it is forgotten by miners and network and initiate manual wallet coin recovery.  Double-spend with additional fees, and hope that works.

There is a proposal on bitcoin-devel for giving transactions a defined lifetime in the "memory pool", after which they are ejected.  Since the bitcoin client has designed from Day One to periodically resend unconfirmed transactions, this should increase the probability that you can cancel/update a transaction.

legendary
Activity: 1890
Merit: 1086
Ian Knowles - CIYAM Lead Developer
There was a suggestion for being able to "add" fees to an existing tx to ensure it does get processed but I am not sure whether this idea has been looked into in detail yet.
hero member
Activity: 826
Merit: 500
let it take the time... it will be in the chain sooner or later.
legendary
Activity: 1064
Merit: 1001
I think the only thing you can do is just tiptoe around and hope that the network collectively forgets about it, which should happen given time.
legendary
Activity: 2940
Merit: 1333
After playing some satoshidice I had a lot of 'dust' in my wallet.  I made a transaction that combined a bunch of 0.00000001 outputs with some old large outputs in an attempt to tidy up my wallet a little.  The satoshi client determined that no fee was required, and so sent the transaction without a fee.

The miners seem to disagree.  The transaction isn't getting into blocks.  I expect if I wait long enough it will happen, but I'm wondering whether there's any way to cancel the transaction and send it again with a fee this time.

I tried using the raw transaction features of the new client, but when I try to send the raw transaction I get an error:

  error: {"code":-22,"message":"TX rejected"}

Presumably it's detecting the double-spend.

I tried using a new empty wallet which allowed me to send the raw transaction, but it's not showing up on blockchain.info so I guess now the network is rejecting it rather than my client rejecting it.
Jump to: