Bitcoin Forum
November 11, 2024, 01:49:11 AM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Dust/Transaction too large, how to solve ?  (Read 6629 times)
Meska (OP)
Member
**
Offline Offline

Activity: 100
Merit: 10



View Profile WWW
October 24, 2013, 12:18:31 PM
 #1

Hi, I'm using bitcoind on a Linux Debian. (Compiled version)
I have a lot of dust due to free bitcoin services (when I was trying to look how it work), and now, I'm facing the problem of I have a lot of dust in my wallet. (I'm used to create one BTC address by services).

So basic example today :
Code:
GQHNoTt9aJfQASLMrTyfdS 0.1395 
error: {"code":-4,"message":"Transaction too large"}
bitcoin@bea:~$ ./bitcoind sendtoaddress 1LbaY34KEn6mGQHNoTt9aJfQASLMrTyfdS 0.1295
error: {"code":-4,"message":"Transaction too large"}
bitcoin@bea:~$ ./bitcoind sendtoaddress 1LbaY34KEn6mGQHNoTt9aJfQASLMrTyfdS 0.1195
error: {"code":-4,"message":"Transaction too large"}
bitcoin@bea:~$ ./bitcoind sendtoaddress 1LbaY34KEn6mGQHNoTt9aJfQASLMrTyfdS 0.1095
error: {"code":-4,"message":"Transaction too large"}
bitcoin@bea:~$ ./bitcoind sendtoaddress 1LbaY34KEn6mGQHNoTt9aJfQASLMrTyfdS 0.0995 
error: {"code":-4,"message":"Transaction too large"}
bitcoin@bea:~$ ./bitcoind sendtoaddress 1LbaY34KEn6mGQHNoTt9aJfQASLMrTyfdS 0.0895
error: {"code":-4,"message":"Transaction too large"}
bitcoin@bea:~$ ./bitcoind sendtoaddress 1LbaY34KEn6mGQHNoTt9aJfQASLMrTyfdS 0.0795
error: {"code":-4,"message":"Transaction too large"}
bitcoin@bea:~$ ./bitcoind sendtoaddress 1LbaY34KEn6mGQHNoTt9aJfQASLMrTyfdS 0.07 
error: {"code":-4,"message":"Transaction too large"}
bitcoin@bea:~$ ./bitcoind sendtoaddress 1LbaY34KEn6mGQHNoTt9aJfQASLMrTyfdS 0.06
47510431b7edcabe3cb73e0a6e5f55d9541b76bdd65fbe0d98c9c6cd5a14e445
bitcoin@bea:~$ ./bitcoind gettransaction 47510431b7edcabe3cb73e0a6e5f55d9541b76bdd65fbe0d98c9c6cd5a14e445
{
    "amount" : -0.06000000,
    "fee" : -0.00840000,
    "confirmations" : 0,
    "txid" : "47510431b7edcabe3cb73e0a6e5f55d9541b76bdd65fbe0d98c9c6cd5a14e445",
    "time" : 1382616790,
    "timereceived" : 1382616790,
    "details" : [
        {
            "account" : "",
            "address" : "1LbaY34KEn6mGQHNoTt9aJfQASLMrTyfdS",
            "category" : "send",
            "amount" : -0.06000000,
            "fee" : -0.00840000
        }
    ]
}

So the question is : How can I deduced "how size it will be".
In fact I'm moving everything properly to my inputs.io account, I want to do this with the "less" transactions I can, but trying for ten minutes everytime I want to transfert is quite boring (the "error: {"code":-4,"message":"Transaction too large"}" erreur message took 30s to one minute to be applied).

