Author

Topic: Bitcoin-QT: "This transaction is over the size limit..." (Read 1360 times)

donator
Activity: 1218
Merit: 1079
Gerald Davis
Yeah would look like a bug to me.
legendary
Activity: 3080
Merit: 1688
lose: unfind ... loose: untight
{
"version" : 80600,
"protocolversion" : 70001,
"walletversion" : 60000,
"balance" : <>
"blocks" : 284878,
"timeoffset" : -1,
"connections" : 8,
"proxy" : "",
"difficulty" : 2621404453.06461525,
"testnet" : false,
"keypoololdest" : 1377838311,
"keypoolsize" : 100,
"paytxfee" : 0.00010000,
"unlocked_until" : 0,
"errors" : ""
}
donator
Activity: 1218
Merit: 1079
Gerald Davis
can u post the tx id?  I would be interesting in looking into that.  As based on what you are saying the tx should round up to 1KB and thus require a fee of no more than 0.1 mBTC.

https://blockchain.info/tx/8ac382eb5b25b1066b046b912fbb6253c53d7c3a331430bc750e6fbc4f787550

Quote
Also what version of the QT client were you using.  IIRC the newest (newer?) version has a slightly different wording so I am wondering if you are running an outdated version.

Bitcoin-Qt v0.8.6-beta on OS X 10.7.5

You may want to report that as a bug.  I can't see any reason why the QT client would require more than 0.1 mBTC for that transaction.

Can you run this in debug console  (Help > Debug > Console)
Code:
getinfo

It should look something like this
Quote
getinfo

{
"version" : 80600,
"protocolversion" : 70001,
"walletversion" : 60000,
"balance" : ,
"blocks" : 284843,
"timeoffset" : 19,
"connections" : 8,
"proxy" : "",
"difficulty" : 2621404453.06461525,
"testnet" : false,
"keypoololdest" : 1374273042,
"keypoolsize" : 500,
"paytxfee" : 0.00010001,
"unlocked_until" : 0,
"errors" : ""
}

Just want to verify what the client thinks the tx fee per KB should be paid.

legendary
Activity: 3080
Merit: 1688
lose: unfind ... loose: untight
can u post the tx id?  I would be interesting in looking into that.  As based on what you are saying the tx should round up to 1KB and thus require a fee of no more than 0.1 mBTC.

https://blockchain.info/tx/8ac382eb5b25b1066b046b912fbb6253c53d7c3a331430bc750e6fbc4f787550

Quote
Also what version of the QT client were you using.  IIRC the newest (newer?) version has a slightly different wording so I am wondering if you are running an outdated version.

Bitcoin-Qt v0.8.6-beta on OS X 10.7.5
donator
Activity: 1218
Merit: 1079
Gerald Davis
can u post the tx id?  I would be interesting in looking into that.  As based on what you are saying the tx should round up to 1KB and thus require a fee of no more than 0.1 mBTC.

Also what version of the QT client were you using.  IIRC the newest (newer?) version has a slightly different wording so I am wondering if you are running an outdated version.
legendary
Activity: 3080
Merit: 1688
lose: unfind ... loose: untight
The "over the size limit" message comes up when any fee is required. If you are spending recently-received bitcoins, you will have a minimum fee, which should be the 0.0001 BTC if it's less than a kB.

I guess I was unclear. The transaction consumed 702 bytes, as reported by blockchain.info. QT required me to spend 0.0002 transaction fee.

ETA: for clarity's sake - I already have QT configured for a default of 0.0001.
702 bytes.
wouldn't send it unless I agreed to a higher (0.0002) transaction fee.
legendary
Activity: 1512
Merit: 1036
The "over the size limit" message comes up when any fee is required. If you are spending recently-received bitcoins, you will have a minimum fee, which should be the 0.0001 BTC if it's less than a kB. The message should simply be "at least the minimum fee is required for processing this transaction".

Bitcoin-Qt doesn't attempt to minimize the fee of any particular transaction - that would just leave you more expensive dust for later. What it does is attempt to minimize change. If you have received 2 BTC, 5 BTC, and a whole bunch of 0.001 dust, when you attempt to send 2.05, it's going to use all the dust to get to that amount instead of spending the 5 BTC, which would result in a big change amount back to you.

legendary
Activity: 3080
Merit: 1688
lose: unfind ... loose: untight
Nope, still don't understand.

Elsewhere, I think I saw that the transaction fee was 0.0001 per kB. Is this correct?

New transaction, 4 unspent outputs to one payment address plus one change address. 702 bytes. "This transaction is over the size limit..." WTF?
legendary
Activity: 3080
Merit: 1688
lose: unfind ... loose: untight
https://github.com/bitcoin/bitcoin/issues/3631

Please let me know if my description is unclear.
donator
Activity: 1218
Merit: 1079
Gerald Davis
bug?  That would seem a very easy output for the coin selection algorithm to pick up on and it didn't.   Coin selection is a work in progress.  There are some other clients which support coin control (you pick the exact outputs you want to use).
legendary
Activity: 3080
Merit: 1688
lose: unfind ... loose: untight
The balance of an address is not relevant.  There actually is no such thing at the protocol level.  The value and number of unspent outputs is.

Thanks, DT, that makes sense, now that I am told. However....

Quote
QT client does try to reduce the size of the tx.  ...

You can get a list of the unspent outputs with the RPC command "listunspent".

Running listunspent (thanks for the tip, BTW), I find among the entries the following:

Code:
{

"txid" : "<>",

"vout" : 1,

"address" : "<>",

"scriptPubKey" : "<>",

[b]"amount" : 2.63837522,
[/b]
"confirmations" : 8175

},


Why did QT not choose this unspent output to fulfill the 1.4+ transaction, thereby saving the transaction fee? From your statement that "QT does try to reduce the size of the tx", I would think that it would have. Somehow, the observed behavior does not seem to square with your statement.
donator
Activity: 1218
Merit: 1079
Gerald Davis
The balance of an address is not relevant.  There actually is no such thing at the protocol level.  The value and number of unspent outputs is.

For example.  I send to a single address 1/1000th of a BTC in 1000x different tx, you don't have 1 BTC at the address.  You have 1,000 unspent outputs worth 1/1000th of a BTC each. For you to spend 1 BTC is going to require you to spend all 1,000 of those unspent outputs (outputs become inputs for new tx).  If I changed it and sent you 1/1000th of a BTC to 1,000 addresses it wouldn't make the situation any better or worse.

QT client does try to reduce the size of the tx.  A smaller tx could result in significant reduction in fees (i.e. you have one 1.4 BTC unspent output and then tons of spam worth <0.1 BTC combined.  Trying to spend 1.4x BTC may result in a tx 100x larger than trying to spend 1.4 BTC). 

You can get a list of the unspent outputs with the RPC command "listunspent".

On the command line:
Code:
bitcoind listunspent
In the QT client, debug window:
Code:
listunspent
legendary
Activity: 3080
Merit: 1688
lose: unfind ... loose: untight
Bitcoin-QT v0.8.6beta on OS X 10.7.5

I understand the need to charge a greater fee for large (in bytes) transactions. What I cannot understand is why my transaction would be so large.

Trying to send 1.43825089. Surely (he uttered, not really being sure at all) there is at least one address in my wallet that could fulfill this transaction all by its lonesome. Why then are a number of dust addresses being concatenated to make this transaction? Even at that, while I am not sure, I would _think_ I have few to no dust addresses.

Does QT just pick random addresses (within the wallet) from which to build a payment? Is there a way to get QT to tell me directly the balance on each address (hopefully including change addresses)? Or do I need to use some external tool to do this?
Jump to: