Hardware discussion specific to Dagger Hashimoto

BronzetankBronzetank Houston, TXMember Posts: 15 ✭✭
I've been doing my best to follow what is posted regarding the current front runner mining algorithm Dagger Hashimoto for Ethereum 1.0. I thought it might be beneficial to share some of my thoughts to see if we can get a discussion going. This will be a bit of a ramble and people are welcome to comment on any particular piece they choose.


-It is clear that in the long term Vitalik would prefer a Proof of Stake consensus algorithm, and he has given some good reasons for believing it to be superior. But this creates a dilemma for the would be Ethereum 1.0 miner. I guess we could all just be satisfied to mine a little ether using our laptops...but where is the fun in that?! So how do we optimize our investment in hardware to hedge against the upcoming switch to PoS and maximize the resale of our miners?

-The greatest opportunity for mining will be at the very beginning (12 sec after the Genesis Block). So it would be foolish to have mining hardware that would require specific code to be written to use it. It is doubtful that the Ethereum team will write anything related to GPU mining, if it is even possible. If you want to be one of the first to mine, it makes sense to use hardware that is tried and true and not some kind of Frankenstein GPU miner.

-Dagger Hashimoto is designed to force your CPU to keep querying the "Dag" at every little step in the calculations. The "Dag" is essentially a subset of the entire blockchain transaction list which will be scraped and then recreated every so often (they call them epochs, notionally every week or so) so that the data changes and calculations can not be optimized. The purpose is to create a bottleneck between the CPU and where the Dag data is stored (ie. RAM, cache, etc). This I/O bottleneck is something that all computers (not just miners) have to deal with, so the computer industry as a whole is working to optimize this and there won't be any specialized hardware that isn't available to everyone else. But this raises a couple of questions for me... 1) Will the code be written to allow each CPU processing core to work in parallel? If so, then miners should be looking for hardware with lots of cores because each core can act as a multiplier (as long as the RAM can feed in parallel as well). And the speed of each core is not as big of a concern because the calculations are easy and fast...remember, the bottleneck is the time to get the data from memory, not the processing. 2) RAM speed (not size) is key to delivering the data fast and in parallel. But equally critical is the speed of the path between the RAM and the CPU (this used to be called the Front-side bus). But what about things like cache? or GPUs? Will a piece of the Dag be stored in cache so that is can be retrieved faster?

-The approach to mining this particular algorithm might present something counter-intuitive to general computer hardware rules of thumb. Generally, you look for computers that offer the fastest CPUs with the highest quantity of RAM (with some consideration to latency/speed if you are computer savvy). But this may not be optimal if you want the greatest mining power per dollar. Perhaps looking to used equipment with slower processors but upgradable RAM (speed, not size) might be more advantageous. However, one concern would be over whether you can take advantage of the increased RAM speed if your front-side bus becomes the limiting bottleneck. And what if you could buy two older computers with slower processors/slower RAM speeds, for the price of one new computer with faster processors/RAM speeds? This creates the opportunity for some economic modeling calculation. But don't forget resale! See above in my first thought. You will probably have to liquidate this investment when Ethereum switches to PoS, so make sure what you buy can be resold for a decent price or at least re-purposed.

-Building on this previous thought...I believe there are some strategies in hardware purchasing that should be explored in order to optimize investment in hardware. The first approach would be, go buy the biggest, baddest mama jama that you can find with tons of fast processing cores, high speed RAM, and everything a monster computing center would need. Something along the lines of what a animation artist would use. But a great deal of this investment would be in the processing powerhouse capabilities of this behemoth which will be to a large extent wasted in the mining exercise. The CPU cores will be spending most of their time waiting around for data to get to them. So is this the most effective investment strategy? A second approach could be to break this down into smaller units but have more of them. You still want them to be brand new and fast, but maybe you focus more on the RAM and bus speeds and not worry about the CPU speed as much. But remember that faster CPUs generally are ones with more cores. So you need to balance the cost of getting more cores vs cost. If mining on separate cores will not happen in parallel, then all the money for the better CPU goes out the window. Finally, a third approach could be to try to get quantity over quality. Maybe buying used, 2 to 4 year old equipment with slower CPUs (and less cores) and slightly slower RAM but at significantly lower costs can in the end give you more mining potential per dollar. This increases your space requirement, network management, electrical costs, cooling costs, and decreases your resale value...but maybe in the end it is worth it?

I'm interested to hear what others are thinking and planning. I realize that there is still a lot of uncertainty over the final mining code, but Vitalik and the Ethereum team have given us something to think about with Dagger Hashimoto, and we should start discussing.


Sign In or Register to comment.