Pages:
Author

Topic: Treat dust outputs as non-standard, un-hardcode TX_FEE constants (Read 3414 times)

full member
Activity: 126
Merit: 100
Capitalism is the crisis.
Dust is tasty, throwaway dumpsterfood. To constantly google away on my little smartphone looking for ways to dumpsterdive for free btc is beneficial to my wallet while not fucking with Murican poisonmoney ever at all ever.
BAM! The minimum standard size for "a box of bruised apples" has increased? Oh Joy!
Imma find larger minimum payouts now.
Metaphors? Metaphors!
Also, arbitrary optional stopgap default settings are cool.
legendary
Activity: 2142
Merit: 1009
Newbie
Just confirming, I can send from unspent outputs worth less than 54.3uBTC each, right? So if I've already received several transactions that were worth 54.3uBTC or less each, I can then spend those outputs?

Yes.
member
Activity: 63
Merit: 10
Vires in Numeris
Just confirming, I can send from unspent outputs worth less than 54.3uBTC each, right? So if I've already received several transactions that were worth 54.3uBTC or less each, I can then spend those outputs?
legendary
Activity: 1078
Merit: 1002
100 satoshis -> ISO code
... This pull request is the first step towards a market between miners (who want higher fees) and merchants/users (who want lower fees, but also want their transactions confirmed). Miners can already control what fees they accept, this pull lets users control (very clumsily, improvements on the road map) the fee they are willing to pay.

Great work Gavin and team. I support this approach 100%.
sr. member
Activity: 448
Merit: 252
SatoshiDice never sends transactions under 5000 satoshis, though almost everyone forgets this, or never learned it. This new patch may require SD to increase the 5000 satoshi txs to 5430 satoshis.

Oh dear, so $0.0064 instead of $0.0059?  Not feeling much sympathy.

I feel bad for being snarky here, sorry.  Perhaps there's still time to lobby for the default to go down to 5000 (nice round number?), or maybe enough pools and other node operators would support you on a small change like this.  But if not, there are worse cost-of-business increases than this, and the changeover cost should be negligible.
staff
Activity: 4172
Merit: 8419
Are any of your addresses compressed form?  Maybe you can cut a deal with pools to mine your sub-5000-satoshi txns if you switch to compressed addresses, which save 32 bytes per spend.

I recommend using this compressed key:

Address: 1diceineSzVPNQnCZB7mZz2Sjp5UpjnPR
Privkey: L1fSLx5RBKakdM8LqHXNMwbDAQTc8zevJxgG23uPryogxUmCyYbQ

(I've modified vanitygen to generate compressed keys, but only the cpu code as I no longer have any GPUs… it's even faster than uncompressed key searching. But I can't really justify putting in the time to do gpu support or test it out well enough to publish it. Tongue)
sr. member
Activity: 448
Merit: 252
SatoshiDice never sends transactions under 5000 satoshis, though almost everyone forgets this, or never learned it. This new patch may require SD to increase the 5000 satoshi txs to 5430 satoshis.

Oh dear, so $0.0064 instead of $0.0059?  Not feeling much sympathy.

Are any of your addresses compressed form?  Maybe you can cut a deal with pools to mine your sub-5000-satoshi txns if you switch to compressed addresses, which save 32 bytes per spend.
full member
Activity: 229
Merit: 103
Now I have 11 GB to keep the entire blockchain in my computer. I am not a miner. Would I earn any revenue to keep theses GB into my HD? That would be nice!

Thanks.
legendary
Activity: 1008
Merit: 1021
Democracy is the original 51% attack
I await SatoshiDice's response.

SatoshiDice never sends transactions under 5000 satoshis, though almost everyone forgets this, or never learned it. This new patch may require SD to increase the 5000 satoshi txs to 5430 satoshis.
hero member
Activity: 900
Merit: 1014
advocate of a cryptographic attack on the globe
Y'all read the pull request, yes?

So: if you have a better suggestion for fixing the problem of new users wasting lots of time gathering tiny drips and drabs of bitcoins, and then getting upset when they can't spend them (because it costs more in fees that they are worth), I'm open to suggestions.

RE: "what about when bitcoins are worth a million dollars apiece"

Umm, that's what the "un-hardcode TX_FEE constants" part is all about?

RE: trolling about Foundation setting the fee:

Go back under your rock, please. This pull request is the first step towards a market between miners (who want higher fees) and merchants/users (who want lower fees, but also want their transactions confirmed). Miners can already control what fees they accept, this pull lets users control (very clumsily, improvements on the road map) the fee they are willing to pay.

He has a road map for future changes:

"Road map:

Re-implement the memory pool, and keep statistics on transactions that enter and then leave by being included in a block. Protect CTransaction::nMinFee/nMinRelayFee with a mutex, and modify those by that memory pool code.

So IsDust() will be based on what is actually being accepted into blocks, and will adjust appropriately.

Do the same for free transactions (estimate priority needed to get included in block).

Modify the RPC code to either send for free (if priority is high enough, based on estimate) or send with reasonable fee (based on fee estimate).

And modify GUI code to either just send for free or recommend sending with a fee."
newbie
Activity: 30
Merit: 0
Stupid idea. I'm not going to use this.
legendary
Activity: 1232
Merit: 1083
Start with a 1 input 2 output transaction that looks like both outputs are of a reasonably high value.

At the moment, miners only have an incentive to charge per MB, since that is the limited factor.

You could have a maximum UTXO expansion rule.  1MB @ 350 bytes means around 3k transactions per block. 

What about adding a rule that the number of outputs is limited to 500 more than the number of inputs.  This means that the UTXO set would increase by at most 500 per block.  Also, miners might actually pay to include transactions which have more inputs than outputs.  I assume the protocol doesn't allow negative fee transactions?

Ofc, it would be adding another MAX_BLOCK_xxx like rule.

Having said that, you would need the rule to only apply to UTXOs from blocks that came in the rule, or you get massive bloat in the run-up.
legendary
Activity: 1120
Merit: 1149
Fair enough.  However, what is the issue with a 2 input, 2 output transaction that pays fees in bitcoin?  How does that cause spam?

Start with a 1 input 2 output transaction that looks like both outputs are of a reasonably high value.
legendary
Activity: 1232
Merit: 1083
Minimum transaction output is (conservatively) calculated from the minimum relay fee setting.  It did exist before, it was just set to '1 satoshi'.

Fair enough.  However, what is the issue with a 2 input, 2 output transaction that pays fees in bitcoin?  How does that cause spam?
legendary
Activity: 1652
Merit: 2216
Chief Scientist
RE: NODE_RELAYCOST :

I'm generally against any "take my word for it" settings.  What would stop somebody Up To No Good from setting NODE_RELAYCOST and then lying about what they will relay?  Miners might decide to try to increase fees by Sybil-attacking the network and lying about NODE_RELAYCOST....
legendary
Activity: 1652
Merit: 2216
Chief Scientist
It also adds a minimum transaction output "magic number".  That is an additional rule.  It doesn't exist at the moment right ?

Minimum transaction output is (conservatively) calculated from the minimum relay fee setting.  It did exist before, it was just set to '1 satoshi'.

We made 0-satoshi outputs non-standard a couple of releases ago, but consensus is that was a mistake-- 1-satoshi is not the right number, because the marginal cost of spending a 1-satoshi output is greater than its value.

Again, eventually it might be economical to spend 1-satoshi outputs. When it is, the minimum relay fee will be on the order of a satoshi or two, and this code will do the right thing.
legendary
Activity: 1232
Merit: 1083
The changes make sense. Right now Bitcoin has a large variety of what we call "magic numbers". They're just arbitrary choices that may have made sense at some point but aren't guaranteed to make sense in future. For the case of fees, Gavin's change is the first step towards removing these magic numbers and making them more dynamic.

It also adds a minimum transaction output "magic number".  That is an additional rule.  It doesn't exist at the moment right ?
staff
Activity: 4172
Merit: 8419
How about if all those are changed to just options in the clients? you know inside teh freaking bitcoin.conf. Then the devs could SUGGEST and not IMPOSE.
Your ignorance is showing. Will you be apologetic when you realize that you look foolish here? Sadly, I expect not.
If I apologized for the ignorance would you get off your high heels and point the ignorance out?
You've got yourself a deal!   The base fee that this is set based on is configurable in bitcoin.conf, just as you were demanding.  The option won't be promoted at least initially because its relatively important that the network have roughly consistent settings (or transactions will get stuck when they get poor propagation due to being right on the boundary) and changing it on your own system won't change miners or your peers, but it's absolutely settable in order to avoid forcing everyone to update (or recompile) should people start selling cars for 1 BTC. Smiley
legendary
Activity: 1120
Merit: 1149

You don't have to boycott the changes. Just ask mining pools to keep using the existing rules and setup some relay nodes that don't use them. A profit-driven miner has every reason to accept transactions based purely on what fee per KB they pay; UTXO costs per miner per transaction are tiny even if the overall cost to the network is large.

Mike Hearn suggested changing the protocol version as part of the pull-request. What you can do is setup a DNS seed that uses that change to find nodes that still use the existing rules to make it easy to find peers to relay your dusty transactions. Adding a new service bit would work even better. I run the testnet seed - ask me if you need any help.

edit: Added a suggestion to the pull request for a NODE_RELAYCOST service bit so nodes can advertise the minimum "cost" required to relay a transaction through them.
legendary
Activity: 1526
Merit: 1129
The changes make sense. Right now Bitcoin has a large variety of what we call "magic numbers". They're just arbitrary choices that may have made sense at some point but aren't guaranteed to make sense in future. For the case of fees, Gavin's change is the first step towards removing these magic numbers and making them more dynamic.

Because the work is complex this change is only the first of several. It reduces the fee charged from the current level to reflect the higher exchange rate, and tweaks some other rules to be more internally consistent.

Eventually the goal is to have no hard-coded magic fee levels at all, so manual adjustments to reflect big exchange rate swings aren't needed any more. But we're not there yet.
Pages:
Jump to: