Pages:
Author

Topic: [UPDATE: 2015-05-10] Bitcoin Core soft-fork "No Forced TX Fee" v0.10.1 available - page 10. (Read 59296 times)

legendary
Activity: 1470
Merit: 1006
Bringing Legendary Har® to you since 1952
Already done.
Uh, where? As Gavin pointed out, allowing users to send no-fee transactions which wont even be relayed is not a solution, instead the fee algorithms (which currently arent very good) need to be redone into something more workable.

I am talking about thinking this whole case over, which is already done.
And my conclusion is that experts settings should be added for people who want to risk their money.
hero member
Activity: 755
Merit: 515
Already done.
Uh, where? As Gavin pointed out, allowing users to send no-fee transactions which wont even be relayed is not a solution, instead the fee algorithms (which currently arent very good) need to be redone into something more workable.
legendary
Activity: 1470
Merit: 1006
Bringing Legendary Har® to you since 1952
Yes, but users are, in general, stupid and will do it anyway,

Easy. Add expert settings in config file.
So called "stupid" users usually don't know what config file is and how to use it.

Problem solved.

If you want to help, think through,

Already done.

suggest,

Done.

take comments on,

Done.

and implement a new fee system

Can't do.
I can diff, merge, patch, fork, compile, package, change minor things, but I cannot develop things with medium to big complexity on my own as it would be irresponsible & dangerous with my minimal C++ skill.

So I think I did all I could here.
hero member
Activity: 755
Merit: 515
First, thank you for responding at last.
I didn't realize that i will have to make a fork to get your attention.
This has been discussed at length by gavin and others long before this fork.

Of course i realize this is not the proper solution to the problem, this is only a temporary fix.

As i said earlier in this topic, there should be additional dialog saying like "Are you sure you want to do this ? Your coins may get lost forever", which perhaps only shows up when "expert mode" is selected either in bitcoin config or in preferences somewhere in the GUI.
Yes, but users are, in general, stupid and will do it anyway, and generate a ton of not-even-relayed transactions, then complain that their transactions take forever to confirm.  If you want to help, think through, suggest, take comments on, and implement a new fee system which solves the issue instead of duplicating effort on a patch that has already been done (several times).  Or, if you don't get around to that, just wait, sipa is working on a new solution which could hopefully solve the no-confirm issue, and its probably a 4.1 or 4.2 feature.
legendary
Activity: 1470
Merit: 1006
Bringing Legendary Har® to you since 1952
So I guess no mainline client developer is going to talk to me seriously about this.

Somehow, I am not surprised.
legendary
Activity: 1470
Merit: 1006
Bringing Legendary Har® to you since 1952
First, thank you for responding at last.
I didn't realize that i will have to make a fork to get your attention.


"Pick a fee and hope my transaction makes it into a block" is NOT the right answer. And we've already seen what happens when there is a mismatch between miner transaction fee policies and client transaction fees (remember the big backlog of low-priority transactions we had a couple of months ago?).

Of course i realize this is not the proper solution to the problem, this is only a temporary fix.

As i said earlier in this topic, there should be additional dialog saying like "Are you sure you want to do this ? Your coins may get lost forever", which perhaps only shows up when "expert mode" is selected either in bitcoin config or in preferences somewhere in the GUI.

The whole point is, forcing a fee on everybody is so very very, VERY not libertarian. I am a free man, and if i want to risk losing my money, then so be it. That is my choice.

I hate when somebody imposes something on me. I want to be given a choice. Always. Isn't this the whole point of open source ?
legendary
Activity: 1652
Merit: 2301
Chief Scientist
A long-term fix for transaction fees (as opposed to the ad-hoc "we'll just try to guess what the 'right' fees are") is high on my priority list for bitcoin. There are only two very-high-priority things on my bitcoin wish list:  fix scaling issues and make sure we have any infrastructure in place to support ultra-high-security wallets. Fixing transaction fees is a scaling issue.

"Pick a fee and hope my transaction makes it into a block" is NOT the right answer. And we've already seen what happens when there is a mismatch between miner transaction fee policies and client transaction fees (remember the big backlog of low-priority transactions we had a couple of months ago?).
legendary
Activity: 1470
Merit: 1006
Bringing Legendary Har® to you since 1952
I would have your client be better and more simple if you are really gonna mess around with txfee. You can get rid of the confusing "this is over the minimum size" message. However, no TX fee = block bloat DOS tool. A naughty boy could scrape the forum and the net for bitcoin addresses and send them all .00000001 thousands of times for $10.
You are talking about a "naughty boy" who cannot change the code himself.
It will still be easy for all technical types/hackers/people with a lot of money to change the mainline client and send as many spam/dust transactions as they want.

