Bitcoin Forum
May 07, 2024, 03:35:22 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Resending bitcoins  (Read 751 times)
litehacker (OP)
Member
**
Offline Offline

Activity: 67
Merit: 10


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

Posts: 1715096122

View Profile Personal Message (Offline)

Ignore
1715096122
Reply with quote  #2

1715096122
Report to moderator
"There should not be any signed int. If you've found a signed int somewhere, please tell me (within the next 25 years please) and I'll change it to unsigned int." -- Satoshi
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1715096122
Hero Member
*
Offline Offline

Posts: 1715096122

View Profile Personal Message (Offline)

Ignore
1715096122
Reply with quote  #2

1715096122
Report to moderator
1715096122
Hero Member
*
Offline Offline

Posts: 1715096122

View Profile Personal Message (Offline)

Ignore
1715096122
Reply with quote  #2

1715096122
Report to moderator
1715096122
Hero Member
*
Offline Offline

Posts: 1715096122

View Profile Personal Message (Offline)

Ignore
1715096122
Reply with quote  #2

1715096122
Report to moderator
litehacker (OP)
Member
**
Offline Offline

Activity: 67
Merit: 10


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

Bump. Smiley

hi
DeathAndTaxes
Donator
Legendary
*
Offline Offline

Activity: 1218
Merit: 1079


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 (OP)
Member
**
Offline Offline

Activity: 67
Merit: 10


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 (OP)
Member
**
Offline Offline

Activity: 67
Merit: 10


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

Bump? Smiley

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