Thing is, I just decided around... two weeks ago or something, "Hey, I feel like fucking around with X11 on AMD." Seeing as I didn't know what GPU code looked like 4 months ago, there obviously are loads of people out there who could hand me my ass when it comes to GPU optimizations, on AMD or otherwise, and it stands to reason that someone has done this shit already.
What do you plan to do about it?
Game theory suggests that there is more benefit to you in releasing your improved code than simply to keep on using it yourself, as the people you claim to have even better miners are currently profiting at your expense, as well as everyone elses. Plus the steps you have taken can then also be improved upon by others, thus further lowering the disparity.
You would sacrifice your gain now for a better net gain in the future.
I don't claim anyone has even better miners - I said I believe it's quite likely. Assuming that is true, they are indeed profiting at my (very slight) expense at the moment. However, the only motive I could possibly have for releasing my current code is malice: that is, simply wanting to lower the amount they are making. Since by keeping it to myself, and VERY few others (about two to three testers and one farmer), I finally am not forced to frantically look for freelance jobs every month until I have money, as my percentage covers my expenses with a little bit extra, I would have to be EXTREMELY irrational to do so. Pretty much anything done to X11 to speed it up can be added to X13 and X15 with minimal effort - which I have, of course, completed. As there are just loads of coins that use X11/X13/X15, and more coming out, this means that for the forseeable future my optimizations will make a good enough profit to keep me above water - and very likely more. (Multipools and NiceHash are pretty much what all farmers I know use.)
Therefore, the suggestion you pose to me is, put simply, to destroy my main source of income in order to fuck over people who are profiting more than I am,
for now, who I do not know and actually have no beef with. Oh, and said people may or may not exist.
So in essence you're just bitching that someone else might be doing exactly what you're doing?
Bitching? No, not at all! You've got it wrong - I'm saying that coins should take steps to avoid this type of situation, and that not doing so is extremely bad for it. Haha, I would never demonize someone for acting in a rational manner.
Ah, right, you're not bitching, you're
gloating that you're doing something 'extremely bad' for DRK.
NO! He is just saying that it would be better for the coin if the developers would release a well functioning miner from the get go so that everyone has the best available, so that people like himself wouldn't have an advantage. Of course, he needs the money, he made a better miner, so he keeps it to himself.
I think he is sort of correct, it would be nice to have the most efficient miner available to everyone, and Evan has said he would like to devote some time in optimizing the miner, but he's been too busy.
But in the end, there will never be fair distribution for mining. People who can code, can optimize for themselves and their hardware, people with money can buy the best equipment, etc... etc... It's called competition and as long as the rewards are worth it, things will get more efficient and productive for those with the ability to make it so. There is no reason why they shouldn't benefit from their work and abilities either, IMO.
So actually, I disagree with Wolf0, I don't think the developer would ever get a coin off the ground by being so meticulous as to bring the miner up to the best it could possibly be. That amount of time required of him is not worth it. He was smart to spend his time on getting the coin to work. As long as the distribution of mining power was relatively balanced, that was all we needed. Even so, it swung over 50% a few times. Now the network is larger and doesn't swing so badly anymore, and DRK has matured a lot.
So no, I don't believe in everything being fair. I think, for people on the ball, they'll get their fair share of life eventually. If they miss out once, they'll be on it next time. For others like myself, without the talent, I am glad to have stumbled upon this coin early and learned as fast as I could how to mine. I wish I knew I could rent an instance to mine back then! Oh, I could have been rich! LOL. But I was so green, I had no clue.
Anyway, that's life. Gotta grab it by the balls, or work 9-5 till you're 70 years old. And just cause you can't grab as many balls as the next guy because you don't have the talent or money, doesn't mean you can't scramble up a nice chunk of 'em for yourself in accordance to your talent
Thank you for getting it. But, I'm not arguing for "fair distribution." Hell, to even start thinking about doing that, you'd have to define "fair." I'm also certainly not advocating that the coin devs perfect the mining implementation - it doesn't even need to be near perfect. Nor does everything have to be fair. Those who can optimize these miners should if they wish to, and may do with the result as they wish - my only advice is that these algorithms not be copy+pasted by someone who - at least, it seems - doesn't even know how to code, but only the syntax rules of the language. 90% of my results on X11 are from the rewriting of a single algorithm. The kicker is that my rewrite is still maybe half the speed of what it could be, because while it's not a brain-dead implementation of it anymore, it still has vague remnants of the lib SPH one. Which is actually because I created the structure much like the CPU reference one simply so I could test it without having to modify SGMiner. So the overall structure of the hash algorithm is the same, I just don't waste massive amounts of registers, causing very severe, choking, and completely unnecessary limits on how many hashes can be run in parallel per multiprocessor for that algorithm, and I use more loops - a lot more - because let's face it, AMD should release an assembler and forget about their intermediate language, because pretty much the only thing that compiler does well is loop unrolling.