Bitcoin Forum
November 16, 2024, 04:39:09 PM *
News: Check out the artwork 1Dq created to commemorate this forum's 15th anniversary
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Unable to send. Issue with addresses with many small deposits. Logs included  (Read 1949 times)
simonk83 (OP)
Hero Member
*****
Offline Offline

Activity: 798
Merit: 1000


View Profile
October 04, 2014, 09:49:32 AM
Last edit: October 04, 2014, 11:06:38 PM by simonk83
 #1

Running on OSX (10.9.5) with Armory 0.92.3.

I hit Send Bitcoins, enter the address and amount, and hit continue, but nothing happens.  The log shows the following each time I press continue:

Code:
2014-10-04 19:19 (ERROR) -- Traceback (most recent call last):
  File "/Applications/Armory.app/Contents/MacOS/py/usr/lib/armory/ui/TxFrames.py", line 757, in createTxAndBroadcast
    ustx = self.validateInputsGetUSTX()
  File "/Applications/Armory.app/Contents/MacOS/py/usr/lib/armory/ui/TxFrames.py", line 738, in validateInputsGetUSTX
    utxoSelect, scriptValPairs, pubKeyMap)
  File "/Applications/Armory.app/Contents/MacOS/py/usr/lib/armory/armoryengine/Transaction.py", line 2168, in createFromTxOutSelection
    return self.createFromPyTx(thePyTx, pubKeyMap, txMap, p2shMap)
  File "/Applications/Armory.app/Contents/MacOS/py/usr/lib/armory/armoryengine/Transaction.py", line 2081, in createFromPyTx
    pyPrevTx = PyTx().unserialize(cppPrevTx.serialize())
  File "/Applications/Armory.app/Contents/MacOS/py/usr/lib/armory/armoryengine/Transaction.py", line 693, in unserialize
    self.version    = txData.get(UINT32)
  File "/Applications/Armory.app/Contents/MacOS/py/usr/lib/armory/armoryengine/BinaryUnpacker.py", line 66, in get
    sizeCheck(4)
  File "/Applications/Armory.app/Contents/MacOS/py/usr/lib/armory/armoryengine/BinaryUnpacker.py", line 61, in sizeCheck
    raise UnpackerError
UnpackerError


Also when this happens it's often not possible to close the dialog window.

EDIT:  Looks to be related to lots of "dust" or something along those lines.  I was able to send smaller amounts (with the standard fee), but I'm left with 4.x BTC in there that must have lots of little txn's included as it wants a larger fee.  Anytime I try and send a transaction with these larger fees I get the above error.  One address, for example, has had 69 transactions sent to it, all very small.
Ente
Legendary
*
Offline Offline

Activity: 2126
Merit: 1001



View Profile
October 07, 2014, 12:12:56 PM
 #2

Yes, dust is an issue, the network doesn't like it when transactions get very large.

