A few months ago, my son began to take an interest in cryptocurrency, and we decided to build an Ethereum mining rig together. But it wasn’t as easy to do as it seemed it would be at first.
At the risk of sounding immodest, my son James is a pretty quick study, and he has a strong technical aptitude like his father. When he first started to research cryptocurrency and make some small investments in Bitcoin, Litecoin and Ethereum, I was skeptical. I’m more of a long-term investor, and I rarely put money into anything I haven’t thoroughly researched and/or don’t completely understand. But his enthusiasm was contagious, and I labored mightily to keep up as he educated me on blockchain technology, the cryptocurrency exchanges, wallets with public and private keys, and other foreign topics.
As time went by and I learned more, I began to more fully understand the underpinnings of the blockchain, and how cryptocurrencies use this technology to implement distributed ledgers. As such, they are independent of any fiat money that a government has declared to be legal tender. I found Satoshi’s seminal paper Bitcoin: A Peer-to-Peer Electronic Cash System to be very interesting, and well worth a read. I even tried to catch up with more technical papers my son steered me towards, such as Programming the Blockchain in C#, but there’s just not enough hours in the day.
The topic of bitcoin and the other cryptos made for a lively one around the dinner table, but a question remained: what, if anything, was I going to do with cryptocurrency? Just putting money into the exchanges seemed like a “herd mentality” kind of thing. But, then I happened to trip across the article A Father/Daughter Beginner’s Guide to Cryptocurrency Mining, and I was inspired. My son and I could do that! It was be a great father/son bonding opportunity, a chance for us to work together, not only to build something, but to watch it work over the course of years and maybe make a few bucks on the side. And I liked the aspect of “dollar-cost-averaging” as it applies to mining – you’re not just investing in coin, you’re contributing to the security and stability of the blockchain over time, and investing in a currency regularly over a long period of time, through its ups and downs. And even if we didn’t make any money, it would still be fun and educational. How much better can it get than that?
Being both very busy lads, we really only had time to work on this over the weekends, and I think we ran into just about every obstacle imaginable; so, it took a lot longer to build than we expected! Here’s a blow-by-blow chronological view of our progress:
Week of January 1st, 2018
James and I decided to build the rig. The two main web resources we used are the YouTube video How to Build a Cryptocurrency Mining Rig and Build an Ethereum Mining Rig on www.cryptosrus.com. It looks pretty easy, and the instructions seem clear. We go to town on Amazon, and purchased the following:
Note: this turned out to be a mistake in the CryptosRUs article, as it recommended “Single 4GB DDR3 1600Mhz RAM is all you need. Nothing more.” We hadn’t noticed that the motherboard we purchased (see above) used DDR4. Dumb mistake on our part.
Note: we paid $279 each for these, and as of the time of writing, they are now $499 and up!
Note: this turned out to overkill for our needs. We probably could have gotten away with a 1200W or even 1000W power supply for our configuration.
Yet another note: what shows up in Amazon is not the same as the one we got. They seem to change the configuration. Have a good look and make sure it will meet your needs, in terms of number of cards, size and shape of holes, etc.
Week of January 8th
Everything arrived from Amazon except for the GPU cards and the power supply, so we get to work assembling the parts that we did have. We quickly realized that we were missing some of the sundry parts that we needed to put it together: thermal paste, blocks of wood to attach to the aluminum frame, and the right screws to hold the wood and the motherboard in place. It takes a couple of trips to the hardware store to get all the piece parts we need.
We do get a nasty surprise when it’s time to put the single 4GB DDR3 stick into the motheboard. It doesn’t fit! This really puzzles us for a while until we realize what should have been obvious: we purchased a motherboard that takes 288-pin DDR4 DIMMs, instead of the 240-pin DDR3 that we have! We both feel a little stupid, and learn a valuable lesson: don’t blindly trust the online guides. They could be wrong!
Week of January 15th
We don’t work on the rig much this week, as I had to be out of town for a few days and over the weekend.
I did get a chance to try to return the DDR3 DIMM to Amazon and order a DDR4. Strangely, Amazon’s website wouldn’t allow me to return the DDR3; I spent about an hour trying to figure it out, to no avail. I finally had to phone them, and the Amazon rep found a glitch in their online return system for memories, as they are considered “hazardous materials” and not subject to returns. He ends up allowing me to keep the DDR3 memory and he ships us a DDR4 DIMM at no extra charge. Now, that’s great customer service!
Week of January 22nd
The graphics cards and power supply arrived this week, so we’re off to the races. We think we have all the parts we need to finish building the rig.
Unfortunately, life gets in the way again. I have my company’s annual Sales Conference, and that takes precedence, with some social events planned for the weekend. But, James and I do get a chance to complete the preliminary assembly – motherboard, CPU, power supply, one graphics card (we’re being conservative, because we anticipate some hardware/ software/ firmware challenges supporting the six graphics cards we purchased), memory, keyboard, mouse, and boot SSD.
We’re ready to turn the computer on and see if it boots (always an adrenaline moment!) and we realize one thing: there’s no power switch! Which of course makes sense: this is an open-air rig, and there’s no case with a built-in power switch. After some research (YouTube videos and the ASUS Z270-P User Guide) we learn that there’s an old “tried-and-true” means of shorting pins 3 and 4 of the PANEL connector (PWR_SW PWR and GND) on the motherboard with a screwdriver to power it up.
With some trepidation, I short the two pins, and we wait in breathless anticipation for the board to boot. Eureka! It goes right to the BIOS menu, so we have success:
But, it’s time to get back to our real work, so we, with some elation, agree to meet again next weekend for what we thought was the home stretch: installing the operating system and starting the mining. Little did we know, we were just getting started.
Week of January 29th
We decided just to start with one graphics card, with a riser card, and install the OS to get that running. After some research, we decide on Ubuntu Linux: it’s free, we’re both reasonably familiar with it (although not experts by any means), and easy to install. We just download the Ubuntu 16.04.3 LTS (long-term support) .iso file, and use Rufus to create a bootable USB stick. Insert the stick into the USB port on the rig motherboard, power it up, and voila! Ubuntu begins to install, and it completes nicely. So far so good. My son follows the directions within Ethereum GPU Mining on Linux How-To and we are now mining ethereum!
We are now mining at around 19.5 MH/s (mega-hashes per second), which is respectable, but we need to load up the rig with the rest of the GPU cards to make our one-year ROI target. That’s for next week.
Week of February 5th
The next step is to put all of the GPU cards in, and being good engineers, we take it one step at a time. At first, we just add a second GPU card to the rig, using one of the riser cards, and power up Linux again. But, WHAM!, it won’t boot. We just get text scrolling at super-speed past on the screen, informing us that there is some sort of PCI Express port error.
This is troubling, but we approach the situation rigorously, moving cards around, trying different slots, different graphics cards, different riser cards, and so on. The system is definitely unstable running with more than one GPU. We both research this, but there doesn’t seem to be one emphatic thing we’re doing wrong. After a while, discouraged, we decide to try a different OS. Although we both know Linux, neither one of us is Linux experts, so we decide to go with a “tried-and-true” solution and use Windows.
Week of February 12th
We have an old DVD of Windows 7 Ultimate laying around the house that my son acquired as a student and never used, so we decide to use ImgBurn and Rufus to create a bootable USB stick. CAUTION: These are freeware applications, and be sure to download from the correct link – use the wrong one on the page, and you’ll get some other application that you may or may not want.
We switch the rig over to boot from the USB stick with the Windows installer on it (instead of the SSD that hosts Linux) and the installer runs, but it stops with the following screen:
We try it multiple times, and google around looking for a resolution to this, but most online resources simply suggest to unplug and plug the USB stick back in again. This doesn’t work for us. It’s not clear why. We retire for yet another weekend, somewhat discouraged.
Week of February 19th
Finally, our rig-building journey comes to an end – for now. Taking a cue from A Father/Daughter Beginner’s Guide to Cryptocurrency Mining, we decided to use the ethOS operating system for our rig. Although it’s positioned as a solution for newbies, and this rankles a little, we’re ready to swallow that pride at this point just to get a working rig. After spending close to $1,300 (his 50-50 share of the rig) and seven weeks, and having to endure the raised eyebrows and curious looks from his mother, my son is ready to get this going.
And it works like a charm. It was the best $39 we spent. The OS came up immediately, and we started plugging in GPU and riser cards one at a time, and they started working right away. We did run into a few snags though:
- We discovered that, although we had six graphics cards, the Silverstone 1500W power supply only supported four +12V2 sockets. We thought that maybe we had purchased the wrong power supply. It took some research and some nervous moments to figure out that we could power two GPUs off the same socket, with the correct cable.
- At first, we couldn’t get past four cards. We could get four cards running at close to 80 MH/s, but the rig would refuse to boot when we plugged in the fifth card, no matter where we plugged it in.
After some research, we finally learned that we had to Enable Above 4G decoding in the BIOS. We also reduced resource consumption by tinkering with other BIOS settings, such as disabling Onboard Audio. So this one had a happy ending.
- We wanted to overclock the rig, accomplished by using NANO to edit the ethOS local.conf file, adding the below two lines:
You set the global core clock of all GPUs with globalcore, and the global memory clock of all GPUs with globalmem. This didn’t work very well for us though; although we got up to 25 MH/s initially, the system became unstable, dropping back the MH/s of a single GPU card, and freezing repeatedly. So we backed off on this, and stuck with the ~20MH/s we started with.
- We can’t get past five cards in the rig. There appears to be a problem anytime we plug a riser into slot PCIEX1_3. Or, more specifically, the problem manifests itself whenever there are risers plugged into both PCIEX1_3 and PCIEX1_4. We don’t know if this is a problem with the motherboard itself, or some resource conflict issue. I’m tempted to think that there might be a system marginality that gets exacerbated once cards are plugged into both slots 3 and 4. This is a subject for later investigation – for now, we’re going to live with it, and stick with just the five cards running at ~ 100MH/s.
For others that might want to undertake a project like this, here are the key lessons that my son and I learned:
1. Don’t trust the guides! Make sure your parts are compatible.
For example, when you have a DDR4 board, make sure you buy DDR4 RAM. We put a little too much trust in the guides online, and simply bought what they recommended, which ended up being a problem quickly.
2. Buy a Power Button Switch cable for the motherboard.
While using a screwdriver to short the Power pins to turn the PC on makes you feel pretty MacGyver-y, a power button makes things much easier.
3. Familiarize yourself with how the power supply will power your rig.
Does your PSU have enough connectors to power all the cards you want?
How many risers can be on one SATA chain?
Is a dual-PSU strategy the best for you?
4. Know your way around the BIOS.
Little niche settings like “Above 4G decoding” being disabled by default can block you from having any more than 3/4 cards running.
5. Have multiple OS options ready.
Ubuntu 16.04 failed for us. Windows 7 failed for us. We ended up going with ethOS, a dedicated operating system for mining. $39, and totally worth the money. In retrospect, we should have had multiple different OS boot drives ready to go at the same time, but not doing so added close to two weeks to our plan.
6. Know your miner, know your pool, and know your wallet.
Ethminer or Claymore? Nanopool or Ethermine? Exodus or Jaxx? This is the easy stuff – have all this known and done beforehand, so you can power forward without delay when the rig is complete.
7. Calculate your ROI point beforehand… and then push it out a couple months.
When you encounter delays, and have to spend more money on cables or a power button, or the price of what you are mining goes down, your initial numbers go out the window. Prepare for the worst, and hope for the best!
Overall, it was a TON of fun, and my son and I had a blast. Definitely recommended for anyone on the fence who is technically inclined; but be prepared for it to be a long learning experience.