Author

Topic: Bitcoin-QT Error : Transaction too large (Read 1211 times)

staff
Activity: 3458
Merit: 6793
Just writing some code
July 20, 2016, 09:18:33 AM
#13
But how about the 30BTC one .
Blockchain sais transaction rejected by our node because it has more than 250 inputs . The transaction is less than 1K in size . So even if i would put a ridiculously high transaction fee , it will never be processed , right ?
No, not necessarily. Blockchain.info has some strange node policies. Not all nodes will reject transaction with more than 250 inputs. AFAIK, it isn't even a standardness rule, so the transaction still can be confirmed.
newbie
Activity: 16
Merit: 0
Here is an example of another transaction i did :

15BTC
Size    22695 (bytes)
126 inputs
fee 1 satochi/B
Processing time : 9 minutes .

The 5BTC transaction probably might go through with a higher transaction fee . I can do that .

But how about the 30BTC one .
Blockchain sais transaction rejected by our node because it has more than 250 inputs . The transaction is less than 1M in size . So even if i would put a ridiculously high transaction fee , it will never be processed , right ?

I'm afraid I will want to sweep the paper wallet in the future , then getting some kind of error messing the wallet up and losing the bitcoins on it .

Not sure which road I should take to get the amount properly on there .
legendary
Activity: 3038
Merit: 4418
Crypto Swap Exchange
I'm always checking on https://bitcoinfees.21.co/#fees to see which fees to use .
As these transactions were not urgent , I used 1sat/B . It had a timeframe of 0-300 minutes next to it at the time .

I used for other slow transactions of fex 20BTC also 1sat/B and they didn't have any issues .

For the 5BTC one i'll just wait some longer . I could use a bigger transaction fee eventually if that's the problem .
The 30BTC is problematic though , don't think any transaction fee will get it through . So I don't know what to do about it .

What were the size of the other 20BTC transactions? I suspect that miners were considering them as free transaction* and they didn't care about the fees. With the size being so big, the fees would be a huge factor for miners to accept them. For the reference client, the default relay fee is 0.00005BTC/kB and I daresay many of the clients have higher relay fees. With a fee that is so low, the transaction would not pass the limit and many nodes wouldn't relay it. The network propagation is hence much lower.

I'm almost certain that the issue is with the fees since not many miners would not mine the transaction that has a decent fees/kb.
*Size must be less than 1kB, priority is old enough and the output value is above 0.01BTC.
newbie
Activity: 16
Merit: 0
I'm always checking on https://bitcoinfees.21.co/#fees to see which fees to use .
As these transactions were not urgent , I used 1sat/B . It had a timeframe of 0-300 minutes next to it at the time .

I used for other slow transactions of fex 20BTC also 1sat/B and they didn't have any issues .

For the 5BTC one i'll just wait some longer . I could use a bigger transaction fee eventually if that's the problem .
The 30BTC is problematic though , don't think any transaction fee will get it through . So I don't know what to do about it .
hero member
Activity: 935
Merit: 1002
Your transaction uses a ridiculously low fee (the 40KB tx) use at least 0.005BTC as a fee for such transactions, and I guess you used the same 1sat/B fee for the 80KB transaction. Use at least 0.009BTC for that one.
newbie
Activity: 16
Merit: 0
I don't think the 30BTC transfer is OK . After a 9 hour wait nothing happened .
I could submit it , but if i check fex on blockchain it sais :
"Transaction rejected by our node. Reason: The Maximum number of inputs in a single transaction is 250"

The 5BTC transfer is not doing to good either . Even though it only has 232 inputs . The transaction can be found online , but after 9 hours still no confirmations .

They both show up in bitcoin-QT as unconfirmed transactions .

What would be my best option to send 35BTC to the paper wallet ? 1BTC each time ? 35 transactions ?
I don't want to get in trouble when i want to sweep this paper wallet in the future !
hero member
Activity: 935
Merit: 1002
I am doing a small transaction here . What if I would want to buy an airplane or an expensive car with my BTC and all my incoming transactions are coming from my online store which all have small transaction amounts .
I will have to go make thousand transactions of 1 BTC to the seller ? This can't be right .
A transaction too big in QT (and in other wallets) is when a transaction exceeds 100KB (current limit) any transaction over 100KB is non-standard (but valid) and no nodes/miners relay/mine such transactions today (but they can be mined). Any transaction over 1MB is in-valid. You can send whatever amount you want in BTC as long as your inputs are valid and your output(s) value does not exceed input value.
Thats why QT didn't let you send all the amount in one transaction because the transaction was bigger than 100KB. But when you split those in to a 80KB and a 40KB transactions it was ok.
sr. member
Activity: 399
Merit: 257
So that means the 'coin' can only breakdown smaller and smaller? is there a way to combine them again? to cut down the size of transaction

