Pages:
Author

Topic: How to send BitCoins with LOW TX FEE (Not No TX Fee) - page 2. (Read 8317 times)

legendary
Activity: 1890
Merit: 1086
Ian Knowles - CIYAM Lead Developer

Didn't know you could add the line # to such source links - nice!

But just below that is the following:

Code:
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;
        }
    }

And the call you showed to this function sets fAllowFree to true.
legendary
Activity: 1498
Merit: 1000
Read the code, not some wiki.

Priority is only used if the minimum fee is zero. If there is a dust output, the minimum fee calculated by GetMinFee() is not zero.

You have no link to the code, I can't take your word for a snippet, but I am still 99.999999% sure that dust, that is aged can be sent without a fee, if aged. I coded a faucet, I kinda know what I am talking about in that sense, and the wiki is also pretty reliable.
legendary
Activity: 1120
Merit: 1160
Read the code, not some wiki.

Priority is only used if the minimum fee is zero. If there is a dust output, the minimum fee calculated by GetMinFee() is not zero.
legendary
Activity: 1120
Merit: 1160
Not if aged, if aged long enough no fees are force, or even needed. This is prevent spamming the blockchain.

No, CTxMemPool::accept() won't accept such a transaction into the mempool at all:

Code:
int64 txMinFee = tx.GetMinFee(1000, true, GMF_RELAY);
if (fLimitFree && nFees < txMinFee)
    return error("CTxMemPool::accept() : not enough fees %s, %"PRI64d" < %"PRI64d,
                        hash.ToString().c_str(),
                        nFees, txMinFee);

and CTransaction::GetMinFee():

Code:
// 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;
}

Age has nothing to do with it.
legendary
Activity: 1890
Merit: 1086
Ian Knowles - CIYAM Lead Developer
That's not it - the default fee rules force fee payment on dust outputs.

If the output is old enough then no tx fee is necessary (even if it is only 1 Satoshi).
legendary
Activity: 1120
Merit: 1160
They send it once a day, probably other external funds that are aged.

That's not it - the default fee rules force fee payment on dust outputs.
legendary
Activity: 1498
Merit: 1000
Well...how the fuck are all these other PTC/Faucets doing it without running a 10x loss on what they send!?

They send it once a day, probably other external funds that are aged.
legendary
Activity: 1120
Merit: 1160
Well...how the fuck are all these other PTC/Faucets doing it without running a 10x loss on what they send!?

I dunno. Maybe they are too? Where an example of one of their transactions for us to look at?
full member
Activity: 196
Merit: 100
Well...how the fuck are all these other PTC/Faucets doing it without running a 10x loss on what they send!?
legendary
Activity: 1120
Merit: 1160
So... No solution as of yet has been proposed and the 1000% fee is .... not workable. I want to send thousands of people BTC! RIGHT NAO. Anyone know of a working method to have a even remotely reasonable tx fee ?

The Bitcoin blockchain is not a microtransactions payment system.
legendary
Activity: 1890
Merit: 1086
Ian Knowles - CIYAM Lead Developer
And to quote myself:

oic - am guessing the best way to avoid fees with a faucet would be to have all its UTXOs being the exact amount as the outputs you wish to send and then just make sure that the wallet is "old" enough so that no tx fees are required at all (and replace wallets with new ones as they get exhausted).

(although that might mean having to put a month delay between now and your next payouts to age the coins enough)

Note that using uniform payment UTXOs (i.e. no change needed) will help to avoid getting even newer dust UTXO's every time you make a payout.
legendary
Activity: 1498
Merit: 1000
So... No solution as of yet has been proposed and the 1000% fee is .... not workable. I want to send thousands of people BTC! RIGHT NAO. Anyone know of a working method to have a even remotely reasonable tx fee ?

Ok your running a faucet, since your transactions are very small probably I am guessing, this is how the network protects it's self, so having no fees will never happen, you can set the fee to zero it will or may never confirm, and low fees aren't possible, unless you age the coins for a long time. So right now the best way, is the way your doing it.
full member
Activity: 196
Merit: 100
So... No solution as of yet has been proposed and the 1000% fee is .... not workable. I want to send thousands of people BTC! RIGHT NAO. Anyone know of a working method to have a even remotely reasonable tx fee ?
full member
Activity: 196
Merit: 100
lol! Max debug console input is 32,767 characters

Also got this error...

Quote
Error: value is type int, expected obj

Something tells me this has something to do with it

Code:
amounts are double-precision floating point numbers (code -1)

UPDATE:

After a JSON Error, a few Invalid BitCoin Address errors, and a insufficient funds error I finally got it to sendmany Smiley But....

980% the amount transferred just to send it!

Code:
BTC Transacted: 0.001422 BTC
Transaction fee: -0.014 BTC
Net amount: -0.015422 BTC
Transaction ID: da3d8921166b8509fb7777b3f8bcb32805014e42d1e667fc9d2769d7d943b4f9

That was just a test really, 4 days worth of 'Single BitHitters' - 711 Addresses Paid Smiley

also........ Unless There is a way I can pass more data to the Debug Console I cant do much larger tx then that.... 711 is only 49 addresses short of my source list I was using...

This....might actually be a HIGHER fee then what sending normally with the GUI was ?
legendary
Activity: 1498
Merit: 1000
I think I can make a script that will create such a request.. Smiley

If your using php it is really easy get all address and amount put them into an array, then run json_encode on the array and then pass it to the bitcoind
legendary
Activity: 1498
Merit: 1000
... is there a client that can do sendmany ?

..i found this

Code:
sendmany {address:amount,...} [minconf=1] [comment]

That would be a very very long command thou...

I generally send to about 2000+ addresses at once.

Yes this is the correct way to do it with 2000+ addresses as long as you have the funds it will work.
full member
Activity: 196
Merit: 100
I think I can make a script that will create such a request.. Smiley

Code:
    y = 0
    For x = 0 To UBound(BTCAd)
        SendMany = SendMany & "," & Chr(34) & BTCAd(y) & Chr(34) & ":" & Val(Text1.Text)
        y = y + 1
        Sleep (1)
    Next x
SendMany = "sendmany BitHits.info '{" & SendMany & "}' 0"
Text2.Text = SendMany
legendary
Activity: 1428
Merit: 1000
... is there a client that can do sendmany ?

default bitcoind with commandline or rpc
or you use blockchain.info
full member
Activity: 196
Merit: 100
... is there a client that can do sendmany ?

..i found this

Code:
sendmany  {address:amount,...} [minconf=1] [comment]

That would be a very very long command thou...

I generally send to about 2000+ addresses at once.
Pages:
Jump to: