Bitcoin Forum
November 13, 2024, 10:36:32 AM *
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: Blockchain Wallet cant send BTC past few days  (Read 1834 times)
dmatthewstewart (OP)
Sr. Member
****
Offline Offline

Activity: 439
Merit: 250



View Profile
January 24, 2013, 04:18:38 AM
 #1

Anyone else having this problem? I cant send any coins out of my blockchain wallet. I keep waiting a day to see if it was just a temp problem but its been 3 days now and I still cant send any coins. Receiving is no problem

dmatthewstewart (OP)
Sr. Member
****
Offline Offline

Activity: 439
Merit: 250



View Profile
January 24, 2013, 04:24:42 AM
 #2

Never mind. It finally just worked after 3 days. Not only that it charged my .02 to send .06 btc to Satoshi Dice. WTF is that about? That is an awfully large fee!

It used to be much lower. Im taking my coins out of blockchain wallet. Since I have complained a few times the vindictive creeps that run the site prob charged me extra.

Basically charged a 40% fee

https://blockchain.info/tx/d0b7fd8d867fc4a4f3a3114e4869732aa088b45b2c732e7648b2be911d097d10

jim618
Legendary
*
Offline Offline

Activity: 1708
Merit: 1066



View Profile WWW
January 24, 2013, 08:26:59 AM
 #3

If you look at the size of the transaction it is over 43KB. Most simple transactions are less than a kilobyte. That will most likely be the cause of the fee.

MultiBit HD   Lightweight desktop client.                    Bitcoin Solutions Ltd   Bespoke software. Consultancy.
Mike Hearn
Legendary
*
Offline Offline

Activity: 1526
Merit: 1134


View Profile
January 24, 2013, 12:45:21 PM
 #4

The problem is the way SatoshiDice operates, it's got nothing to do with blockchain.info

Your wallet is full of tiny coins that represent nearly no value at all. In effect you're making a spend composed entirely of micropayments. So the amount of work needed to verify your transaction is much larger than normal but the value moved is much smaller than normal. To avoid Bitcoin being flooded with useless transactions just to break the system, such transactions are charged high fees.

Partly this is SDs fault. It tells you that you lost a bet by sending a tiny micropayment back to your wallet. Eventually you end up with tons of these tiny-as-possible coins which must be aggregated to make a spend.

The fix is twofold:

1) Make bigger bets
2) SD needs to change how it works so it doesn't abuse micropayments as a messaging system

DannyHamilton
Legendary
*
Offline Offline

Activity: 3486
Merit: 4851



View Profile
January 24, 2013, 08:24:48 PM
 #5

Blockchain.info isn't the only place you'll have this fee problem.  The reference code that implements the official protocol should calculate the same fee.  Any client that implements the protocol as specified in the reference code will also have the same fee.  Blaming blockchain.info isn't going to help you.

Code:
int64 CTransaction::GetMinFee(unsigned int nBlockSize, bool fAllowFree,
                              enum GetMinFee_mode mode) const
{
    // Base fee is either MIN_TX_FEE or MIN_RELAY_TX_FEE
    int64 nBaseFee = (mode == GMF_RELAY) ? MIN_RELAY_TX_FEE : MIN_TX_FEE;

    unsigned int nBytes = ::GetSerializeSize(*this, SER_NETWORK, PROTOCOL_VERSION);
    unsigned int nNewBlockSize = nBlockSize + nBytes;
    int64 nMinFee = (1 + (int64)nBytes / 1000) * nBaseFee;

    if (fAllowFree)
    {
        if (nBlockSize == 1)
        {
            // Transactions under 10K are free
            // (about 4500 BTC if made of 50 BTC inputs)
            if (nBytes < 10000)
                nMinFee = 0;
        }
        else
        {
            // Free transaction area
            if (nNewBlockSize < 27000)
                nMinFee = 0;
        }
    }

    // To limit dust spam, require MIN_TX_FEE/MIN_RELAY_TX_FEE if any output is less than 0.01
    if (nMinFee < nBaseFee)
    {
        BOOST_FOREACH(const CTxOut& txout, vout)
            if (txout.nValue < CENT)
                nMinFee = nBaseFee;
    }

    // Raise the price as the block approaches full
    if (nBlockSize != 1 && nNewBlockSize >= MAX_BLOCK_SIZE_GEN/2)
    {
        if (nNewBlockSize >= MAX_BLOCK_SIZE_GEN)
            return MAX_MONEY;
        nMinFee *= MAX_BLOCK_SIZE_GEN / (MAX_BLOCK_SIZE_GEN - nNewBlockSize);
    }

    if (!MoneyRange(nMinFee))
        nMinFee = MAX_MONEY;
    return nMinFee;
}
piuk
Hero Member
*****
Offline Offline

Activity: 910
Merit: 1005



View Profile WWW
January 25, 2013, 01:39:01 AM
 #6

Since I have complained a few times the vindictive creeps that run the site prob charged me extra.

Blockchain does not charge any transaction fees, the fee paid is to the bitcoin miners in order to keep the network secure.

