Bitcoin Forum
April 20, 2024, 03:51:19 AM *
News: Latest Bitcoin Core release: 26.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 2 [3]  All
  Print  
Author Topic: Cancelling unconfirmed transactions  (Read 21057 times)
DeathAndTaxes
Donator
Legendary
*
Offline Offline

Activity: 1218
Merit: 1079


Gerald Davis


View Profile
July 30, 2013, 04:14:16 PM
 #41

Bloody client program holds my funds neither bouncing them back nor pushing to the network acting as The Dog in the Manger. Which part of this is good for the network?

It does rebroadcast just not at a rate which would be seen as a denial of service attack.
1713585079
Hero Member
*
Offline Offline

Posts: 1713585079

View Profile Personal Message (Offline)

Ignore
1713585079
Reply with quote  #2

1713585079
Report to moderator
1713585079
Hero Member
*
Offline Offline

Posts: 1713585079

View Profile Personal Message (Offline)

Ignore
1713585079
Reply with quote  #2

1713585079
Report to moderator
1713585079
Hero Member
*
Offline Offline

Posts: 1713585079

View Profile Personal Message (Offline)

Ignore
1713585079
Reply with quote  #2

1713585079
Report to moderator
"Governments are good at cutting off the heads of a centrally controlled networks like Napster, but pure P2P networks like Gnutella and Tor seem to be holding their own." -- Satoshi
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1713585079
Hero Member
*
Offline Offline

Posts: 1713585079

View Profile Personal Message (Offline)

Ignore
1713585079
Reply with quote  #2

1713585079
Report to moderator
Peter Todd
Legendary
*
expert
Offline Offline

Activity: 1120
Merit: 1149


View Profile
July 30, 2013, 04:59:00 PM
 #42

Bloody client program holds my funds neither bouncing them back nor pushing to the network acting as The Dog in the Manger. Which part of this is good for the network?

It does rebroadcast just not at a rate which would be seen as a denial of service attack.

Actually the reason for the slow broadcasts is to not give away information on what coins are in your wallet.

Replace-by-fee  helps with privacy here actually as re-broadcasts would generally have fee increases and thus any node could have sent them.

Stn
Full Member
***
Offline Offline

Activity: 227
Merit: 100


View Profile
July 31, 2013, 03:35:10 AM
 #43

It does rebroadcast just not at a rate which would be seen as a denial of service attack.
One attempt per 45 minutes to avoid DDOS? You were kidding, right?
DeathAndTaxes
Donator
Legendary
*
Offline Offline

Activity: 1218
Merit: 1079


Gerald Davis


View Profile
July 31, 2013, 03:43:17 AM
 #44

It does rebroadcast just not at a rate which would be seen as a denial of service attack.
One attempt per 45 minutes to avoid DDOS? You were kidding, right?

There is no preset time limit.  The node psuedo-randomly rebroadcasts transactions.  Your node has no method of knowing if other nodes are still retaining a copy of your unconfirmed tx, only that a tx is self created and has been broadcast.  It broadcasts the tx, and then wait, if it sees the tx in a block it removes it from its memory pool.  When a self generated tx in its memory pool becomes stale it broadcasts it again.  It is possible peers already know of that tx however it doesn't check it simply broadcasts the tx and refreshes its status in its memory pool.

Spamming a tx to all nodes continually until they appear in a block would use up a lot of network resources and that could be exploited by an attacker as camouflage to create a denial of service attack.  In other words if "well behaved" nodes are spammy then it becomes harder to identify and ban truly malicious nodes.  As it is right now actual malicious are easy to spot and ban.

Bitcoin is an open source project.  The rebroadcast algorithm can be improved so feel free to do a pull (or bounty for a pull).
Keep in mind however that:
a) an node has no method of knowing if an arbitrary unconfirmed tx is in the memory pool of peers without asking
b) when a node drops a tx from its memory pool either on receipt (invalid tx or insufficient fee) or when memory pool is full it does not notify the sending node.
c) a node should rebroadcast tx to peers on random intervals to avoid giving away information (i.e. your node sends the same tx every 1 minute to all 8 peers an a malicious entity is two of your peers you have essentially identified yourself as the originator)
d) the volume of communication should not make it possible for a malicious node to use that as cover to spam the network.
solex
Legendary
*
Offline Offline

Activity: 1078
Merit: 1002


100 satoshis -> ISO code


View Profile
July 31, 2013, 05:43:35 AM
 #45

I know there are good reasons but to the casual observer and user it does seem that Bitcoin is a bit rough-and-ready if transactions can get "stuck" in cyberspace and the sender can't do anything about it.