Is there any functions to find the "max amount with the max size" (without compiling the client again, I saw some patches to avoid this problem, but I don't like screwing the network).



BTCTC: 1JiQmXauxsgc5aEygF7soxkaB717VgWVdH
HBN: EtWqbeUGWNYoB7WgW8ML14rxoxx7Bs4ySw
HBN 0.5% fees pool https://scrypt.io/hbn/
domob
Legendary
*
Offline Offline

Activity: 1135
Merit: 1170


View Profile WWW
October 25, 2013, 07:07:32 AM
 #2

When I had the same problem, I wrote a small script to "collect" dust output step by step into larger denominations.  You can find it at https://www.domob.eu/projects/coinCollection.php, but you should know what you are doing when you want to try it (and use at your own risk, but for me it works well).  I think other such tools are probably also available (and may be a lot easier to use, but I don't know of any at the moment).

If you want to find out some more information, you can try "bitcoind listunspent" to see all unspent outputs you have, and if there are larger ones among all the dust or not.

Use your Namecoin identity as OpenID: https://nameid.org/
Donations: 1domobKsPZ5cWk2kXssD8p8ES1qffGUCm | NMC: NCdomobcmcmVdxC5yxMitojQ4tvAtv99pY
BM-GtQnWM3vcdorfqpKXsmfHQ4rVYPG5pKS | GPG 0xA7330737
Meska (OP)
Member
**
Offline Offline

Activity: 100
Merit: 10



View Profile WWW
October 25, 2013, 10:37:13 AM
 #3

Thank you for this message and the script sharing.
I will look into it, but it looks like exactly what I want to do.

My last transaction : https://blockchain.info/tx/cee21b80afd46d59da318d9fc64c129b1969f67ef58696a69d47f2aae10f08c9
0.001 BTC for 0.0025 BTC fees...

BTCTC: 1JiQmXauxsgc5aEygF7soxkaB717VgWVdH
HBN: EtWqbeUGWNYoB7WgW8ML14rxoxx7Bs4ySw
HBN 0.5% fees pool https://scrypt.io/hbn/
dserrano5
Legendary
*
Offline Offline

Activity: 1974
Merit: 1029



View Profile
October 25, 2013, 11:02:01 AM
 #4

You should try to combine the largest unspent output(s) you have in your wallet with a few of the smaller ones in every transaction you do, and repeat this as many times as needed until you reduce the (apparently very large) number of tiny outputs you seem to have.
RoadTrain
Legendary
*
Offline Offline

Activity: 1386
Merit: 1009


View Profile
October 26, 2013, 01:18:56 AM
 #5

If you had one large output (the larger the better, a dozen BTC e.g.), you could even combine this dust without paying fees.
Just this large input and up to ~9.900 Kb of dust for one tx.
Though it would be a long process. Read about transaction fees and priority on the wiki.
mb300sd
Legendary
*
Offline Offline

Activity: 1260
Merit: 1000

Drunk Posts


View Profile WWW
October 26, 2013, 01:22:19 AM
 #6

This may help, you can build transactions using individual outputs and consolidate the dust.

https://bitcointalk.org/index.php?topic=315999.0

1D7FJWRzeKa4SLmTznd3JpeNU13L1ErEco
Dabs
Legendary
*
Offline Offline

Activity: 3416
Merit: 1912


The Concierge of Crypto


View Profile
October 26, 2013, 01:51:10 AM
 #7

Coin Control.

Gavin Andresen
Legendary
*
qt
Offline Offline

Activity: 1652
Merit: 2301


Chief Scientist


View Profile WWW
October 26, 2013, 05:33:43 AM
 #8

Peter's dust-b-gone:
  https://github.com/petertodd/dust-b-gone

How often do you get the chance to work on a potentially world-changing project?
DobZombie
Hero Member
*****
Offline Offline

Activity: 896
Merit: 532


Former curator of The Bitcoin Museum


View Profile
October 26, 2013, 12:21:58 PM
 #9


What a fantastic script!

 Grin Grin

Tip Me if believe BTC1 will hit $1 Million by 2030
1DobZomBiE2gngvy6zDFKY5b76yvDbqRra
Mike Hearn
Legendary
*
expert
Offline Offline

Activity: 1526
Merit: 1134


View Profile
October 27, 2013, 05:47:38 PM
 #10

Peter's script sends the dust to miners - I suspect most people simply want to consolidate/defrag their wallet and keep the money. I don't think there's any program that does that currently.
Peter Todd
Legendary
*
expert
Offline Offline

Activity: 1120
Merit: 1160


View Profile
October 28, 2013, 01:04:23 AM
 #11

Peter's script sends the dust to miners - I suspect most people simply want to consolidate/defrag their wallet and keep the money. I don't think there's any program that does that currently.

What do you suggest such a script do?

gmaxwell
Moderator
Legendary
*
expert
Offline Offline

Activity: 4270
Merit: 8805



View Profile WWW
October 28, 2013, 02:58:33 AM
 #12

Peter's script sends the dust to miners - I suspect most people simply want to consolidate/defrag their wallet and keep the money. I don't think there's any program that does that currently.
Yea, but who cares if they "keep" payments of 1 satoshi? Even thousands of them add up to nothing.

The advantage of coinjoining them up and giving them to miners, as Peter's tool does, is that it also thwarts attempts to reduce privacy (paying exhausted addresses tiny amounts in order to produce extra linkage)... and giving the coin to miners is the most incentive possible for miners to accept the transaction (short of actually paying extra to get it mined).

It's probably not something you'd want to use for "dust" at the scale of 0.01 BTC to (say) 0.0001 BTC. I posted a tool (now probably bitrotted) for general defragmenting last year:  https://people.xiph.org/~greg/groomer.py  basically it aggregates up outputs while trying to avoid reducing your privacy.

It might be interesting to combine the ideas in peter's tool:  For very tiny coins, give them away to miners, for larger ones aggregate them up and return them to yourself.
Mike Hearn
Legendary
*
expert
Offline Offline

Activity: 1526
Merit: 1134


View Profile
October 28, 2013, 10:31:51 AM
 #13

Right, a mixed tool sounds good, although it'd be best if it was sensitive to the exchange rate. We have a recurring problem where amounts that seem too small to care about a year later start to become interesting due to the exchange rate moving by an order of magnitude (nice problem to have ...).

And yes for defragmentation I was thinking just generate free transactions that merge inputs together. I think now the fee rules changed to not count input bytes (correct??) it would be possible for wallets to do that at night, when load on the network might be lower. It'd be interesting to plot fine-grained traffic graphs and see if any such effect is observable at the moment or whether automated dice gaming drowns out the organic usage.
kjj
Legendary
*
Offline Offline

Activity: 1302
Merit: 1026



View Profile
October 28, 2013, 07:31:00 PM
 #14

Small transaction management is hard to do in a way that works for everyone, is safe, and doesn't leak privacy.  One or two of those are easy enough, but getting that third one in there is a bear.

It gets much worse when you try to preserve coin age and priority for the free transaction calculation.  Someone with an unhealthy attachment to their old satoshidice in-band notification payments isn't going to be happy if their whole wallet is tied up in new coins when they have to pay a fee for a trivial spend.

17Np17BSrpnHCZ2pgtiMNnhjnsWJ2TMqq8
I routinely ignore posters with paid advertising in their sigs.  You should too.
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!