No, a "naughty boy" who can't change the software other people are using. The DDOS protection comes not from the fact that your client won't do it, but from the refusal of most potential neighbors to relay it and miners to miner it. Your client's refusal is your protection from the protection.


Didn't I say like 5 times in this topic that i didn't touch any relaying code, did I ?

This is what I am talking about the entire thread (about the devs not letting me create transaction without a fee), were you actually listening ?
staff
Activity: 4284
Merit: 8808
I would have your client be better and more simple if you are really gonna mess around with txfee. You can get rid of the confusing "this is over the minimum size" message. However, no TX fee = block bloat DOS tool. A naughty boy could scrape the forum and the net for bitcoin addresses and send them all .00000001 thousands of times for $10.
You are talking about a "naughty boy" who cannot change the code himself.
It will still be easy for all technical types/hackers/people with a lot of money to change the mainline client and send as many spam/dust transactions as they want.

No, a "naughty boy" who can't change the software other people are using. The DDOS protection comes not from the fact that your client won't do it, but from the refusal of most potential neighbors to relay it and miners to miner it. Your client's refusal is your protection from the protection.
legendary
Activity: 1470
Merit: 1006
Bringing Legendary Har® to you since 1952
I would have your client be better and more simple if you are really gonna mess around with txfee. You can get rid of the confusing "this is over the minimum size" message. However, no TX fee = block bloat DOS tool. A naughty boy could scrape the forum and the net for bitcoin addresses and send them all .00000001 thousands of times for $10.

You are talking about a "naughty boy" who cannot change the code himself.

It will still be easy for all technical types/hackers/people with a lot of money to change the mainline client and send as many spam/dust transactions as they want.


-----------
I added a proper warning in the starting post of this topic.
As of now, this fork is not suited for Bitcoin newbies.
legendary
Activity: 1470
Merit: 1006
Bringing Legendary Har® to you since 1952
Actually, in the latest update i fixed the AllowFree() to be normal and only modified bool CreateTransaction(), so that dust spam relaying code becomes unchanged.

Unless I am wrong, the only thing that is changed now is creating new transactions.

Code:
In CreateTransaction():

Before:
                bool fAllowFree = CTransaction::AllowFree(dPriority);
                int64 nMinFee = wtxNew.GetMinFee(1, fAllowFree);

After:
                //Bitcoin NFTF Patch - changed by ShadowOfHarbringer START
                int64 nMinFee = wtxNew.GetMinFee(1, true);
                //Bitcoin NFTF Patch - changed by ShadowOfHarbringer END

So you're willing to put pre-built binaries out there that let people send transactions that wont pass the spam checks. And said binaries also will not forward transactions that don't pass the spam rules if they see them?

You don't see the problem here?

Unless i overlooked something in the code, CreateTransaction() is not used for relaying transactions, but for creating them (=sending money) is it ?
So what is the problem exactly ?


Well, whatever are the details of all this, none of the devs seems to care even to talk to me about this.
So i find this extremely suspicious.
I wonder if some (or all) of them didn't invest heavy money in mining. After all, who would want to intentionally decrease their profits ?
lol, look at all the recent blocks. the transaction fees were super low. take off your tinfoil hat, and admit to yourself that your concern is useless. "derp a dev won't respond to me. MUST BE SOME CONSPIRACY GOING ON INVOLVING THE DEVS, THE ILLUMINATI, AND THE 9001 YEAR OLD MINING CREED"

last 3 blocks:
Generation: 50 + 0.80834234 total fees
Generation: 50 + 0.30386 total fees
Generation: 50 + 0.1656 total fees

Not all of them are "super low".
There is a topic on this forums with a guy which claims that he was forced to pay something around 20% fees for sending 50 BTC of money (I may remember the exact numbers wrong, but you get the idea).

But that is of course talking about the old version having 0.01 fee, not 0.0005.
jr. member
Activity: 41
Merit: 41
If only it was that easy! It also would be a lot easier if fees were a fixed amount per transaction, as grue believes, instead of per KB, but that's not feasible.
The whole problem is that tx fees are added on top of the withdrawal amount. The user's withdrawal transaction proceeds without warning even if the amount+fee is larger than the user's account balance, which depletes your reserves. They just end up with a negative balance. The fees are unpredictable and can be very large - I'm talking 30% as seen in others' posts - when made up of lots of small inputs, even if the inputs are old. You can't charge them the fee if the withdrawal is of their entire balance. Neither can you only allow them to withdraw a small amount at a time because that just compounds the problem.

Citation on the 30%? I recall someone here claiming 30% when it was really more like 5% because they failed at math. Smiley