You need to compress those inputs into fewer inputs. Option one is to use Armory with its "coin control" feature (maybe in expert mode only) to pick individual addresses, and send all inputs from that address to one new output. If you have addresses which have too many inputs (that's how I read your OP), make small amount transactions to new outputs.
I believe the fees rise non-linear, so one big tx may be more expensive than chopping it into several smaller tx. Not 100% sure about this, though.

Well, sorry, this sounds like a tedious task..

Alternatively, just grab the bulk of it, send it to a new address, and let the dust sit there. If some day it is worth a lot and/or the fees went down drastically by competition, you can give it another shot. If the fees rise more, because of constant blocksize-limit limitations, well, bummer!

Ente
etotheipi
Legendary
*
Offline Offline

Activity: 1428
Merit: 1093


Core Armory Developer


View Profile WWW
October 07, 2014, 02:50:47 PM
 #3

That error suggests a malformed transaction.  I'm not sure how that would happen since Armory is creating the Tx for you and thus it shouldn't be malformed.  Perhaps the DB is corrupt and it's blindly dumping a corrupt previous-tx into the one you're trying to sign?   Strange.

But it is true that if you have a lot of dust, you should try sending yourself many small transactions to try to clean it up.  If you have 0.1 BTC with 1,000 inputs, try sending yourself 0.01 at a time.  Your balance will remain the same, but then once it all confirms you'll be able to send all of it at once (then it only combines 10 inputs instead of 1,000)

Founder and CEO of Armory Technologies, Inc.
Armory Bitcoin Wallet: Bringing cold storage to the average user!
Only use Armory software signed by the Armory Offline Signing Key (0x98832223)

Please donate to the Armory project by clicking here!    (or donate directly via 1QBDLYTDFHHZAABYSKGKPWKLSXZWCCJQBX -- yes, it's a real address!)
bitpop
Legendary
*
Offline Offline

Activity: 2912
Merit: 1060



View Profile WWW
October 07, 2014, 11:44:06 PM
 #4

I've had transaction errors that needed a restart.

btchris
Hero Member
*****
Offline Offline

Activity: 672
Merit: 504

a.k.a. gurnec on GitHub


View Profile WWW
October 08, 2014, 12:16:59 AM
 #5

Ok, so I should try sending lots of small transactions to one address?   That seems counter-intuitive as it's kind of the cause of the problem in the first place, but I'll take your word for it Wink

I think you maybe misunderstood? Instead of trying to clean up the dust by sending yourself a single transaction with 1000 dust inputs, try sending yourself 10 separate transactions each having 100 dust inputs.
bitpop
Legendary
*
Offline Offline

Activity: 2912
Merit: 1060



View Profile WWW
October 08, 2014, 12:19:59 AM
 #6

Ok, so I should try sending lots of small transactions to one address?   That seems counter-intuitive as it's kind of the cause of the problem in the first place, but I'll take your word for it Wink

I think you maybe misunderstood? Instead of trying to clean up the dust by sending yourself a single transaction with 1000 dust inputs, try sending yourself 10 separate transactions each having 100 dust inputs.

Gotcha.  So I need to use the coin control function for this right?   I admit I haven't played with that at all as yet so I'll have to have a fiddle Wink

Absolutely

goatpig
Moderator
Legendary
*
Offline Offline

Activity: 3766
Merit: 1364

Armory Developer


View Profile
October 09, 2014, 12:29:15 AM
 #7

Ok, got most of it out, but the only address left with a balance (the original problem address) now has 0.21 BTC that I can't move at all Smiley    I tried some pretty small amounts but it started complaining about fees so I gave up.  I'd like to get it out though, seems like a fairly decent issue.

Coin control gives you control over addresses but not UTXOs. An address can have several UTXOs and in that sense coin control doesn't give you the necessary control to spend that one. Make a ticket (https://bitcoinarmory.com/support), link to this thread and one of us will craft you a custom unsigned transaction to spend the left overs minus the dust.

goatpig
Moderator
Legendary
*
Offline Offline

Activity: 3766
Merit: 1364

Armory Developer


View Profile
October 09, 2014, 03:09:20 PM
 #8

Reassigned you to CircusPeanut, he should fix that for you.

Ente
Legendary
*
Offline Offline

Activity: 2126
Merit: 1001



View Profile
October 09, 2014, 11:48:57 PM
 #9

Ok, got most of it out, but the only address left with a balance (the original problem address) now has 0.21 BTC that I can't move at all Smiley    I tried some pretty small amounts but it started complaining about fees so I gave up.  I'd like to get it out though, seems like a fairly decent issue.

Coin control gives you control over addresses but not UTXOs. An address can have several UTXOs and in that sense coin control doesn't give you the necessary control to spend that one. Make a ticket (https://bitcoinarmory.com/support), link to this thread and one of us will craft you a custom unsigned transaction to spend the left overs minus the dust.

Armory team?
Hands down the best customer support in bitcoin world!
:-)

Ente
CircusPeanut
Full Member
***
Offline Offline

Activity: 123
Merit: 100


View Profile
October 15, 2014, 10:11:59 PM
 #10


Yep, as of this morning my issue is fixed Smiley

Thanks guys Wink

Thanks for the kudos, however in this case it may not be warranted.

I actually think your issue might have been fixed before I got to it.

In case anyone else runs into this bug, there is a simple remedy that I think you did incidentally.

If you have a bunch of small inputs from one address, say from a large mining pool, simply send a small transaction to yourself. The correct fee will be calculated without running out funds. Once that transaction goes through, many of your inputs will have been replaced with two addresses each with one input. One is the address you sent the transaction to, and the other is the change address.
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!