Bitcoin Forum
November 21, 2017, 04:56:49 AM *
News: Latest stable version of Bitcoin Core: 0.15.1  [Torrent].
 
   Home   Help Search Donate Login Register  
Pages: [1]
  Print  
Author Topic: Resending bitcoins  (Read 679 times)
litehacker
Member
**
Offline Offline

Activity: 67


View Profile
January 14, 2013, 06:11:05 PM
 #1

Hello,

The following never happened to me, but I can just imagine the case, so I wanted to ask you:

Imagine, in the future, sending some bitcoins without a transaction fee.

No miner picks it up because it doesn't have a transaction fee.

On a Multibit, is there a way to cancel the transaction and resend it with a transaction fee?

Thank you,
Ven

hi
1511240209
Hero Member
*
Offline Offline

Posts: 1511240209

View Profile Personal Message (Offline)

Ignore
1511240209
Reply with quote  #2

1511240209
Report to moderator
1511240209
Hero Member
*
Offline Offline

Posts: 1511240209

View Profile Personal Message (Offline)

Ignore
1511240209
Reply with quote  #2

1511240209
Report to moderator
1511240209
Hero Member
*
Offline Offline

Posts: 1511240209

View Profile Personal Message (Offline)

Ignore
1511240209
Reply with quote  #2

1511240209
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. Advertise here.
1511240209
Hero Member
*
Offline Offline

Posts: 1511240209

View Profile Personal Message (Offline)

Ignore
1511240209
Reply with quote  #2

1511240209
Report to moderator
1511240209
Hero Member
*
Offline Offline

Posts: 1511240209

View Profile Personal Message (Offline)

Ignore
1511240209
Reply with quote  #2

1511240209
Report to moderator
litehacker
Member
**
Offline Offline

Activity: 67


View Profile
January 15, 2013, 04:17:35 PM
 #2

Bump. Smiley

hi
DeathAndTaxes
Donator
Legendary
*
Offline Offline

Activity: 1218


Gerald Davis


View Profile
January 15, 2013, 04:37:16 PM
 #3

Not easily.  It will require some manual modification of the wallet file.  Tools exist for the QT client but I don't know if they exist for multibit.  Even then it isn't that simple.  Nodes which have seen the original tx will see the "new" tx as an invalid double spend and refuse to relay it.  For obvious (intentional double spend) reasons there is no protocol command to "undo" a tx. Miners (depending on their memory pool rules) may drop the new tx as long as the old tx is in their memory pool.    To prevent tx from remaining in the memory pool forever, nodes will drop old unconfirmed tx from the memory pool after enough time however as long as the tx remains in the wallet file of the original client it will periodically rebroadcast it until it detects that it is in a block.

So removal requires
a) manually removing the tx from the wallet file (so client "forgets" about it)
b) waiting long enough for nodes in the network to forget the tx (because the client isn't "reminding" them of the old tx).
c) create a new spend.

If that sounds like a mess well it is and that is one of the effects of a decentralized network.   Even if you can absolutely control your client you can't guarantee the behavior of other nodes.

The "solution" is actually simpler.  There are two seperate categories.
a) truly invalid transactions (double spends, invalid signatures, malformed tx, violation of protocol rules, etc).
b) valid transactions without a fee (but not in violation of the anti-spam rules) which may be unattractive to miners.

For truly invalid transactions there is no easy fix.  The fix is don't make invalid tx.  A good client will prevent you from making invalid transactions.  Don't use patches that remove things like the anti-spam rules, and don't manually (use QT rawtransaction API) create transactions.

For valid tx with no or low fee the recipient can include that unspent output in a tx which has a fee.  Currently miners don't look "forward" to see if low/no fee tx are the input for higher fee tx but they can and likely will (especially as fees become more important).  

Example:
Address A sends coins to Address B in a tx (t1) with no fee.
Address B includes that in a tx(t2) to Address C with a fee.

A -(t1)-> B -(t2)-> C

A mining node sees that t2 is a paying tx and requires t1 an unpaid tx.  Both tx can be included in the same block but t2 can't be included without t1 (it would make the block invalid to have a tx with an unconfirmed input in it).   The mining node includes both in the same block in order to collect the tx fee.  This would be especially useful for merchants.  Merchants could combine multiple no fee tx from customers into another tx with a fee back to themselves with a fee to force encourage miners to include all the tx in the next block.

litehacker
Member
**
Offline Offline

Activity: 67


View Profile
January 15, 2013, 06:53:40 PM
 #4

I use Multibit, and I needed to send a little money to many people but didn't know how to send it within one block, with just one fee.
How do you create multiple transactions in one block, with only one transaction having a fee?
Is that a configuration within Multibit?

hi
litehacker
Member
**
Offline Offline

Activity: 67


View Profile
January 16, 2013, 09:51:59 PM
 #5

Bump? Smiley

hi
Pages: [1]
  Print  
 
Jump to:  

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!