It takes about .1816 KB per input, if all inputs are 0.01 and you're paying 0.01 per KB (.20 node behavior) you'll have no more than 18.2% fees for large transactions made of many 0.01 inputs. With 0.0005 BTC/KB it's a 0.9% fee for a big transaction made entirely of 0.01 inputs.  Of course, this goes down very fast when the inputs are larger.

Since acounts are just a daemon local bookeeping function and don't control the inputs, I think it wouldn't be reasonable to change someone a txn fee of more than the base fee just because their TXN got an unlucky selection of coins from the shared inputs.  Instead you should just have a constant fee that covers the average and then some.  It's just a simple cost of doing business.

Of course, an RPC could be provided to query the fees for a TXN in advance (if you can tolerate an approximation, since additional inputs will change it), or a the send could get a maximum fee argument and reject with the required fee if you don't authorize enough.

The txn size related fees (which, FWIW, these patches do _nothing_ to) are simply not going away.  The tx_data has a direct cost on the network— every megabyte stored in the blockchain results in something like 40gigabytes transmitted and stored in the bitcoin network. Without fees for large transactions people will have a good reason do do psycho "backup my data into the blockchain" games and other such stuff.

Smiley So fees are good! As long as they have to pay a minimum fee of 0.0005 BTC / transaction, even if I set up a very poorly rate-limited exchange...

They sendThey pay in feesYou send them
You lose reserves with a negative balance
staff
Activity: 4284
Merit: 8808
If only it was that easy! It also would be a lot easier if fees were a fixed amount per transaction, as grue believes, instead of per KB, but that's not feasible.
The whole problem is that tx fees are added on top of the withdrawal amount. The user's withdrawal transaction proceeds without warning even if the amount+fee is larger than the user's account balance, which depletes your reserves. They just end up with a negative balance. The fees are unpredictable and can be very large - I'm talking 30% as seen in others' posts - when made up of lots of small inputs, even if the inputs are old. You can't charge them the fee if the withdrawal is of their entire balance. Neither can you only allow them to withdraw a small amount at a time because that just compounds the problem.

Citation on the 30%? I recall someone here claiming 30% when it was really more like 5% because they failed at math. Smiley

It takes about .1816 KB per input, if all inputs are 0.01 and you're paying 0.01 per KB (.20 node behavior) you'll have no more than 18.2% fees for large transactions made of many 0.01 inputs. With 0.0005 BTC/KB it's a 0.9% fee for a big transaction made entirely of 0.01 inputs.  Of course, this goes down very fast when the inputs are larger.

Since acounts are just a daemon local bookeeping function and don't control the inputs, I think it wouldn't be reasonable to change someone a txn fee of more than the base fee just because their TXN got an unlucky selection of coins from the shared inputs.  Instead you should just have a constant fee that covers the average and then some.  It's just a simple cost of doing business.

Of course, an RPC could be provided to query the fees for a TXN in advance (if you can tolerate an approximation, since additional inputs will change it), or a the send could get a maximum fee argument and reject with the required fee if you don't authorize enough.

The txn size related fees (which, FWIW, these patches do _nothing_ to) are simply not going away.  The tx_data has a direct cost on the network— every megabyte stored in the blockchain results in something like 40gigabytes transmitted and stored in the bitcoin network. Without fees for large transactions people will have a good reason do do psycho "backup my data into the blockchain" games and other such stuff.

jr. member
Activity: 41
Merit: 41
If only it was that easy! It also would be a lot easier if fees were a fixed amount per transaction, as grue believes, instead of per KB, but that's not feasible.
I didn't say it was 0.0005 for all transactions. I meant that most of the time, it was 0.0005

The whole problem is that tx fees are added on top of the withdrawal amount. The user's withdrawal transaction proceeds without warning even if the amount+fee is larger than the user's account balance, which depletes your reserves. They just end up with a negative balance. The fees are unpredictable and can be very large - I'm talking 30% as seen in others' posts - when made up of lots of small inputs, even if the inputs are old. You can't charge them the fee if the withdrawal is of their entire balance. Neither can you only allow them to withdraw a small amount at a time because that just compounds the problem.
this could easily be fixed with a simple patch. somehow integrate the GUI function to determine if a fee is needed to a JSON-RPC method.  besides. this is not a very good way to attack a business.

That would be the way to do it. You would have a loop reducing the amount until amount+fee = intended amount. Can it know for sure what the required .0005 BTC/KB fee will be before sending it?
legendary
Activity: 2058
Merit: 1452
If only it was that easy! It also would be a lot easier if fees were a fixed amount per transaction, as grue believes, instead of per KB, but that's not feasible.
I didn't say it was 0.0005 for all transactions. I meant that most of the time, it was 0.0005

