Bitcoin Forum
May 10, 2024, 10:09:37 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: is it possible to cancel a transaction once sent?  (Read 941 times)
dooglus (OP)
Legendary
*
Offline Offline

Activity: 2940
Merit: 1330



View Profile
September 29, 2012, 04:03:42 PM
 #1

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.

Just-Dice                 ██             
          ██████████         
      ██████████████████     
  ██████████████████████████ 
██████████████████████████████
██████████████████████████████
██████████████████████████████
██████████████████████████████
██████████████████████████████
██████████████████████████████
██████████████████████████████
██████████████████████████████
██████████████████████████████
    ██████████████████████   
        ██████████████       
            ██████           
   Play or Invest                 ██             
          ██████████         
      ██████████████████     
  ██████████████████████████ 
██████████████████████████████
██████████████████████████████
██████████████████████████████
██████████████████████████████
██████████████████████████████
██████████████████████████████
██████████████████████████████
██████████████████████████████
██████████████████████████████
    ██████████████████████   
        ██████████████       
            ██████           
   1% House Edge
1715378977
Hero Member
*
Offline Offline

Posts: 1715378977

View Profile Personal Message (Offline)

Ignore
1715378977
Reply with quote  #2

1715378977
Report to moderator
1715378977
Hero Member
*
Offline Offline

Posts: 1715378977

View Profile Personal Message (Offline)

Ignore
1715378977
Reply with quote  #2

1715378977
Report to moderator
1715378977
Hero Member
*
Offline Offline

Posts: 1715378977

View Profile Personal Message (Offline)

Ignore
1715378977
Reply with quote  #2

1715378977
Report to moderator
The Bitcoin network protocol was designed to be extremely flexible. It can be used to create timed transactions, escrow transactions, multi-signature transactions, etc. The current features of the client only hint at what will be possible in the future.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1715378977
Hero Member
*
Offline Offline

Posts: 1715378977

View Profile Personal Message (Offline)

Ignore
1715378977
Reply with quote  #2

1715378977
Report to moderator
1715378977
Hero Member
*
Offline Offline

Posts: 1715378977

View Profile Personal Message (Offline)

Ignore
1715378977
Reply with quote  #2

1715378977
Report to moderator
misterbigg
Legendary
*
Offline Offline

Activity: 1064
Merit: 1001



View Profile
September 29, 2012, 04:04:24 PM
 #2

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.
hamdi
Hero Member
*****
Offline Offline

Activity: 826
Merit: 500



View Profile
September 29, 2012, 04:20:26 PM
 #3

let it take the time... it will be in the chain sooner or later.
CIYAM
Legendary
*
Offline Offline

Activity: 1890
Merit: 1078


Ian Knowles - CIYAM Lead Developer


View Profile WWW
September 29, 2012, 04:43:00 PM
 #4

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.

With CIYAM anyone can create 100% generated C++ web applications in literally minutes.

GPG Public Key | 1ciyam3htJit1feGa26p2wQ4aw6KFTejU
jgarzik
Legendary
*
qt
Offline Offline

Activity: 1596
Merit: 1091


View Profile
September 29, 2012, 07:53:40 PM
 #5

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.


Jeff Garzik, Bloq CEO, former bitcoin core dev team; opinions are my own.
Visit bloq.com / metronome.io
Donations / tip jar: 1BrufViLKnSWtuWGkryPsKsxonV2NQ7Tcj
Stephen Gornick
Legendary
*
Offline Offline

Activity: 2506
Merit: 1010


View Profile
September 29, 2012, 07:55:43 PM
 #6

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

Unichange.me

            █
            █
            █
            █
            █
            █
            █
            █
            █
            █
            █
            █
            █
            █
            █
            █


runeks
Legendary
*
Offline Offline

Activity: 980
Merit: 1008



View Profile WWW
October 01, 2012, 08:51:43 PM
 #7

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.
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!