Yes. It is possible to consolidate multiple outputs into one single output simply by sending the highest amount of coins that you can using the smallest number of involved outputs. In order to help you visualize it, consider 10 separate outputs of 1 coin each.

1+1+1+1+1+1+1+1+1+1 <-- outputs before consolidating
Let's assume (for this example only) that consolidating 5 outputs into one is the optimal choice.
(1+1+1+1+1) => consolidated into (5)
(1+1+1+1+1) => consolidated into (5)
So now we have two outputs of 5 coins each.
We can further consolidate those two into a single output of 10 coins if we want to later on.

So how do we do that? Well, if you are familiar with the console commands for the Bitcoin Core client, then you can manually handpick the outputs that you want to tap into. This might be outdated, but it's a good enough step-by-step guide for a good method of consolidating outputs. Just replace any outdated commands with the updated ones if any. Do not play around with this or you might LOSE some coins. Try it with low-value altcoins if you really are inclined to do so.

I'm not familiar with every Bitcoin client in existence, but I believe that some clients automatically provide users with the optimal selection of outputs in transactions as far as transaction size is concerned. Only consider consolidating outputs if absolutely necessary. Also note that consolidating outputs haphazardly might end up costing you more in transaction fees than just sending coins as you need them.

I do NOT recommend beginners messing around with raw transactions or output consolidation. I don't even do it myself. It's easier to just not deal with dust transactions at all or let exchanges handle the consolidation for me.


I know about the different transactions not adding up to 1 total , but why would bitcoin-QT say it is too large .

The amount may be (relatively) small, but you have a lot of dust outputs. Your 5 BTC transaction involved 232 outputs - primarily dust outputs -- and had a transaction size of 41685 bytes. 232 is a huge number of outputs for a single transaction.


I am doing a small transaction here . What if I would want to buy an airplane or an expensive car with my BTC and all my incoming transactions are coming from my online store which all have small transaction amounts .
I will have to go make thousand transactions of 1 BTC to the seller ? This can't be right .

I understand what you mean, but that's just how Bitcoin works. Hopefully, users more knowledgeable than I am can give you some advice regarding this.


So you think sweeping my paper wallet will not have this problem of "transaction too large" in the future , because it only has 2 inputs ?

Yeah, that's fine.


Transaction ID cf784d45981d21dd57e7c5439b3736ce274ef158e476a4050aaef4512807d5ee-000

Blockchain.info says that that transaction has over 250 inputs. After seeing the 232 outputs of your 5 BTC transaction, I'm gonna assume that your 30 BTC transaction has over 1500 outputs. Nodes are prolly rejecting that transaction due to the large number of outputs.
newbie
Activity: 16
Merit: 0
Quote
Do you know the transaction ID of the 30 BTC transaction?

Thank you for trying to explain Smiley

Transaction ID cf784d45981d21dd57e7c5439b3736ce274ef158e476a4050aaef4512807d5ee-000


I know about the different transactions not adding up to 1 total , but why would bitcoin-QT say it is too large .
I am doing a small transaction here . What if I would want to buy an airplane or an expensive car with my BTC and all my incoming transactions are coming from my online store which all have small transaction amounts .
I will have to go make thousand transactions of 1 BTC to the seller ? This can't be right .


Quote
The new address, however, only has 1 input... If you pay from this address, the transaction will be small, since it'll be one input, and probably only 2 outputs.

So you think sweeping my paper wallet will not have this problem of "transaction too large" in the future , because it only has 2 inputs ?

hero member
Activity: 675
Merit: 504
- How can a transaction be too large , and will this give me any problems when i try to sweep this paper wallet in the future .

Balances are not stored as one total amount, but as a collection of "outputs" connected to Bitcoin addresses. In the simplest of explanations, imagine that you have a theoretical Bitcoin address labeled Bitcoin1. Over the course of time, three separate transactions occurred which sent coins to Bitcoin1. For our example, ignore the value of the coins and just assume that it's a whole number - let's say 10 coins per transaction. If you check the balance of Bitcoin1 in your GUI client, you'll see that you have 30 coins. But in reality, Bitcoin1 does not have 30 coins, but rather 3 transactions of 10 coins each. If you want to move that total balance to another Bitcoin address, each of those individual outputs will have to be tapped and stored as part of the new transaction. Essentially, the more outputs that are involved in the transaction, the larger the transaction is. There are more things involved and more things which I didn't address, but that's basically the gist of it.


