Didn't understand this.
The reasonable way (and really the only way) to punish users who are DoSing you, is to simply disconnect from them. If you make it configurable how much "single address spam" transactions you relay, punishing the relaying nodes would mean disconnecting from users who chose to relay more and reject the discouraging of such transactions, which largely removes the choice in the matter.
It doesn't make sense punishing someone for using the same address multiple times. If you're a solo miner or pool operator and want to apply this rule to your blocks, be my guest.
The point is that miners have no incentive to do so. The harm is done to the network as a whole, so the goal is to provide the individuals in the network a chance to effect the incentive structure of transaction generators.
But as a network policy, it doesn't make sense. You're just picking on a particular way of spending bitcoins that you consider "braindead" and trying to punish people who don't do as you like.
bitcoind should not contain personal preferences like that.
There are many disadvantages to users when single addresses are used, but it makes programming a bitcoin site simpler. Thus, by discouraging such behavior, we can discourage both the behavior itself and hopefully make people designing bitcoin sites put in a bit more effort, in the hope that that effort results in them putting in the effort to do things like multisend as well.
I don't see a problem in forcing fees per se, I just don't like that it's implemented in bitcoind. A particular fee policy should not be a "implementation reference". At most, it should be configurable.
It being configurable I can't really argue with, but the possibility of hordes of people disabling the fee rules without fully understanding what they are doing is what, I believe, many people are scared of, and I think could become a big issue.
Please, of course is legit. They're not attacking the network, nor trying to cheat, double-spend, >50% or anything. They're just spending money in a way that's bothering you and making it harder for non-miners to do what they don't need to do (have a full node running).
Its actually not bothering me at all. I usually run bitcoin on tmpfs, it takes me no more than an hour to sync fully from 0, and I have plenty of memory left to keep it up. What does bother me is that they (being a loose term not just for SatoshiDice) refuse to implement very simple technologies that hugely decrease their impact on Bitcoin as a whole. This, I do call illegitimate. Refusing to "play by the rules" should be punished, even if its just discouraging them a bit.
They are paying for it. I repeat: end-users do not need to run full nodes. Only solo-miners and pool operators need. They are the only ones who should care about SatoshiDice load of transactions, and apply their arbitrary rules if they feel like.
Again, a drastic change to a SPV-heavy network overnight is by far not a good thing. Though end-users do not, by any means, need to run full nodes, for now, they do, and putting heavy load on all of them to essentially make them switch over quickly is not good. Also, users who use p2pool or other getmemorypool-based mining (which is something that should be very, very, very heavily encouraged) have to deal with the increased load and often do not have the large hardware resources to handle such huge transaction volumes. You can clearly see the result with the very high orphan rate in p2pool users.
If an user which is not solo-mining nor operating a pool is using a full node, that's his choice. His choosing to dedicate his resources to the network, charitably. He'll handle the load in exchange of no monetary incentive. He should know all that.
That is fine by me, but we shouldnt make it very, very difficult for people to do so overnight. Also keep in mind that pool miners (not operators) should be very, very heavily encouraged to use getmemorypool-based mining which requires using a full node.
Wanting to embed such an arbitrary rule in the reference implementation is really not appropriate. The Bitcoin protocol per se should be totally agnostic of whether people use multiple addresses or the same address every time.
Whether its the "reference implementation" or not, it is one of the most popular clients, and putting rules in it that are good for the users running it makes sense. It is entirely up to other nodes whether they want to implement such rules. Keep in mind that the propose rule here is really a very soft rule, in that it only discourages transactions, there are a ton of workarounds to it and if you happen to get peered with a path to a pool on which this "rule" is not implemented, it will entirely not effect you.
I already did. What did I miss?
As stated above, punishing high-traffic addresses by no means will remove the potential for the problem to occur. The goal is really because people who do use one address usually dont care about confirmation times, so they can gladly still use them and some might. Really its to make people think twice before designing their site in an entirely braindead way.