The whole problem is that tx fees are added on top of the withdrawal amount. The user's withdrawal transaction proceeds without warning even if the amount+fee is larger than the user's account balance, which depletes your reserves. They just end up with a negative balance. The fees are unpredictable and can be very large - I'm talking 30% as seen in others' posts - when made up of lots of small inputs, even if the inputs are old. You can't charge them the fee if the withdrawal is of their entire balance. Neither can you only allow them to withdraw a small amount at a time because that just compounds the problem.
this could easily be fixed with a simple patch. somehow integrate the GUI function to determine if a fee is needed to a JSON-RPC method.  besides. this is not a very good way to attack a business.
jr. member
Activity: 41
Merit: 41
Quote
It's not a problem that actually exists. You simply charge your clients for the txn fees generated when they are generated. ...simply passing on txn fees to your customers in one form or another where they exist.

If only it was that easy! It also would be a lot easier if fees were a fixed amount per transaction, as grue believes, instead of per KB, but that's not feasible.
The whole problem is that tx fees are added on top of the withdrawal amount. The user's withdrawal transaction proceeds without warning even if the amount+fee is larger than the user's account balance, which depletes your reserves. They just end up with a negative balance. The fees are unpredictable and can be very large - I'm talking 30% as seen in others' posts - when made up of lots of small inputs, even if the inputs are old. You can't charge them the fee if the withdrawal is of their entire balance. Neither can you only allow them to withdraw a small amount at a time because that just compounds the problem.
legendary
Activity: 2058
Merit: 1452
There are only two lines of code changed, and the change is very minor... So i **seriously** doubt anything could go wrong currently.

Those sound like the famous last words of the Debian OpenSSL package maintainer.
staff
Activity: 4284
Merit: 8808
They could also flood you with HTTP requests sent by a million node botnet.  Whats your point?  There is nothing special about bitcoin here, you're also offtopic for this thread as far as I can tell.

FWIW, bitcoin itself resists big coin bitdusting by making the priority depend on tx_value * input_age / tx_size.  So quickly recirculating a large coin doesn't magically get you past it.

This is the type of problem that ShadowOfHarbringer is trying to solve. A DDOS doesn't bankrupt you and your clients. The values can be randomized. It doesn't have to be done that quickly. Please don't get confrontational.

No he isn't.  It's not a problem that actually exists. You simply charge your clients for the txn fees generated when they are generated. Whats the issue? A DDOS can certainly bankrupt you— it can drive up absolutely astronomic connectivity fees, force you to use commercial mitigation services, and take you offline so that you can't earn the income you need to pay the bills.  Worse, they are hard to stop, compared to simply passing on txn fees to your customers in one form or another where they exist.

I'm not being confrontational, I just didn't follow that you thought this software would be desirable for exchanges simply because no competent exchange is going to run a fork of bitcoin that causes them to get stuck and unspendable outputs in their wallets and makes users wait days or weeks for payments to arrive. Presumably they care enough about the success of bitcoin to not allow this outcome.
legendary
Activity: 2058
Merit: 1452
So, developers, what's the solution if...

1. You run an exchange where your clients have accounts in your wallet.
2. A malicious client / competing exchange operator makes many small deposits to his account.
3. The malicious client withdrawals all of his money at once and the huge fee gives his account a negative balance, which eats into your reserves.
4. He opens a new account and repeats the process until you're bankrupt and owe your other users their bitcoins back, which you now don't have.

Will any of these solutions work?
- Patch to pay no fees and only allow withdrawals of bitcoins with > X confirmations.
- Institute some convoluted system that disregards small deposits.
- Patch to estimatetxfee and subtract that from withdrawals before sending them.

Or what?
is 0.0005 fee on a transaction is too much? There are better ways of sabotaging the system, like getting a bunch of bitcoins, and deleting the wallet. Cheesy
legendary
Activity: 2058
Merit: 1452
Well, whatever are the details of all this, none of the devs seems to care even to talk to me about this.
So i find this extremely suspicious.
I wonder if some (or all) of them didn't invest heavy money in mining. After all, who would want to intentionally decrease their profits ?
lol, look at all the recent blocks. the transaction fees were super low. take off your tinfoil hat, and admit to yourself that your concern is useless. "derp a dev won't respond to me. MUST BE SOME CONSPIRACY GOING ON INVOLVING THE DEVS, THE ILLUMINATI, AND THE 9001 YEAR OLD MINING CREED"

last 3 blocks:
Generation: 50 + 0.80834234 total fees
Generation: 50 + 0.30386 total fees
Generation: 50 + 0.1656 total fees
Pages:
Jump to:
© 2020, Bitcointalksearch.org