If transactions can't be easily cancelled while pending, could they have a user-defined expiry date-time at origination, with a default of, say, +24 hours? Then, any unconfirmed transactions beyond expiry are deleted from the pool. Wallets can also then re-credit the BTC to the sender, knowing the amount is not going to be processed, and the transaction could be done again with a higher fee.

Stephen Gornick
Legendary
*
Offline Offline

Activity: 2506
Merit: 1010


View Profile
July 31, 2013, 07:39:14 AM
 #46

I know there are good reasons but to the casual observer and user it does seem that Bitcoin is a bit rough-and-ready if transactions can get "stuck" in cyberspace and the sender can't do anything about it.

There is different behavior based on the client.

With Bitcoin-Qt/bitcoind, the client (if left running) will sporadically attempt to re-broadcast the transaction indefinitely.   If the reason it doesn't end up in a block is because it is a low-priority transaction and a fee wasn't paid then there is no solution other than to perform wallet surgery (using a tool like jack jack's pywallet utility) to delete the unusable transaction.  

The hybrid E-Wallet from Blockchain.info behaves differently.  It will eventually stop retrying (in about a day) and the transaction removed from the wallet, allowing the user to try to spend the fund again.

I'm not familiar enough with Multibit, Electrum and other clients to know their behavior.

As far as the ability to bump an existing transaction there have been two approaches, ... "parent pays for child" and "replace by fee", however neither is targeted for inclusion in any specific upcoming release.

Unichange.me

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


Stn
Full Member
***
Offline Offline

Activity: 227
Merit: 100


View Profile
July 31, 2013, 09:20:16 AM
Last edit: July 31, 2013, 09:48:26 AM by Stn
 #47

There is...
I appreciate your reply it gives better sense. But still there is bad interface design. Compare with Electrum -- all connected peers failed to follow my transaction (rare thing but it happens). In 5 seconds client reports error and releases funds, allowing me to try to send again or use another wallet. Though "official" client keep funds in hostage for hours driving me mad as well as fund receiver. And it happened to me 3 or 4 times already.

I don't believe that during that hours in the background client trying hard to rebroadcast pseudo-randomly. If it doesn't go from the first attempt it will go on the second.
rapidfire187
Sr. Member
****
Offline Offline

Activity: 252
Merit: 250


!!!INCAKOIN!!!


View Profile
October 30, 2013, 06:32:55 AM
 #48

Yes a Rebroadcast feature should b e added. There's no way to verify at least from what Im seeing if a QT is doing this.

www.incakoin.com   http://nka.dencoinpools.com
NKA:NN1sE6odEKrbKpBqt56vw5jJoitDrCn9HD
▂▃▅▇█▓▒░۩۞۩ ۩۞۩░▒▓█▇▅▃▂
Stephen Gornick
Legendary
*
Offline Offline

Activity: 2506
Merit: 1010


View Profile
November 11, 2013, 09:03:05 PM
 #49

Yes a Rebroadcast feature should b e added.

- http://en.bitcoin.it/wiki/Raw_Transactions#Re-broadcast_a_transaction

Unichange.me

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


solex
Legendary
*
Offline Offline

Activity: 1078
Merit: 1002


100 satoshis -> ISO code


View Profile
November 11, 2013, 11:22:56 PM
 #50


That's all well and good. But what about the user with zero IT knowledge? Problems have to be automatically taken care of for them by the wallet software as much as possible.

As far as the ability to bump an existing transaction there have been two approaches, ... "parent pays for child" and "replace by fee", however neither is targeted for inclusion in any specific upcoming release.

Are either of these closer to implementation?

Gavin Andresen
Legendary
*
qt
Offline Offline

Activity: 1652
Merit: 2216


Chief Scientist


View Profile WWW
November 12, 2013, 10:18:52 AM
 #51

Unconfirmed wallet transactions are automatically rebroadcast by bitcoind/Bitcoin-QT until they are confirmed.

How often do you get the chance to work on a potentially world-changing project?
Peter Todd
Legendary
*
expert
Offline Offline

Activity: 1120
Merit: 1149


View Profile
November 12, 2013, 02:37:48 PM
 #52

As far as the ability to bump an existing transaction there have been two approaches, ... "parent pays for child" and "replace by fee", however neither is targeted for inclusion in any specific upcoming release.

Are either of these closer to implementation?


Here is the status of my work on tx replacement: http://www.mail-archive.com/bitcoin-development@lists.sourceforge.net/msg03126.html

That particular version is the "zeroconf safe" version that only lets you replace a transaction if all outputs are paid in the replacement with equal or greater value. I also wrote a pure replace-by-fee version months ago. What's left to be done is the hard and risky work of fixing the wallet code.

Note that John Dillon has offered 4BTC to whomever gets it done - if anyone wants to take on the wallet side of things it'd fix some outstanding issues and I think the effort would deserve 95% of the funds.

Pages: « 1 2 [3]  All
  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!