Following the standard rules the fee for this transaction should have been higher (0.01 BTC * 43 KB = 0.43 BTC fee) which is why it is taking a long time to confirm. If the transaction never confirms you may need to split it into much smaller transactions or merge it with higher value outputs.

dmatthewstewart (OP)
Sr. Member
****
Offline Offline

Activity: 439
Merit: 250



View Profile
January 27, 2013, 06:12:53 PM
 #7

Thanks for all the replies. They were very helpful.

While I understand that most of my transactions consist of micropayments I fully understand the reasoning behind verification and the fees. However, this was not always the case. I have had this wallet for quite a while. Small bets to Satoshi dice were sometimes over 100 per day. Never have I had to wait days for confirmation, nor incurred any percentage fee this high. I am looking back to bets made just 5 months ago; most were as low as .01 and some were as high as 1.5 btc. They would confirm fast and I would get  a return payment (either winning or losing) nearly instantly.

I just want to know what changed and who changed it. Right now, any transaction leaving that wallet is having trouble as well. What I want to know is what changed from a few months ago and what the best way for me to get my coins out of the blockchain wallet. While that wallet has a balance of just over 2 btc I have another wallet that has accumulated 84 btc (on block chain wallet too) and I just want the coins out of there. Suggestions?

-Thanks

Douglas

Photon939
Sr. Member
****
Offline Offline

Activity: 452
Merit: 250



View Profile
January 27, 2013, 06:27:52 PM
 #8

The more you gamble on SD the more dust spam you accumulate in your wallet. Eventually you will need to try and combine that dust into a larger payment. This is where you get smacked with fees.

Edit: think of it this way, you go to a sandwich shop and buy lunch - instead of handing the cashier a $10 bill to pay for your $6.54 lunch, you hand them a bag of pennies.
DannyHamilton
Legendary
*
Offline Offline

Activity: 3486
Merit: 4851



View Profile
January 28, 2013, 01:15:39 AM
 #9

. . . think of it this way, you go to a sandwich shop and buy lunch - instead of handing the cashier a $10 bill to pay for your $6.54 lunch, you hand them a bag of pennies.

Better yet, think of it this way:

You start with a single transaction with a 100 BTC output to you.

You send a single transaction to Satoshi Dice (SD) for 0.01 BTC.  To do this most bitcoin wallets create a transaction that has 1 input (100 BTC) and 2 new outputs (99.99 BTC back to you and 0.01 to SD).

If you lose, SD creates a transaction back to you with a 0.00000001 BTC output.
Your wallet now has 2 outputs it can spend (one for 99.99 BTC and one for 0.00000001 BTC).

If you win SD creates a transaction back to you with with your winnings (perhaps 0.02 BTC?).
Your wallet now has 2 outputs it can spend (one for 99.99 BC and one for 0.02 BTC).

The next time you play, your wallet chooses to spend the 99.99 BTC output.  It creates a new 99.98 BTC output to you and a 0.01 BTC output to SD.

If you lose, SD creates a transaction back to you with a 0.00000001 BTC output.
Your wallet now has 3 outputs it can spend (one for 99.98 BTC, one for 0.00000001 BTC from this play, and one either for 0.02 or 0.00000001 BTC from previously).

If you win SD creates a transaction back to you with with your winnings (perhaps 0.02 BTC?).
Your wallet now has 3 outputs it can spend (one for 99.98 BC, one for 0.02 BTC from this play, one for either 0.02 or 0.00000001 BTC from previously).

Keep at this long enough and that 99+ BTC output will continue to dwindle, and the number of tiny outputs will continue to grow.
Eventually you won't have a single big enough output to spend for your bet.  Your wallet will need to combine all those tiny outputs to create a transaction for the amount of bitcoin you want to spend. Take a look at the transaction you posted and you can see all the tiny outputs that had to be combined to create your transaction.

The Bitcoin-Qt "reference client" would have the same issue.  Most wallets would.

If you receive a single large output (perhaps 50 BTC) at your wallet, you might be able to create a transaction for a bit more than 50 BTC (perhaps 50.01?, perhaps 50.001?) and send it to an address you control.  Then the wallet can sweep up some of that dust along with the single 50BTC output creating a new slightly larger output (as I said, perhaps 50.01 BTC or 50.001?).  After the 50BTC gets a handful of confirmations, you could send it again with a slightly larger amount sweeping up a bit more dust again.  You could do this enough times sending slightly larger amounts each time until all the dust is swept up.

The other option is to wait until BTC becomes far more valuable (assuming it eventually does).  When 0.00001 BTC represents a significantly larger buying power, the fees may be reduced further and quantities as small as 0.0000001 may no longer be considered spammy "dust".


Mike Hearn
Legendary
*
Offline Offline

Activity: 1526
Merit: 1134


View Profile
January 28, 2013, 10:32:51 AM
 #10

Over time wallets will I think gain defragmentation features so you don't get hit with the big fees all at once. But ultimately SD needs to change. The way it works now is a cute hack but not sustainable.
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!