- When I check the receiving address it only mentions a 5BTC pending amount . It does not mention the 30BTC . (https://tradeblock.com/bitcoin/address/1MwLVeox7B9nkA8SsopJei3XvGMSBZCwR5)
What could be the issue ?

Do you know the transaction ID of the 30 BTC transaction?

So that means the 'coin' can only breakdown smaller and smaller? is there a way to combine them again? to cut down the size of transaction

it's not really like that...
A fictional example:
you have a new wallet and go faucetting for a year, gathering 2000 faucet payments in your wallet. One day, you empty out this wallet, and send the full balance to a new address => This transaction will be really large, since the transaction will consist of 2000 inputs and one output.

The new address, however, only has 1 input... If you pay from this address, the transaction will be small, since it'll be one input, and probably only 2 outputs.

The transaction size can be estimated like this: in*180 + out*34 + 10

Bitcoin isn't a physical thing... It's just records in a public database Wink
sr. member
Activity: 337
Merit: 250
- How can a transaction be too large , and will this give me any problems when i try to sweep this paper wallet in the future .

Balances are not stored as one total amount, but as a collection of "outputs" connected to Bitcoin addresses. In the simplest of explanations, imagine that you have a theoretical Bitcoin address labeled Bitcoin1. Over the course of time, three separate transactions occurred which sent coins to Bitcoin1. For our example, ignore the value of the coins and just assume that it's a whole number - let's say 10 coins per transaction. If you check the balance of Bitcoin1 in your GUI client, you'll see that you have 30 coins. But in reality, Bitcoin1 does not have 30 coins, but rather 3 transactions of 10 coins each. If you want to move that total balance to another Bitcoin address, each of those individual outputs will have to be tapped and stored as part of the new transaction. Essentially, the more outputs that are involved in the transaction, the larger the transaction is. There are more things involved and more things which I didn't address, but that's basically the gist of it.


- When I check the receiving address it only mentions a 5BTC pending amount . It does not mention the 30BTC . (https://tradeblock.com/bitcoin/address/1MwLVeox7B9nkA8SsopJei3XvGMSBZCwR5)
What could be the issue ?

Do you know the transaction ID of the 30 BTC transaction?

So that means the 'coin' can only breakdown smaller and smaller? is there a way to combine them again? to cut down the size of transaction
sr. member
Activity: 399
Merit: 257
- How can a transaction be too large , and will this give me any problems when i try to sweep this paper wallet in the future .

Balances are not stored as one total amount, but as a collection of "outputs" connected to Bitcoin addresses. In the simplest of explanations, imagine that you have a theoretical Bitcoin address labeled Bitcoin1. Over the course of time, three separate transactions occurred which sent coins to Bitcoin1. For our example, ignore the value of the coins and just assume that it's a whole number - let's say 10 coins per transaction. If you check the balance of Bitcoin1 in your GUI client, you'll see that you have 30 coins. But in reality, Bitcoin1 does not have 30 coins, but rather 3 transactions of 10 coins each. If you want to move that total balance to another Bitcoin address, each of those individual outputs will have to be tapped and stored as part of the new transaction. Essentially, the more outputs that are involved in the transaction, the larger the transaction is. There are more things involved and more things which I didn't address, but that's basically the gist of it.


- When I check the receiving address it only mentions a 5BTC pending amount . It does not mention the 30BTC . (https://tradeblock.com/bitcoin/address/1MwLVeox7B9nkA8SsopJei3XvGMSBZCwR5)
What could be the issue ?

Do you know the transaction ID of the 30 BTC transaction?
newbie
Activity: 16
Merit: 0
I tried sending 35 BTC to a paper wallet , and got an error in bitcoin-QT saying "Transaction too large" .
So i tried sending 30 + 5 . That did actually work . Transaction sizes were 80.862kB for the 30Btc , and 41.685kB for the 5Btc .

Both transactions (30+5) are showing up in my Bitcoin-QT unconfirmed .

2 questions :
- How can a transaction be too large , and will this give me any problems when i try to sweep this paper wallet in the future .
- When I check the receiving address it only mentions a 5BTC pending amount . It does not mention the 30BTC .
What could be the issue ?

Jump to: