Quantcast
Channel: 懒得折腾
Viewing all articles
Browse latest Browse all 764

BUILD YOUR OWN ETHEREUM MINING RIG

$
0
0

BUILD YOUR OWN ETHEREUM MINING RIG, PART 1: HARDWARE

Ethereum GPU mining rig testbed.

It’s finally time for an update to my popular 2013 Litecoin mining guide! It’s four years later, and Ethereum mining is where it’s at for GPU miners, so that’s what I’ve focused on. I’ve kept the same format and detail level as my old guide, so if you were around back then, you’ll know what to expect.

If you’re new to the world of crytocurrency mining, this guide should give even an absolute beginner all of the knowledge needed to put together an efficient Ethereum (or other GPU-minable altcoin) mining rig using readily-available consumer hardware.

This guide will be broken into several parts, each focusing on a different aspect of building your first mining rig. First, let’s take a look at what you’ll need in terms of hardware to put a respectable Ethereum miner together.

Build your own Ethereum Mining Rig, part 1:  Hardware

Here is the list of hardware that I recommend. Don’t worry if you’re not able to get exactly what’s on this list, I provide some excellent alternatives below the table.

Motherboard 1 x Asus B250 Mining Expert $180
Processor 1 x Intel Celeron G3900 CPU $45
Memory 1 x 4GB DDR4 DIMM $40
Power Supply 1 x 1200w Platinum PSU $260
GPUs 3+ Radeon RX 570 video cards (*see below) ~$200 each
Boot Device 1 x 60GB SSD -or- USB stick (Linux) $5 – $35
Case 1 x build your own (see bottom) -or- open frame case $30 – $200

Some explanations and alternatives for each item:

Motherboard

Generally, any motherboard with PCIe slots on it is suitable for mining—typically one GPU per PCIe slot. The PCIe slots don’t need to be full-length, as we can attach GPUs to 1x slots with the help of risers. With that said, there are potentially some limitations when you start to pack a large number (4+) of GPUs onto one motherboard, even if that board has enough PCIe slots to physically accommodate them. That’s why picking a suitable motherboard is probably your biggest hardware headache if you want to run as many GPUs as possible in your rig.

My top choice is currently the Asus B250 Mining Expert board. It’s literally made for mining, with support for up to 19 (!) GPUs and 3 power supplies right out of the box. Even if you don’t intend to initially run more than a few GPUs, the included mining-centric diagnostic features and ability to expand later probably make the price premium over less-robust boards worth it.

The ASRock H110 Pro BTC+ is another excellent choice for mining, with support for up to 13 GPUs. However, it currently costs about the same as Asus’s mining board, and for the money I’d rather stick with Asus. If you know that you’ll definitely stick to a single PSU and a small handful of GPUs (e.g.: the majority of us), this is a fine choice, especially if you find a deal on it.

Finally, the Biostar TB250-BTC is also aimed at miners, and costs considerably less than the Asus and ASRock offerings. The Biostar board “only” supports 6 GPUs, but that’s likely all that the majority of us need. If price is your primary consideration, the TB250-BTC should be at the top of your list for 6 GPU rig builds.

If you only want to use 3-4 GPUs in your rig, then you’ll have a much easier time. Most boards with up to four PCIe slots should accommodate a GPU in each. Keep in mind that you can use old hardware that you have sitting around—the board doesn’t have to be recent. I dug out an old ASRock 970 Extreme4 that I used four years ago for litecoin mining, and it still works fine today for up to 4 GPUs (5 is possible with some work). So it’s possible to pick up an ancient board on eBay/Craigslist for nearly nothing and mine with less than 6 video cards.

CPU / Processor

This one is easy: buy the cheapest CPU that works with whatever motherboard you pick. When it comes to mining, the GPUs do all the work. Your CPU will essentially sit idle, so there is no reason to waste money on anything other than the bare minimum.

All of the motherboards that I recommended based on Intel’s LGA 1151 socket, so that means the Celeron G3900is probably the best choice.

If you go with an AMD motherboard, a Sempron CPU will do nicely.

Memory

4GB is fine. Overkill really, at least for Linux. If you have an old 2GB stick (or even 1GB!) sitting around and plan to run Linux, you’re good to go. If you want to run Windows, then 4GB is probably a realistic minimum.

While Ethereum mining is pretty memory-intensive, everything happens on the GPUs. System memory will be pretty much unused, so there is no reason to spend money here, especially with DDR4 prices so high.

PSU / Power Supply

The power supply is extremely important—don’t skimp on it! A good, efficient PSU will keep your electricity costs to a minimum and more than pay for itself over the long run. Seasonic, EVGA, and Corsair are all generally top brand choices. The 1200W unit that I’ve linked may seem like overkill, but power supplies are most efficient when they’re not running near their rated maximum load. A 6 GPU rig will draw about 750 watts (assuming 6x RX 570 cards, properly optimized), which means a 1200W PSU will have sufficient headroom to perform efficiently.

If you’re planning on running only 3-4 GPUs, you can save a bit of money and go for their 850 watt model instead.

GPUs / Video Cards

The top Ethereum mining choice is currently the Radeon RX 570 / RX 580 line*. The RX 570 delivers nearly the same performance as the RX 580 (within 4-7% or so) for a bit less power consumption—they’re essentially equal from an efficiency standpoint. The RX 570 is usually significantly cheaper than the 580, so generally the 570 is the best choice.

Which model to pick, though? While literally any RX 570/580 card will do, the most important thing to look for is memory speed if you want the best performance. Cards with a higher memory clock speed will generally perform a bit better while mining ETH (and can generally be overclocked more). Memory capacity isn’t really important beyond 4GB, so all other things being equal, there is no reason to shell out extra cash for the 8GB version of a card. It’s true that every GPU needs to be able to hold Ethereum’s DAG file in memory, and that file is slowly increasing in size—but it won’t surpass 4GB until late 2019 (and ETH’s switch to PoS will likely occur before then, anyway).

With all of that said, the 8GB versions of the cards tend to have faster-clocked memory than most of the 4GB cards, so if the price difference isn’t too large, spring for whatever is the fastest. Most of the cards fall between 1650 Mhz (6600 Mbps effective) to 2000 Mhz (8000 Mbps effective). The slower 1650 Mhz memory GPUs will hash at 21-23 Mh/s, and the fastest 2000 Mhz ones will do 25-28 Mh/s (both can potentially be pushed higher with BIOS mods and good luck).

The best advice is usually to just pick up whichever 570/580 card you can get your hands on for the least money, as mining speed differences between brands/models are pretty small after optimization. These 8GB MSI RX 570 cards are $220 each as of 11/29/2017, and I’m running mine at 28 Mh/sec without pushing them too hard.

If you can still find old RX 470/480 cards on the secondary market, they’re just as good the RX 570/580 cards that replaced them.

*While my guides deal with setting up and optimizing AMD’s GPUs, nVidia’s 1060 / 1070 video cards are also excellent for mining. Generally these days I tend to recommend whichever is cheaper (and right now, that’s AMD). But if you find a deal on some nVidia 1070 GPUs, don’t hesitate to grab them—they perform just as well as AMD’s offerings, and are arguably easier to set up (just remember to install nVidia drivers instead of AMD’s if you follow the rest of my guide!).

Boot Device

If you plan to run Linux, you can use pretty much anything, including a ~$5 16GB USB stick (we’ll be using Claymore miner, which doesn’t write Ethereum’s DAG file to disk, so we don’t need to worry about wearing a USB stick out due to constantly writing to it, like with the stock ethminer). With that said, SSDs are pretty cheap nowadays and it might be nice to have one in case you want to try Windows at some point.

If you plan to run Windows, then a cheap 60GB+ SSD is your best bet. If you have an old mechanical hard drive laying around, that’ll work fine too.

The Case

I highly recommend against trying to cram a bunch of GPUs into a conventional PC case. You have two realistic options here: buy a purpose-built mining frame, or build something yourself.

The first option is straightforward, if not a bit more expensive. Here is an example of an open-air frame that will accommodate up to 6 GPUs. Here’s another option. You’ll pay a premium going this route, but it’ll save you some time and effort.

Building your own is much cheaper, and (arguably) more fun! If you’re handy, you can put together a simple aluminium frame yourself for a fraction of the cost of buying one. If you don’t have the necessary skills or tools for that, I popularized building mining rigs inside plastic crates back in 2013, and that still works fine today (for up to 4 GPUs or so, anyway). At the bottom of this post, you’ll find instructions on how to build a plastic crate “case”.

Risers & Miscellaneous Stuff

If you’re building your own case (whether it’s from a plastic crate, or aluminium, or something else), you’ll need risers to connect your GPUs to your motherboard. If you’re buying a mining frame, most include risers. Risers tend to be pretty misunderstood among new miners, so here is what you need to know:

  1. Risers can be powered or unpowered. A riser is unpowered if it simply connects a GPU to a motherboard PCIe slot. A riser is powered if it additionally accepts power from the PSU (generally via a molex-type connector). Unpowered risers allow GPUs to receive up to 75 watts of power through the motherboard’s PCIe bus, just as if they were plugged in directly. Powered risers will take that additional power directly from the PSU instead, bypassing the motherboard.
  2. You may mix unpowered and powered risers, but the total number of unpowered risers should not exceed two (this includes GPUs plugged directly into the motherboard)! Motherboards are generally not designed to deliver more than 150 watts of total power through the PCIe bus, so two GPUs on unpowered risers is the safe maximum (2 x 75 watts).
  3. The newer USB-style powered risers often include SATA-to-molex power adapters. Throw these adapters away! SATA plugs are not designed to deliver 75 watts safely, and these can get hot enough to potentially be a fire risk (admittedly, 99% of the time you’ll be fine, but it’s not worth the risk). Instead, connect the molex plugs on the riser directly to your PSU (no more than two risers per PSU plug). Newer versions of these USB risers forego the molex adapter and instead use a PCIe connector for power.

The different PCIe riser types.

I do think the newer USB-style risers are the way to go—they’re longer and easier to work with than the old ribbon-style cables. Here is a 6-pack of USB risers with the newest (and safest) PCIe connectors. It’s always smart to buy an extra or two, as defects are relatively common. If you have older ribbon-type risers laying around, or can get them cheaply, they’ll work just fine.

If you’re building or buying a large frame, you might need extenders for some of your molex plugs and PCIe power plugs.

You’ll also need a power button, unless your motherboard has one built in (which is fairly rare). This will do the trick, or you can build one into your plastic crate if you plan to go that route (see below).

Some people have reported that their rigs won’t boot unless they have a monitor connected, although this seems to be fairly rare (my own rig boots fine without a display attached). If this happens to you, you’ll need a dummy plug.

Building your Mining Rig “Case” from plastic milk crates

(I’ve copied the instructions from my original 2013 guide here and updated them slightly.)

Here is what you’ll need to create a simple DIY plastic crate housing for your miner:

Plastic milk crate (can stack two and put your PSU in the lower one) $10 each
Plastic stand-offs $3
6 x #4 3/8″ wood or metal screws $1
Brace to rest GPUs on (1″ PVC pipe works great!) $2
a few cable ties (8″ or so) $2
power switch & LED (optional) $5

You can get plastic crates in most home improvement stores if you don’t want to ship it from Amazon (it’ll be cheaper, too!). I picked mine up at Lowe’s for under $5 each. You should be able to get everything else on the list at Lowe’s if you happen to have one near you, too. As far as tools go, you’ll need a drill and a knife capable of cutting into whatever plastic crate you buy.

 Assembly Steps:

First, attach your CPU & heatsink/fan to your motherboard, and place your RAM into the memory slot(s). Then follow the general steps below to mount everything into your plastic crate.

Click the images for a close-up look at each step.

  1. Step 1Place plastic standoffs on the bottom of your plastic crate, and rest your motherboard on top of them. Make sure that all of the essential ports are accessible (SATA, USB, keyboard, mouse, etc). Use your knife to cut away pieces of the crate if necessary so that all ports you plan to use are exposed. Then plug your riser cables into the PCI-E slots of your motherboard.
  2. Step 2Place your brace (1″ PVC pipe is really ideal and won’t flex over time) so that it is sitting above the motherboard, high enough for your GPUs to rest on. Cut the brace so that an inch or two sticks out on either end of the crate.
  3. Step 3Drill holes in your brace so that you can secure it with cable ties (see image). Do not simply rest the brace on the crate! An accidental bump can cause it to fall into the crate, along with ~$1000 worth of GPUs if you do that!
  4. Step 4Connect each GPU to it’s corresponding riser cable, resting the bracket end on the lip of the crate and the other end on your brace.
  5. Step 5Screw each GPU down into the lip of the crate. If you drill small pilot holes ahead of time (mark where to drill with a sharpie), this is much easier.
  6. Step 6If you have a power switch and LED, mount them into one of the crate’s corners. I was pretty sloppy with mine, but it’s functional.

 

You’re done! Simply connect everything to your power supply and you should be ready to power your rig on for the first time. If you have a second crate, you can put your power supply in there (along with your harddrive if you’re using Windows), and stack it under your main crate to save some space.

BUILD YOUR OWN ETHEREUM MINING RIG, PART 2: LINUX SETUP

In this second installment of our DIY Ethereum mining guide, we’ll look at how to install and configure Linux to setup your rig as an automated, remotely-manageable appliance. Don’t be dissuaded if you’ve never used Linux before—our step-by-step guide makes it simple!

Why Linux over Windows? First, it’s free—and saving ~$100 on the operating system is a big plus when you’re trying to maximize profitability. Other reasons include lesser hardware requirements (Linux is perfectly happy running from a USB stick plugged into ancient hardware!), simpler remote administration capabilities, and oftentimes better stability. The downside of running Linux is that video driver support isn’t on the same level as Windows, and things like GPU undervolting are trickier (but still possible via BIOS mods).

If you missed the hardware portion of our guide, make sure to check it out first. Otherwise, read on.

Build an Ethereum Mining Rig, part 2:  Linux Setup

The following is heavily adapted from my original 2013 Litecoin mining guide, updated for the latest Xubuntu LTS version, the new AMDGPU-PRO drivers, and necessary ethereum mining software (all up-to-date as of 11/29/2017). If you’re a bit nervous because you’ve a complete Linux newbie, don’t be. Simply follow the step-by-step instructions exactly as they’re written, and you’ll be fine. Even if you’ve never done anything like this before, you should be up and running in roughly an hour.

Step 1: Configure BIOS settings

Before we even get to Linux, let’s take a minute to make sure that your mining computer’s BIOS settings are in order. Power on your computer, and press the “delete” key a few times immediately after power on. You should end up in the BIOS configuration area. Do the following, then save & exit:

  • Change power options so that the computer automatically turns itself on whenever power is restored. The reason for this is two-fold: first, it’ll make sure that your miner automatically starts up after a power outage. Second, it makes powering the computer on much easier if you don’t happen to have a power switch connected to the motherboard.
  • Make sure that your USB stick is first in the boot-up order (you may need to have a USB stick attached).
  • Disable all components that you don’t plan to use. This may save a little bit of power, and since your miner will likely be running 24/7, it’ll add up. For me, that meant disabling onboard audio, one of the SATA controllers, the USB 3.0 ports (I only had a 2.0 USB stick), the Firewire port, and the serial port.
  • If you’re running a lot of GPUs (4+), additional tweaks might be necessary to ensure that they’re all recognized by the OS. Exact tweaks vary by motherboard, but setting the PCIe speed to Gen1 is usually a good place to start. No need to change anything now, but make a mental note that you may need to come back and play around a bit if all of your GPUs don’t show up in the OS later.

Step 2: Install Xubuntu Desktop on your miner

Xubuntu is a lightweight version of Ubuntu, a popular Linux distribution. Most other distros should work just fine, but be aware that the GPU drivers require the presence of Xorg, which means server distros that don’t have a GUI will not work properly.

  • Xubuntu 16.04.3 is the latest LTS release at the time of this guide, so that is what I recommend you use. You can download it here.
  • You’ll need to either write the installation ISO image to a USB stick (highly recommended), or burn it to a DVD. If you use a DVD, you’ll need to temporarily hook up a DVD drive to your mining rig for the installation (make sure you temporarily enable your SATA controller if you disabled it in step 1!).
  • Once you have the installation media prepared, you’re ready to install Xubuntu to your miner’s boot device (whether it’s an SSD, mechanical harddrive, or another blank USB stick). Boot using your new installation media (make sure it’s first in your miner’s BIOS boot order list). The Xubuntu installer should appear.
  • Follow the prompts, and make sure to click the “auto-login” box on the last step of the installer (otherwise, all of the default options are fine).
  • When the installation is complete, you should automatically boot into the Xubuntu desktop. Make sure to remove your installation media.

Step 3: Install SSH and package updates

At the Xubuntu desktop, press CTRL+ALT+T to open a terminal window.

  • Install SSH by typing:
    sudo apt-get install openssh-server

With SSH installed, you can unplug the keyboard/mouse/monitor from your miner, and complete the rest of the installation from your desktop computer. Simply download Putty onto your desktop, run it, and enter the IP address of your mining rig (type ifconfig at the Xubuntu terminal to find your miner’s address if you don’t know it—it will probably look like 192.168.0.x). That should bring up a remote terminal session to your miner, which is more or less just like sitting at the keyboard in front of it.

If you plan to manage your mining rig remotely over the internet, you’ll need to forward port 22 on your router to your miner. Make sure that you use a strong Xubuntu password!

Setup should be pretty quick from this point, as now you can simply copy text from this webpage (highlight it and press CTRL+C) and then paste it into your Putty session by simply right-clicking anywhere inside the Putty window. I highly recommend that you complete the remainder of the guide in this manner, as it eliminates the risk of typos!

  • Install package updates by typing (or copying & pasting via right-click into Putty) the following command:
    sudo apt-get dist-upgrade

Step 4: Install AMDGPU-PRO drivers

Next up, we’ll install AMD’s video drivers. AMD has special blockchain compute drivers available for mining that give far superior performance compared to their standard drivers, so that’s what we’ll be using (version 17.40, which is the latest as of 11/29/2017).

  • Type the following commands (press “enter” and wait for the operation to complete at the end of each line):
    cd ~/Downloads
    wget --referer=http://support.amd.com https://www2.ati.com/drivers/linux/beta/ubuntu/amdgpu-pro-17.40-483984.tar.xz
    tar -Jxvf amdgpu-pro-17.40-483984.tar.xz
    cd amdgpu-pro-17.40-483984
    ./amdgpu-pro-install -y
  • Some of these steps may take a minute or two to complete. When the installation is complete, type the following:
    sudo usermod -a -G video $LOGNAME
  • Next we need to install and configure the ROCm component:
    sudo apt install -y rocm-amdgpu-pro
    echo 'export LLVM_BIN=/opt/amdgpu-pro/bin' | sudo tee /etc/profile.d/amdgpu-pro.sh
  • Finally we need to enable large page support, which will dramatically improve mining performance. Type the following to open your grub file in nano for editing:
    sudo nano /etc/default/grub
  • Find the line that reads GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash”. Modify it to:
    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash amdgpu.vm_fragment_size=9"
  • Save the file and quit nano by pressing CTRL+X and then answering (Y)es to save the changes. When you’re finished, update grub and reboot:
    sudo update-grub
    sudo reboot

The final command will reboot your rig, which will cause you to immediately lose your SSH (Putty) connection. Wait a few seconds to give the computer a chance to boot, and then re-establish a new connection via Putty, and re-login.

Step 5: Install Ethereum software

(Note: you may skip step 5 entirely if you already have an ethereum wallet address that you intend to use!)

Next up, we’ll install the Ethereum software that will let us create a new wallet address. We’ll need this to store the coins we receive from mining.

  • Type the following to install the necessary ethereum packages:
    sudo add-apt-repository ppa:ethereum/ethereum
    sudo apt-get update
    sudo apt-get install ethereum geth
    
  • Now it’s time to create your Ethereum wallet address:
    geth account new

You’ll be prompted to enter a password, and then to confirm it (use a strong password!). The output will be a long string between two curly braces { }. That’s your new wallet address—make a note of it (highlight it within Putty to copy it to your clipboard).

Important: The combination of the password you just used to create this address *and* the associated encrypted key file is what gives you control over your new wallet address. If you lose either of these, you’ve also lost control of your wallet and all of the coins associated with it—and there is literally nothing that anyone will be able to do to help you. Remember your password, and keep multiple backups of your key file(s)!

Your key file(s) are stored in the ~/.ethereum/keystore directory. Copy the entire /keystore folder someplace safe to backup your wallet (backups are covered in more detail heredon’t forget to make multiple backups and keep them in a secure offline location!).

If you forget your wallet address, you can type geth account list to see your addresses and the location of their key files.

Step 6: Install Claymore’s Ethereum miner

There are several options as far as mining software, and I’ve experimented with all of the popular ones. I think Claymore’s miner is the best option, even if it does have two fairly significant downsides: it’s closed-source, and it’s not free (~1% of your mining time benefits the creator of the miner).

Two alternatives are the stock ethereum miner (ethminer) and Genoil’s fork of the stock miner. They’re both open-source and free, but they have pretty crippling downsides.

The stock ethminer is much slower than Claymore’s miner (by a margin of over 5% on my test rig). In addition, ethminer creates the Ethereum DAG file on disk instead of in GPU memory, which is slow and uses a lot of space (and if you’re running off a USB stick, all those writes may eventually wear it out).

Genoil’s fork seems to be nearly as fast as Claymore’s, and it doesn’t use physical disk space for the DAG, but it’s not stable (at least not for me). It often crashes, especially on startup (whereas I have yet to see a single crash on Claymore’s miner after nearly a week of full-time mining). The author abandoned development months ago, so improvements are unlikely.

So, explanation aside, here is how to setup Claymore’s miner:

  • First return to your downloads directory and grab the latest version (10.2 as of 11/29/2017). I’m pulling the file directly from the author’s Google Drive repository, if the link is broken check here for a newer release or updated link):
    cd ~/Downloads
    sudo apt install curl
    curl -L -o claymore_10.2_miner.tar.gz https://drive.google.com/uc?id=1t25SK0lk2osr32GH623rR8aG2_qvZds9
    
  • Then create a new directory for it, and unpack it there:
    sudo mkdir /usr/local/claymore10.2
    sudo tar -xvf claymore_10.2_miner.tar.gz -C /usr/local/claymore10.2
    
  • Then let’s head over to the installation directory and create a startup script. Note that commands 2-5 below just clean up the installation directory a bit by removing an intermediary directory that was included in the original tar archive:
    cd /usr/local/claymore10.2
    cd Clay*
    sudo mv * /usr/local/claymore10.2
    cd ..
    sudo rm -r Clay*
    sudo chown root:root ethdcrminer64
    sudo chmod 755 ethdcrminer64
    sudo chmod u+s ethdcrminer64
    sudo nano mine.sh
    
  • Nano will open a new blank text file; enter the following into it:
    #!/bin/sh
    export GPU_MAX_ALLOC_PERCENT=100
    ./ethdcrminer64 -epool eth-us-east1.nanopool.org:9999 -ewal YOUR_WALLET_ADDRESS/Miner01 -epsw x -mode 1 -allpools 1 -tt 68
    

    Where it says YOUR_WALLET_ADDRESS, use the address you created in step 5 (you’ll need to put “0x” in front of it). The “Miner01” following your address can be changed to any friendly label that you want to give your miner (only important if you plan to run multiple rigs). It’s easiest to copy the last line from my guide into something like notepad, then replace YOUR_WALLET_ADDRESS with your actual address there, and then copy the finished line into putty via right-click to get everything into nano without typos.

  • Save the file and quit nano by pressing CTRL+X and then answering (Y)es to save the changes, then enter the following to give your new script execute permission:
    sudo chmod +x mine.sh

Note that I’m using nanopool.org as the mining pool here. I’ve tried a few, and it seems to be a top pick, but feel free to pick your own pool. Most don’t require registration, and simply payout to whatever wallet address you supply whenever a certain threshold is met (usually whenever you accumulate 1+ ETH). Assuming you stick with Nanopool, you’ll be able to check on your miner’s status by going to this URL after you start mining: https://eth.nanopool.org/account/%5BYOUR WALLET ADDRESS]

  • Now is a good time to test things. You can fire up your miner by typing:
    ./mine.sh

You should see the Claymore miner start up. It’ll take a minute or two before it actually starts mining, but it should get there eventually. When you see a scrolling log of outputs that includes non-zero hashrates (expect hashrates in the low to mid 20s for unoptimized GPUs), you’re good to go. If the script fails to start, or you see errors, make sure that you’ve created the script exactly as outlined in the guide.

Press CTRL+C to exit the miner when you’re satisfied that it’s working.

Step 7: Create auto-start scripts

We’re almost done! We want to set up our rigs automatically start mining whenever the rig is powered on. That way, we keep mining losses to a minimum whenever a power outage occurs, and we don’t have to worry about manually starting it back up in other situations.

  • First, install screen:
    sudo apt install screen
  • Then type the following to create a new script in your home directory and open it in nano:
    cd ~
    sudo nano miner_launcher.sh
  • Enter the following text into the editor (substitute your actual Xubuntu username for YOUR_XUBUNTU_USERNAME where necessary!):
    #!/bin/bash
    DEFAULT_DELAY=0
    if [ "x$1" = "x" -o "x$1" = "xnone" ]; then
       DELAY=$DEFAULT_DELAY
    else
       DELAY=$1
    fi
    sleep $DELAY
    cd /usr/local/claymore10.2
    su YOUR_XUBUNTU_USERNAME -c "screen -dmS ethm ./mine.sh"
  • Save and quit nano (CTRL+X), and then type:
    sudo chmod +x miner_launcher.sh
  • Now we need to call our new script during startup; we do that by adding it to /etc/rc.local. Type the following to open /etc/rc.local in nano:
    sudo nano /etc/rc.local
  • Add the following text, right above the line that reads “exit 0” (substitute your own username!):
    /home/YOUR_XUBUNTU_USERNAME/miner_launcher.sh 15 &

Then save and quit out of nano (CTRL+X).

Step 8: Create an alias to easily check on the Claymore miner process

We’re essentially done at this point, but you’ll probably want to manually SSH into your miner from time to time to manually check on your hashrates & GPU temperatures, etc. Creating an alias will make that easy.

  • Type:
    sudo nano .bashrc
  • Scroll to the end of the file, and then add this text above the line that reads “# enable programmable completion…”
    alias miner='screen -x ethm'
  • Save and quit out of nano.

That’s it—you’re done! You’ll probably want to run a full test now. The easiest way to do that is to close your Putty session and power down your miner. Turn it back on and the following should happen:

  1. Your miner should boot into Xubuntu. This may take up to a minute, depending on the speed of your boot device (it’ll be much faster on an SSD).
  2. 15 seconds after Xubuntu has loaded, the Claymore miner will automatically start and begin mining. You might notice the fans on your GPUs spin up a bit when this happens.
  3. You should be able to SSH into your miner at any time and type miner to monitor the miner’s process. To close the screen (but keep the miner running), press CTRL+A, then CTRL+D.
  4. If you ever need to start the Claymore miner manually (because you quit out of it, or kill it, etc), simply type ~/miner_launcher.sh

(update 1/15/2018: **IMPORTANT** please read this if your hashrate is lower than expected!)

Congratulations—you have your own headless linux ethereum miner!

The next section of this guide covers setup under Windows, and then we’ll take a look at optimizing miner settings for better performance.

BUILD YOUR OWN ETHEREUM MINING RIG, PART 3: WINDOWS SETUP

Ethereum & WindowsNo doubt some of you saw the Ethereum mining guide for Linux that I published last week and balked at all of that “command-line nonsense”. Linux isn’t everyone’s thing, and that’s ok—if Windows is your OS of choice, then this guide is for you!

While Linux offers some significant advantages when it comes to GPU mining, Windows does have one potentially important edge: undervolting your GPUs currently requires quite a bit less effort under Windows. If you want your mining rig to run at its maximum efficiency, you’ll want to keep power consumption to a minimum, and with Linux that generally requires flashing a custom BIOS to each GPU—whereas in Windows you can usually accomplish this at the driver level with a simple software setting.

The bad news is that if you want maximum performance out of your rig, you’ll probably eventually want to flash your GPU BIOS under either operating system, but we’ll get into that in part 4 of this guide. But if you already know that overwriting your GPU BIOS with a custom replacement is outside of your comfort zone, then sticking with Windows will at least allow you to undervolt.

So with all of that in mind, if Windows sounds like the best option for you, read on for our setup guide!

Build an Ethereum Mining Rig, part 3: Windows Setup

I won’t go into quite the same excruciating level of detail as I did with my Linux guide, as it’s probably a safe assumption that anyone reading a guide about building a custom cryptocurrency mining rig is already quite comfortable with basic Windows tasks. The steps outlined below should be more than adequate for the average Windows user, but feel free to leave comments if anything is unclear!

Step 1: Configure BIOS Settings

Before we even get to Windows, make sure your mining computer’s BIOS settings are in order. Power on your computer, and press the “delete” key a few times immediately after power on. You should end up in the BIOS configuration area. Do the following, then save & exit:

  • Change power options so that the computer automatically turns itself on whenever power is restored. The reason for this is two-fold: first, it’ll make sure that your miner automatically starts up after a power outage. Second, it makes powering the computer on much easier if you don’t happen to have a power switch connected to the motherboard.
  • Disable all components that you don’t plan to use. This might save a little bit of power, and since your miner will likely be running 24/7, it’ll add up. For me, that meant disabling onboard audio, the USB 3.0 ports, one of the SATA controllers, the Firewire port, and the serial port.
  • If you’re running a lot of GPUs (4+), additional tweaks might be necessary to ensure that they’re all recognized by the OS. Exact tweaks vary by motherboard, but setting the PCIe speed to Gen1 is usually a good place to start. No need to change anything now, but make a mental note that you may need to come back and play around a bit if all of your GPUs don’t show up in the OS later.

Step 2: Install Windows 10

Any 64-bit edition of Windows 10 should work fine (a 32-bit OS is not capable of running the Ethereum mining software). Windows 7 and 8 will work as well (as long as they’re 64-bit versions), although you may need to do a bit of extra work to recognize all of your GPUs if you’re running more than 4. The guide is written assuming that you have Windows 10, but the steps for 7/8 should be pretty similar.

I’m going to assume that everyone reading this is capable of installing a fresh copy of Windows. Complete the installation and boot into the Windows desktop before proceeding to the next step. If necessary, also install the LAN/Ethernet driver that came with your motherboard so that you can get online.

Step 3: Configure automatic login

If you’re building a dedicated mining rig, then you probably want your mining rig to boot up and start mining automatically, without any user intervention. We’ll need to enable auto-login for that to be possible.

  • Right-click on the Start Menu and select “Run”. Type “netplwiz” (without the quotes) at the prompt, and click “ok”.
  • Uncheck the box that says “Users must enter a user name and password to use this computer”.
  • Click “Apply”. You’ll be prompted to enter your password to confirm the change.

Step 4: Change power settings to prevent sleep

By default, Windows will go to sleep after 30 minutes without user interaction. Obviously, we don’t want that behavior on our mining rigs. To disable it:

  • Right-click the Start Menu -> Control Panel -> System & Security -> Power Options.
  • “Balanced” should be selected. Click on “Change plan settings” next to it.
  • Change “Put the computer to sleep” to “Never”, then click “Save changes”.

Step 5: Minimize unscheduled reboots due to Windows Updates

Windows 10 introduced forced updates as a pretty controversial “feature”, and not having control over when your mining rig is rebooted to install OS patches could be frustrating. We’ll be setting things up so that your mining rig automatically begins mining any time Windows boots, so leaving automatic updates in place certainly wouldn’t be disastrous if you want to skip this section. But if you’d prefer to retain control over downtime, here are some workarounds:

Keep in mind that if this is a fresh install of Windows, it’s a good idea to let the OS install any available updates first (right-click start -> settings -> windows update -> check for updates).

Step 6: Allocate at least 16GB of virtual memory

The author of the mining software that we’ll be using recommends this step, although I’ve never encountered issues with a smaller pagefile (edit 4/19/17: I tried mining on a machine with only 4GB of physical RAM and got terrible performance until I increased my pagefile to 16GB). Here’s what you need to do:

  • Right-click the Start Menu -> System -> click “change settings” on the right side of the window (if you don’t see “change settings”, click “system info” first)
  • Click on the “Advanced” tab, then in the “Performance” area, click “Settings”
  • Click the “Advanced” tab, then click “Change” in the area labeled “Virtual Memory”
  • Uncheck the box at the top that says “Automatically manage paging file size for all drives”, then click on the “Custom Size” radio button.
  • Enter “16384” (without the quotes) in both the Initial and Maximum size fields, then click “Set”. You’ll need to reboot for the change to take effect.

Step 7: Disable unnecessary Windows visual effects

On systems with borderline hardware, this may increase performance a bit and help keep the OS a bit more responsive during mining:

  • Right-click the Start Menu -> System -> click “change settings” on the right side of the window (if you don’t see “change settings”, click “system info” first)
  • Click on the “Advanced” tab, then in the “Performance” area, click “Settings”
  • On the “Visual Effects” tab (which should be open by default), click on the radio button labeled “Adjust for best performance”, then click “Apply”

Step 8: Install AMD GPU drivers

AMD offers special mining-specific “blockchain compute” drivers that deliver considerably more performance than their standard drivers, so that’s what we’ll be using. If the computer that you’re installing to will not be a dedicated mining rig (eg: you plan to also play games on it, etc), you may prefer to use the latest available standard driver.

It’s ok to simply pick all of the default options during installation. Skip including ReLive when asked, as we don’t need it.

Reboot after the driver installation is complete.

Step 9: Generate a wallet address

You can skip this section if you already have an Ethereum wallet address. Otherwise, you’ll need to create one to mine with. There are many ways to generate your own wallet address, but I’ll show you how to do it using the official open-source Ethereum software. Be wary about trusting other methods, as some online creation tools are potentially scams designed to later steal your coins.

  • Download the latest release of Geth for Windows here.
  • When the download is finished, run the installer and select all of the default options.
  • Open a command prompt window (right-click the Start Menu -> Command Prompt).
  • Type the following to switch to the Geth installation directory (assuming you installed it in the default location):
    cd \Program Files\Geth
  • Type the following to create a new wallet address:
    geth account new

If you see a warning about starting the Ledger hub here, you can ignore it. You’ll be prompted to enter a password, and then to confirm it (use a strong password that you won’t forget!). The output will be a long string between two curly braces { }. That’s your new wallet address—make a note of it. You can easily copy it by right-clicking anywhere in the command prompt window, selecting “Mark”, highlighting your new address by holding left-click and dragging the mouse over the entire address, and then right-clicking again to copy to your clipboard. From there, you can paste your address anywhere using standard Windows shortcuts (CTRL+V).

Important: The combination of the password you just used to create this address *and* the associated encrypted key file is what gives you control over your new wallet address. If you lose either of these, you’ve also lost control of your wallet and all of the coins associated with it—and there is literally nothing that anyone will be able to do to help you. Remember your password, and keep multiple backups of your key file(s)!

Your key file(s) are stored in the %APPDATA%\Ethereum directory. For a fresh Windows 10 install, that means the C:\Users\[YOUR WINDOWS USERNAME]\AppData\Roaming\Ethereum\keystore folder (note that the AppData folder is hidden by default). Copy the entire keystore folder someplace safe to backup your wallet.

If you ever forget your wallet address, you can open a command prompt, return to your Geth installation folder, and type geth account list to see your addresses and the location of their key files.

Step 10: Install Claymore’s Ethereum miner

I talked about my reasons for selecting Claymore’s miner over other alternatives in my Linux guide, but to sum up: it’s currently the fastest, most stable Ethereum miner that’s still under active development. The downside is that it’s not free—about 1% of your mining time will benefit the creator of the software instead of you. However, even after the usage fee, you’ll come out ahead compared to the alternatives.

  • Download the latest version of Claymore’s ETH miner (v10.2 at the time of this post). Make sure to get the .zip file and not the Linux tar (also check here for newer releases)!
  • Extract the downloaded archive into a folder on your mining computer.
  • Open the folder where you extracted the miner, and create a new text file called “mine.bat” (you can use notepad for this).
  • Enter the following text into your mine.bat file exactly as written (but do make sure to substitute your own wallet address—see note below):
    timeout /t 15
    setx GPU_FORCE_64BIT_PTR 0
    setx GPU_MAX_HEAP_SIZE 100
    setx GPU_USE_SYNC_OBJECTS 1
    setx GPU_MAX_ALLOC_PERCENT 100
    setx GPU_SINGLE_ALLOC_PERCENT 100
    ethdcrminer64.exe -epool eth-us-east1.nanopool.org:9999 -ewal YOUR_WALLET_ADDRESS/Miner01 -epsw x -mode 1 -allpools 1

    pause

Where it says YOUR_WALLET_ADDRESS, use the address you created in step 9 (you’ll need to put “0x” in front of it). The “Miner01” following your address can be changed to any friendly label that you want to give your miner (only important if you plan to run multiple rigs).

Note that I’m using nanopool.org as the mining pool here. It’s a fairly typical ETH pool that seems to have good reliability, but feel free to pick your own pool. Most don’t require registration, and simply payout to whatever wallet address you supply whenever a certain threshold is met (usually whenever you accumulate 1+ ETH). Assuming you stick with Nanopool, you’ll be able to check on your miner’s status by going to this URL after you start mining: https://eth.nanopool.org/account/%5BYOUR WALLET ADDRESS]

Save and close notepad when you’re done.

Now is a good time to perform a quick test. Simply double-click your mine.bat file to launch the miner. It’ll take a minute or two before it actually starts mining, but it should get there eventually. When you see a scrolling log of outputs that includes non-zero hashrates (expect hashrates in the low to mid 20s for unoptimized GPUs), you’re good to go. If the script fails to start, or you see errors, make sure that you’ve created the script exactly as outlined in the guide.

Press CTRL+C to exit the miner when you’re satisfied that it’s working.

Step 11: Configure your miner to start automatically

We want our rig to automatically start mining whenever it’s powered on or rebooted. That way, we keep mining losses to a minimum whenever a power outage occurs, and we don’t have to worry about manually starting it back up in other situations.

  • Open Windows Explorer and navigate to the folder where you created “mine.bat” in the previous step.
  • Right-click on your mine.bat file, and pick “Copy”.
  • Now, navigate to %AppData%\Microsoft\Windows\Start Menu\Programs\Startup (should be something like C:\Users\[YOUR WINDOWS USERNAME]\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup).
  • Right-click anywhere on the empty background of the Startup folder and select “Paste shortcut”.

You should see a shortcut to your mine.bat file appear in the startup folder. Windows should automatically execute it upon bootup.

At this point, we’re done with the essentials. If you’ve done everything correctly, you should be able to reboot and watch your rig automatically start mining shortly after the Windows desktop loads. There are a couple more steps that may be important to you, though.

Step 12 (optional): Optimize clock speeds and undervolt (basic)

We’ll get into more advanced optimization in the next section of this guide, but as long as we’re on Windows, it doesn’t hurt to see what we can accomplish via some basic driver setting adjustments. We should be able to squeeze out some extra performance on most RX 470/480 cards and save a bit of power without venturing into the realm of BIOS mods.

  • Open the Radeon Settings app. There should be an icon for it in your system tray. If not, it’s located here: C:\Program Files\AMD\CNext\CNext\RadeonSettings.exe
  • Click on the “Gaming” tab at the top left.
  • Click on the “Add” button near the top right, then click “Browse”.
  • Navigate to the folder where you installed Claymore’s miner, select “EthDcrMiner64.exe”, and then click “Open”.
  • You should see a new profile appear on the Radeon Settings App window labeled “EthDcrMiner64”. Go ahead and click it.
  • Click on the “Profile OverDrive” tab.

AMD's WattMan

You should see something that looks like the image on the left (click for full-size). I’ve cropped in on the two areas that we’re interested in (they’re labeled “GPU” and “Memory”). Find them and start by setting the Frequency to “Dynamic” and the Voltage Control to “Manual” in both areas.

Before we go any further, I’ll just throw out this disclaimer: changing the factory voltage settings on your GPU can result in system instability, crashes, and/or damage. Proceed at your own risk! Honestly, the risk here is tiny—we’re still constrained to basically safe values by AMD’s software, and in the case of a crash we’ll just reboot and be back to factory settings (where we can try again with less-aggressive values).

We’re aiming to accomplish three things here:

  1. We want to lower the core clock speed as low as possible without impacting performance.
  2. We want to increase the memory clock speed as high as possible without impacting stability.
  3. We want to lower both the core and memory voltage as low as possible without impacting stability.

Before we go changing any values, if you haven’t run your miner at stock settings already for a few minutes to get a decent idea of its baseline performance, now is a good time to do that. Look for output along the lines of “ETH: GPU0 XX.XXX Mh/s” while Claymore’s miner is running. There will be some variance from line to line, but that XX.XXX number is the hash rate for that individual GPU. When you have a good idea of your average hash rate, close the miner—it’s time to start making some changes!

  • Start by decreasing your core clock speed to 1000 mhz from whatever the factory setting was (in the “GPU” area, change the values for state 6 and 7 to 1000 on the Frequency row). Click “Apply” (at the top right). Restart your miner and see how performance looks. There is a good chance that it’s unchanged. If that’s the case, repeat the process, but decrease the core clock speed by another 50 mhz or so. Keep moving down in 50 mhz increments until you notice mining performance drop. When that happens, bump the core clock back up to the previous value—that’s the sweet spot.
  • We’re going to basically do the reverse with the memory clock speed, but there are some important things to know. If you have a GPU that is factory-clocked at 1750 mhz or less (virtually every 4GB RX 470/480 GPU, and most RX 470 8GB GPUs as well—the Sapphire Nitro being the notable exception—then 1750 mhz is going to probably be your limit via this method. Increasing the memory clock beyond 1750 mhz will likely result in a change to less-aggressive memory timings that will result in a loss of performance, and there is no way to prevent this outside of BIOS modifications. So if you have a card clocked at under 1750 mhz, bump it up to exactly 1750 mhz, which will give you a decent performance boost. If you have a 2000 mhz card, you can increase it incrementally, like the reverse of what we did with the core clock. Eventually you’ll experience system instability: artifacts on the screen, a GPU crash, bluescreen, etc. When that happens, back down a bit until things are stable.
  • When you’re satisfied that you’ve found the sweet spot for both clock speeds, it’s time to lower voltages. This is pretty straightforward: drop values 25 mV at a time until you experience instability, then bump it back up to last stable value. You should be able to reduce your power consumption a fair bit this way without impacting performance at all (these are great if you want to measure your electricity usage at the wall).

While more significant performance gains are possible by flashing a custom GPU BIOS (which I’ll cover in the next part of this guide), you should at least be able to realize some significant power savings (which has the added benefit of lowering GPU temperatures as well).

The screenshot in this section is from a factory-clocked 1650 mhz 4GB RX 470 GPU. Feel free to use the settings pictured as your starting point if you have a 4GB GPU, I haven’t found any cards that aren’t stable at these settings yet; most go a bit lower on the voltages.

 Step 13 (optional): Configure remote administration

Configuring remote administration will allow you to disconnect the monitor, keyboard, and mouse from your mining rig and manage it from another computer—even over the internet, if you wish. Windows 10 Professional and up have the built-in option to use Remote Desktop, although it’s disabled by default and must be configured. It’s a fine option if you’re looking for something basic and don’t want to install additional software.

There are a host of other options available, if you’re on a Home edition of Windows and/or want something a bit more robust. I recommend TightVNC: it’s lightweight, simple, cross-platform, and free. Here are the basic setup instructions for TightVNC:

  • Download TightVNC.
  • Install TightVNC on your mining rig. Choose a custom installation and make only the server portion of the application available.
  • Now install TightVNC on the other computer(s) that you plan to manage your rig with. Choose a custom installation and make only the client portion of the application available.
  • If you plan to manage your miner across the internet, forward port 5900 on your router to your mining rig (make sure you choose a strong password if you do this!).

That’s it—you’re done! You’ll probably want to test everything now. The easiest way to do that is to power down your miner. Turn it back on and the following should happen:

  1. Windows should boot up as usual.
  2. You should see a 15 second countdown to the Claymore miner’s launch shortly after the Windows desktop appears.
  3. After the countdown, the miner will start, and your GPUs should start mining.
  4. You should be able to VNC into your rig at any point after the desktop loads to monitor your miner’s progress and GPU temperatures.
  5. If you ever need to start the Claymore miner manually (because you quit out of it, or it crashed, etc), simply double-click your mine.bat file, located in your Claymore miner installation folder.

Congratulations—you have your own headless windows Ethereum miner!

The screenshot above shows a single 4GB RX 470 mining at the settings pictured in section 12. I was able to get about a 10% performance gain over factory settings while reducing power consumption at the same time. That’s good, but we can do better (sometimes much better!) if we’re willing to venture into the world of GPU BIOS mods—and I’ll show you how to do exactly that in the next section of my guide.

BUILD YOUR OWN ETHEREUM MINING RIG, PART 4: OPTIMIZATION

This fourth installment of our Ethereum mining guide will focus on optimizing your rig’s performance via GPU clock speed and voltage setting tweaks to achieve maximum efficiency.

The tweaks that I outline in this article are applicable whether you’re using Linux or Windows. If you’re using the hardware that was recommended in the first part of this guide (or very similar hardware), you should expect to achieve Ether mining performance gains of 20-25%, compared to stock settings! At the same time, you’ll reduce power consumption by 10-15% (and consequently, lower GPU temperature and fan noise).

More speed for less power—how is that possible? Click “read more” to find out, in our mining performance optimization guide!

 Build an Ethereum Mining Rig, part 4: Optimization

Let’s get the bad news out of the way up front: achieving these levels of performance gain require flashing your GPU BIOS with custom replacements. Doing this incorrectly may leave you with a non-working GPU that can be difficult or (sometimes) impossible to restore to factory settings. The steps that I outline in my guide will show you how to minimize the risk that you end up with a bricked GPU, but always remember that messing around with BIOS settings can potentially result in unstable hardware.

Disclaimer: Installing a custom BIOS and/or changing factory clock speed & voltage settings on your graphics card(s) may cause system instability, may harm your hardware, and probably invalidates your warranty. I assume no responsibility for hardware damage if you choose to follow this guide!

With that said, I’ve flashed probably close to a hundred GPUs, and I haven’t destroyed any hardware yet. =) If you proceed, just make sure to follow the steps in order, don’t take any shortcuts, and stop if there is anything that you’re confused or unsure about.

What you’ll need

There are ways to create and flash custom BIOS mods to your GPUs without some of these things, but I believe this method is by far the most user-friendly:

  • A computer running Windows
    You’ll flash your GPUs with this computer. My mining rigs run Linux, but I keep a small/cheap SSD loaded with Windows 10 handy for testing/BIOS flashing purposes (I simply swap the SATA connector between disks when I want to switch OSes). Any version of Windows 7, 8, or 10 will work fine (note that you don’t have to activate Windows to install it). Or, you can simply temporarily move your GPUs to another computer running Windows to flash them.
  • ATIFlash / ATIWinFlash
    You can download the latest version of ATIFlash here (v2.74 at the time of this article). We’ll use this to read and write BIOS files to our GPU hardware.
  • Polaris BIOS editor
    You can download the latest version of Polaris BIOS editor here (v1.4.1 at the time of this article). We’ll use this to modify BIOS files.
  • ATI Pixel Clock Patcher
    You can download the latest version of ATI Pixel Clock Patcher here (v1.4.5 at the time of this article). We’ll need this to get AMD’s Windows driver to recognize a modded BIOS.
  • Kill-a-Watt electricity usage monitor (or similar device)
    Not strictly required, but I highly recommend this—it’ll pay for itself! I have two of these and consider them invaluable in dialing in the performance of my mining rigs. When doing optimization tests, I often find that the last few percentage points of speed gain come at a much larger cost in power consumption (and thus, a decrease in overall profitability)—having an electricity monitor allows me to find the efficiency sweet spot between raw speed and electricity usage.
  • Some baseline information on each of your GPU’s factory performance to compare your modifications against. If you haven’t already, let each GPU run for 5+ of mining and record its speed, temperature/fan speed, and power consumption at the wall (assuming you have a Kill-a-Watt). This will be immensely useful later when trying to figure out if your mods are beneficial or not.

From this point on, I’m going to assume that you’re following directions on a Windows computer with the above software available, ideally with a Kill-a-Watt connected for testing. I’m also going to assume that you have a single GPU installed. If you have multiple GPUs, I highly recommend that you disconnect all but one, and work on them one at a time. All of the software does support multiple GPUs, but you’ll keep confusion and the potential for mistakes to a minimum by only connecting one video card at a time. The times that I’ve made mistakes with BIOS flashing, it has always been because I flashed the wrong card due to having multiple GPUs connected!

Step 1: Make a backup of your factory GPU BIOS

Saving your GPU BIOS with ATIWinFlashBefore we start, open your Radeon Settings and disable any overclocking/undervolting that you have set up through WattMan (if you followed my Windows setup guide, you’ll need to temporarily disable the “EthDcrMiner64” profile that you created in step 12). After that:

  • Open ATIWinFlash (extract the .zip file you downloaded and double-click ATIWinflash.exe).
  • You should see your GPU detected at the top under “System Video Devices”. Again, I highly recommend that you have only a single GPU connected for this entire process!
  • Click “Save” to make a backup of your GPU’s BIOS data. Don’t lose this file!

Your computer might appear to freeze for a few seconds while your GPU BIOS data is being saved—this is normal. When ATIWinFlash is done, you can close it for now.

Step 2: Open your GPU’s factory BIOS with Polaris BIOS editor

Here is where we’re going to be making all of our modifications. Editing the BIOS data gives us access to a few values that we normally wouldn’t have any control over—most importantly, the memory timing values.

  • Open Polaris BIOS Editor (extract the .zip file you downloaded and double-click PolarisBiosEditor.exe).
  • Click “OPEN BIOS” in the top left, then browse to where you saved your GPU’s factory BIOS in step 1, and double-click it to open it.

You should see something like the image below (click for full-size). I’ve highlighted the areas that we’ll be modifying in blue—if you stick to these areas, you’ll generally be safe from getting yourself into too much trouble, as the GPU doesn’t enter these states until it’s mining or otherwise working hard. Note that the first entries in the “GPU” and “Memory” section are outside of the blue area and should never be touched unless you absolutely know what you’re doing. Likewise, the memory timings at 1500mhz and below should usually be left at default settings.

Factory BIOS in Polaris BIOS editor
My screenshot shows the default BIOS from an Asus 1650mhz factory-clocked RX 470 4GB GPU. If you have a 4GB RX 470, it should look pretty similar, although many of the values will likely differ by a small amount. At these factory settings, I get around 20 Mh/s in Claymore’s Ethereum miner, which isn’t spectacular.

If you don’t see memory timing values for your card, try this version of Polaris instead (click the “clone or download” button, then “Download ZIP”).

When you’re comfortable, let’s move on and start modifying some values.

Step 3: Modify BIOS memory timing values

At this point, you should still have Polaris BIOS editor open, with your GPU’s factory default BIOS loaded. We’re going to focus on the lower-right corner area containing memory timings.

If you have a RX 470/480 that has memory clocked at 1750mhz or less (eg: most 4GB cards), you may have noticed that it’s really easy to overclock past 1750mhz via the driver (in Windows, anyway). You probably also noticed that mining performance immediately tanks as soon as you do so: a 1751mhz overclock results in much slower performance than 1750mhz. You may have wondered why, and these memory timings are the answer. On most 4GB cards, the GPU switches over to less aggressive memory timings at clock speeds beyond 1750mhz, which results in slower performance even though the absolute clock speed is higher. We’re aiming to fix that.

This isn’t an exact science, and some experimentation may be necessary for you to achieve optimal results, but what follows is a good starting point and should work for 99% of you:

  • If you have a RX 470/480 that is factory clocked at 1750Mhz or less (eg: nearly all 4GB cards):
    Copy the value in the 1500Mhz field, and then paste it into all of the fields after it (1625mhz, 1750mhz, 2000mhz). The easiest way to do this is to click anywhere inside the 1500mhz value, then press CTRL+A to highlight the entire string, and then press CTRL+C to copy it. Then you can simply click into the remaining fields and press CTRL+A followed by CTRL+V to paste over the existing value.
  • If you have a RX 470/480 that is factory clocked at 2000Mhz or more (eg: nearly all 8GB cards):
    This is a bit trickier, but generally most cards will be most stable by simply copying the value in the 1750mhz field into the 2000mhz field. The easiest way to do this is to click anywhere inside the 1750mhz value, then press CTRL+A to highlight the entire string, and then press CTRL+C to copy it. Then you can simply click into the 2000mhz field and press CTRL+A followed by CTRL+V to paste over the existing value.

Once you’ve made the edit that is appropriate for your GPU, click on the “SAVE AS” button located at the top left. Save your modded BIOS with a new name (don’t overwrite your factory BIOS!), and then close the Polaris editor when you’re done.

Step 4: Flash your modified BIOS back to your GPU

Flashing your GPU BIOS with ATIWinFlashNow it’s time to write your custom BIOS back to your hardware. This can be a little scary if you’ve never attempted anything like this before, but generally if you’ve followed the steps as written, you shouldn’t have any issues. Again, there are no absolute guarantees, so proceed at your own risk!

  • Open ATIWinFlash back up.
  • Click on the “Load Image” button and select the modded BIOS that you created in step 3.
  • Click on the “Program” button to write the BIOS to your GPU. Your computer may appear to freeze for what might seem like a long time—this is normal.
  • You’ll be prompted to reboot when ATIWinFlash finishes. Don’t reboot yet—we have one more thing to do. Go ahead and close ATIWinFlash, though.
  • Unzip the ATI Pixel Clock Patcher utility that you downloaded and double-click atikmdag-patcher.exe. It should offer to apply a patch, let it. You only need to do this step once per GPU, even if you flash it multiple times. If you skip this step, when your computer reboots, the AMD display driver will refuse to load because it’ll detect that your GPU BIOS has been tampered with it.
  • Go ahead and reboot after the patch is applied.

If you’ve done everything correctly, your computer should boot normally, and you’ll arrive back at the Windows desktop, ready to test your changes.

Step 5: Test your modified GPU BIOS

Now is a great time to fire up your miner and see what kind of difference your changes made.

If you have a 4GB card, the timing change alone should be enough to get you from ~20 Mh/s to ~24 Mh/s. If you have a 8GB card, you likely went from ~24 Mh/s to ~28 Mh/s. We can do better, but that’s a pretty good start!

Power consumption will be unchanged (or even up slightly, due to the more aggressive timings), but we haven’t touched voltages yet.

Once you’ve recorded your GPU’s new metrics (speed, temperature/fan speed, power usage), we can move on.

Step 6: Find appropriate clock speed and voltage values for your GPU

Before we head back into Polaris BIOS editor to increase memory clock speed settings, it’s a good idea to have an idea of how high we can push them. It’s a lot easier (and faster) to make these tweaks in Windows via the driver (Radeon Settings/WattMan), and then once we’re confident on the proper values, write them to BIOS.

So if you haven’t already, read step 12 of my Windows guide to get an idea of the process around overclocking and undervolting via driver-level edits. If you’ve already gone through the process, you’ll need to repeat it, as your new more-aggressive memory timings invalidate all of your previous data—you won’t be able to push the memory clock speed as high as you previously could (but performance will be much better).

Using Radeon Settings/WattMan in the manner that I describe in my Windows guide:

  • Increase memory clock speed slowly until you see signs of system instability (incorrect share warnings in your miner, artifacts on screen, crashes)
  • Decrease core clock speed slowly until it starts to significantly negatively impact performance
  • Decrease memory voltage slowly until you see signs of instability (you may not be able to significantly lower memory voltage, depending on your card)
  • Decrease core voltage slowly until you see signs of instability

Don’t rush; make sure that your system is stable before moving on. It’s possible to reach speeds of nearly 29 Mh/s with 4GB cards, or over 31 Mh/s with 8GB cards, but watch out for power consumption and stability issues—it’s not always worth running at higher speeds. I’ve found that 25-26Mh/s for 4GB cards, and 27-29Mh/s for 8GB cards is right around the sweet spot for maximum efficiency and stability. When you feel confident that you have good clock speed and voltage values, then move on to the next step where we’ll write them to the BIOS.

Step 7: Write new clock speed and voltage values to GPU BIOS

Note that this step is not strictly necessary if you plan to use Windows for your miners long-term. You can certainly just dial in whatever values you found in the previous step at the driver/WattMan level and call it a day. I prefer to have everything done at the BIOS level, as then I don’t have to worry about software configuration, and can move GPUs between environments with ease.

If you’re running Linux, this is the only way (currently, at least) to overclock and undervolt.

  • Open Polaris BIOS Editor back up.
  • Load the modified BIOS that you created in step 3 (click “OPEN BIOS” in the top left and browse for your modded .rom file).
  • In the “Memory” area, carefully input your values for memory clock speed and voltage in the bottom row.
  • In the “GPU” area, carefully input your values for core clock speed and voltage in the bottom row. You’ll probably be overwriting a 65xxx value in the voltage column—that’s ok.
  • Still in the “GPU” area, fill in the table between the bottom row and the first row (but do not touch the first row!) with values that ramp up to whatever you entered in the bottom row. It isn’t super important to get these values “right”; you can look at the original table and see what percentage adjacent rows vary by, and just calculate new values that way.

Here is my finished, modded BIOS for my Asus RX 470 4GB (click for full size):

Factory BIOS in Polaris BIOS editor

The original factory BIOS is shown in step 2 for reference. Note that I’ve made absolutely no edits outside of the area I originally outlined in blue. I get over 25 Mh/s after the modifications (+25%), while using ~15% less power compared to stock. These changes are fairly conservative; I’m stable at nearly 27 Mh/s on this card with more aggressive settings, but the increase in power consumption isn’t worth it at my electricity rate.

If you’re looking for a good starting point, the settings pictured here should be stable in just about every 4GB card (in the timings section, just copy the 1500mhz value to every row below it).

When you’re done making your edits in Polaris, save your final BIOS (click “SAVE AS”) as a new file. Then open up ATIWinFlash and write the new .rom to your GPU (same as step 4). Reboot and test!

Step 8: Repeat steps 1-7 for each of your remaining GPUs

Yes, it’s a little tedious. But it goes quite a bit faster after your first one. Don’t be tempted to simply take the first BIOS that you create, and flash that to all of your other cards—every GPU is different, even between cards that are the same brand/model. It’s quite possible (likely, even, if you have a lot) that some of your cards will be capable of stable speeds 25+ mhz higher than others. Test them all; it’ll save you headaches later.

Analyzing the cost/benefit of different setups

If you’re stuck on whether or not an extra 1-2 Mh/s is worth 25 watts of additional power consumption, remember that you can use an online calculator to help simplify things. For example, here is a GPU hashing at 25 Mh/s @ 100 watts vs another GPU at 26 Mh/s @ 125 watts (assuming $0.15 per kWh, remember to plug in your own rate!). At the time that this was written, the slower GPU is slightly more profitable.

BIOS mods: before and after comparison

 

In the next and final installment of this Ethereum mining guide, I’ll post a mining FAQ and some other tidbits that didn’t quite fit anywhere else. Until then, thanks for reading, and feel free to leave questions or comments!

BUILD YOUR OWN ETHEREUM MINING RIG, PART 5: FAQ

In this fifth and final installment of our Ethereum mining rig guide, I answer some common questions about setting up your own rig, profit expectations, and mining in general. If you’ve read the rest of the guide and still have some unanswered questions, you might find what you’re looking for here.

Hit the “read more” button for the FAQ!

Build an Ethereum Mining Rig, part 5: FAQ

 General Questions

Technical Questions

Ethereum-specific Questions

Other

Answers

So how much money can I expect to make from mining, exactly?

This is the question that most people are interested in. The answer is fairly complicated, and changes daily.

Today, one ether is worth about $90. Last week, that same ether peaked at a value of nearly $100. A month before that, ether was trading at less than half its current value. The volatility in digital currency value is extreme—the price today could be very different than the price tomorrow.

On top of that, the difficulty involved with mining a coin is also changing constantly. Today, the rig depicted in our guide will produce nearly 5 ether per month. One month ago, it was producing at a rate of ~7 per month. As the popularity of mining increases (as it often does when the value of each coin increases), the time/computing power it takes to produce a coin increases.

You can answer the question for right now by using a calculator such as this one. If you’re building the exact rig outlined in the guide, then 150 MH/s is a good conservative estimate for speed, and 750 watts should be accurate for power usage if you undervolt and use an efficient PSU (make sure to plug in your own electricity rate, though). The calculator takes into account the current mining difficulty automatically.

At the time that I’m writing this FAQ, assuming you pay $0.10 per kWh for electricity, the calculator would tell you that you should expect to make nearly $400 per month from your mining rig. Remember to subtract 1-2 percent for your mining pool’s fee. Subtracting another couple percent for downtime and other unexpected issues is probably a good idea, too.

If the price of ether rises faster than the mining difficulty increases, then that profit figure will increase. If the mining difficulty outpaces the value growth of ether (and/or ether drops in value), then profit will decrease.

Since it is very difficult to predict the future, I’d strongly advise everyone reading this to treat mining as a hobby, and not a “get rich quick” scheme. Only invest what you’re comfortable losing, because losing is a very real possibility.

Why not just buy ether (or bitcoin, or litecoin, etc) directly, and then sell later at a profit?

If you believe that ETH is about to shoot up in value in the short-term, and you have a very high tolerance for risk, and you have some money that you won’t miss if it suddenly disappears, then this might be the best idea for you. Buying the digital currency directly enables you to get your hands on a bunch of it quickly, without having to wait for a mining rig to produce it for you. However, the “sell them later at a profit” part doesn’t always work out. =)

For most of us with a desire to jump into cryptocurrency, mining is probably the safer option (it’s more fun, too!). If you buy $1500 worth of ETH today, and tomorrow ether is suddenly worthless, then you’ve lost $1500. If you build a $1500 mining rig today, and tomorrow ETH is worthless, then you still have $1500 worth of hardware. You can sell it at a small loss, or re-purpose it (maybe try your luck at mining one of the other digital currencies, for example).

How noisy/hot are these rigs?

This is difficult to answer because it’s so subjective. An open-air mining rig with six RX 4xx/5xx GPUs in it will certainly not be silent. But a properly undervolted rig can be surprisingly quiet, especially compared to the previous generation of litecoin mining rigs (those old 7950 GPUs were noise & heat monsters!).

Using a free sound meter app on my phone, I measured the sound level of my test rig at 47 decibels (with the phone held about 2-3 inches away from the middle of the GPUs). From roughly 6 feet away, the sound level dropped to about 37 decibels, which I find to be completely acceptable. For reference, the sound level in an empty room that I subjectively consider to be completely quiet is 22 decibels, according to the app. If these numbers don’t mean much to you, this chart might be helpful.

My test rig contains a mix of four RX 470/480 GPUs running at a temperature target of 58C. The noise level could be reduced significantly by bumping the target up to 70C if desired (which would allow the fans to spin at a lower RPM), but it’s already more than quiet enough for me.

The heat that a rig produces may be more of an issue, depending on where you live. Most small consumer space heaters put out 1500 watts of heat. An undervolted 6-GPU rig will give off roughly half that, which is still a significant amount. It’s certainly possible to heat a small room with the heat from a single mining rig, but that extra heat can be a nuisance if you live in a warmer climate.

Ideally, you have someplace that you can tuck your rig(s) where they’re out of living spaces. Basements and garages are both good ideas if they’re relatively clean and temperatures don’t venture into extremes.

How do I convince my significant other that building a rig is a good idea?

You’re on your own with that one. Good luck! =) Anecdotally, I did convince my girlfriend to keep a litecoin mining rig in her apartment for most of 2013. She hated the noise (modern GPUs are much quieter), but she did make a tenfold return on her investment.

How do I turn my computer on without a case/power switch?!

So you didn’t opt to purchase a power switch, and now you’re sitting there staring at a bunch of assembled hardware, and wondering how the heck to turn the thing on for the first time. Don’t worry, you have a couple options.

First, check to see if there is a power button built right onto the motherboard. This is somewhat common nowadays, although many boards still don’t include them.

If you don’t have a power button on your motherboard, grab a flathead screwdriver. Now use the head of your screwdriver to temporarily short the two pins on the motherboard that the power switch would be connected to (if you had a power switch). Just touch the head of the screwdriver so that it makes contact with both pins for a brief moment. Your system should immediately power on (if it doesn’t, make sure that your PSU is plugged in, and the PSU power switch is in the “on” position”).

The first thing you should do at this point is enter the BIOS and change the power options to set your computer to automatically power on whenever power is restored. That way, you can use the switch on your power supply to turn it on and off going forward.

Why the Radeon RX 470 GPU? Why not a RX 480/570/580, or another video card entirely?

The Radeon RX 470 GPU is currently gives the best hashrate/watt ratio, and also has an excellent hashrate/purchase price ratio. It’s really the ideal GPU for mining, at least for now.

That said, the RX 470/480/570/580 are all very close performance-wise when properly clocked and undervolted via BIOS mods. In fact, the difference is so close that purchase price should probably be your primary consideration—buy whichever RX 4xx/5xx GPU you can get for the least money, as long as you plan to flash your GPU BIOS (I show you how in part 4 of my guide).

I generally don’t mention nVidia GPUs because they cost so much more than AMD cards. The GTX 1070 is a fine card for mining, with hashrate and power consumption numbers comparable to RX 4xx/5xx cards when properly configured. I don’t recommend it simply because it costs 2-3 times as much as an RX 470, and that has a tremendous negative impact, ROI-wise.

Can I mix different brands and/or models of GPUs in the same rig?

You can always mix different brands of the same model GPU in the same rig (for example, RX 470 GPUs made by MSI, Sapphire, and Asus).

You can additionally mix different models of cards together as long as whatever video driver you’ve installed in your OS supports all of them.

In Windows, you can mix RX 470 and RX 480 cards together with no issues, and you can also mix RX 570 and RX 580 cards. You’ll run into issues if you try to mix RX 4xx cards with RX 5xx cards, because they use different video drivers (it’s possible to make it work, but involves jumping through some extra hoops).

In Linux, I believe that all of the RX 4xx and RX 5xx cards share the same driver, so they should all coexist together without problems.

My own Linux rig runs a mix of different RX 470 and RX 480 cards, all different brands. I have an RX 570 GPU card running in another desktop that I haven’t tried dropping into the rig yet.

Why stop at 6 GPUs? Is it possible to pack more than that onto one motherboard?

Possible? Yes—I know some people have made 7, or even 8 GPUs work on a single motherboard.

I generally don’t recommend it unless you’re pretty savvy and willing to work through a lot of potential headaches, though. Generally, achieving 8 GPUs on a single motherboard is done via use of PCIe splitters (eg: something like this), and they don’t always work well.

7-8 GPUs also generally works best with two power supplies, and that ups complexity (and risk of hardware damage, if done improperly) a bit, as well. In addition, depending on which GPUs you use and how much you undervolt them, an 8 GPU rig may come quite close to the safe continuous load rating on a typical 15 amp household circuit (which is 80% of 1800 watts, or 1440 watts).

To me, 6 GPUs feels like the current sweet spot between maximizing GPU density and minimizing complexity/risk.

Don’t I need more than 4GB of RAM? A lot of other guides recommend more.

Nope—mining uses the memory on your GPUs, so you don’t need much system memory at all. You can get by just fine with 1-2GB of RAM in Linux, and 4GB is enough in Windows (you’ll need to bump your virtual memory settings up to at least 16GB though, covered in step 6 of my Windows guide).

I’m running with a single 1GB DIMM on my own Linux rig, and most of that memory is available while mining.

Why do I need a 1200 watt power supply if I’m undervolting? Won’t I only be using 700-800 watts with 6 GPUs? And is it worth paying so much for a high efficiency unit?

If you’re running six properly undervolted RX 470 GPUs, your “at the wall” power consumption should be around 750 watts. Which means that yes, it’s possible to run such a rig on a smaller PSU without issues.

The reason that I recommend a 1200 watt PSU is due to efficiency variance at different load levels. PSUs are generally most efficient when supplying about 50% of their rated maximum power (you can read a bit about ratings on Wikipedia here). So a platinum-rated 93% efficient unit may only reach that efficiency level when supplying ~40-60% of the unit’s maximum rated power. It’s not uncommon for PSUs rated at 90%+ efficiency to drop down to ~85% when operating near their limit (and also when delivering very little power).

Example time: let’s first assume that your rig needs 700 watts of power to operate (maybe 6x 110 watts for the GPUs, and 40 watts for the rest of the system—this is a fairly realistic number).

Now let’s first assume that you decided ~$250 for a platinum-rated 1200 watt PSU is ridiculous, so you opted for a $100 bronze-rated 850 watt PSU instead (which is still a fairly solid unit!). You’ll be pulling about 854 watts at the wall (700 watts / .82 efficient) with this setup.

Now let’s assume that you want to be as efficient as possible, but since you you know you don’t really need 1200 watts, you go for a $180 platinum-rated 850 watt unit—not realizing that its efficiency rating drops from 93% @ 50% load to 89% @ 100% load. That doesn’t sound like much, and at least it’s still significantly better than a bronze-rated unit, right? With this setup, you’ll end up pulling about 787 watts (700 watts / .89 efficient) at the wall.

Now let’s assume that you just followed my guide and bought the 1200 watt Seasonic that I recommend(platinum-rated units by EVGA, Corsair, and some others are all fine too—they’re likely rebadged OEM Seasonics anyway). Since you’re running the unit at only ~58% of it’s maximum, it should run very near its peak 93% efficiency. Which means this setup will pull about 753 watts (700 watts / .93 efficient) at the wall.

The difference between the first and last example is 101 watts at the wall. Assuming that you run your rig 24/7 and pay 15 cents per kWh, that’s a $133 difference in electricity costs every year! The “expensive” 1200 watt Seasonic pays for itself compared to the much “cheaper” $100 bronze unit in roughly one year of use (the Seasonic has a 7 year warranty, so the odds are that you’ll be using it for quite a long time).

If you want to measure your own “at the wall” power consumption numbers, I highly recommend that you shell out a few bucks for a kill-a-watt. They’re invaluable.

Can I utilize my mining rig for anything else while it’s mining?

It’ll make a great space heater in the winter. =) Oh, you mean application-wise.

The CPU, memory, and disk will mostly be unused while your rig is mining, but anything GUI-related will be pretty unresponsive. Applications that run in the background or over the network are good candidates, if you’re looking to get some extra use out of your rig. You should be able to run things like file servers and low-traffic web servers just fine without impacting mining performance.

How much of my internet bandwidth will my mining rig use?

Not much. Mine averages around 30 kb/sec when it’s mining at full speed, which is less than half of one percent of the average broadband speed in the US (~55 mb/sec). Bandwidth is basically a non-issue—you could run a mining rig off a dial-up connection (in terms of bandwidth, anyway—I absolutely recommend a wired ethernet connection for latency/reliability reasons).

My rig won’t boot properly unless a monitor is connected—what’s up with that?

I’m not sure why some people experience this (I did with my own LTC rig back in 2013, but not my newer ETH rigs), but if your rig won’t boot into the OS without a monitor attached, then you need a dummy plug (a device that plugs into your GPU, fooling the hardware into detecting a display). You can make you own for a few bucks by simply following these instructions (you can buy the resistors that you need on Amazon). Or you can buy pre-made HDMI plugs, although they’re more expensive (it shouldn’t matter if you use DVI or HDMI plugs). You should only need one plug attached to your primary video card, although some people use dummy plugs on all of their GPUs.

I’m getting fan speed errors using the latest version of Claymore’s miner—how do I fix them?

This “failed to set fan speed” issue seems to occur in later Claymore releases (10 and up), and requires a few extra commands to setup the Claymore executable with the permission it needs to control your GPU fans. I’ve incorporated these commands into the latest version of my Linux guide, but in case you followed an earlier version and recently upgraded Claymore to 10.x or later, simply enter these commands:

cd /usr/local/claymore10.2
sudo chown root:root ethdcrminer64
sudo chmod 755 ethdcrminer64
sudo chmod u+s ethdcrminer64

Note that if Claymore is located somewhere other than /usr/local/claymore10.2, you’ll need to substitute the proper location in the first command.

I rebooted and now my GPUs are hashing 20% lower than previously—what happened?
If you’ve just rebooted for the first time since January 9, 2018, you may find that your system has automatically updated to linux kernal 4.13.0-26. The update is designed to patch the Meltdown/Spectre vulnerabilities present on Intel CPUs, but it may also wreak havoc with your mining hashrates. If you’re seeing significantly lower hashrates compared to before the last time you rebooted, you can manually roll back the update by entering these commands:

sudo apt-get remove linux-image-4.13.0-26-generic && sudo apt autoremove -y
sudo update-grub

Reboot (sudo reboot now) and your hashrates should be back to normal.

To stop your system from performing automatic updates in the future, you can use one of the methods described here.

Isn’t Ethereum moving to proof-of-stake soon? Won’t that make our rigs obsolete?

Ethereum will eventually make the switch to PoS, which will make current methods of mining impossible. However, there isn’t currently a timeline for the switch in place, and one of Ethereum’s co-founders stated that an informal estimates of “late 2017” was “too rosy”. Most people close to Ethereum seem to feel that the second half of 2018 is a realistic target for the switch, which still leaves plenty of mining time.

When the switch does occur, it’ll be easy to transition our mining rigs to another coin (which you can then trade for ETH/BTC/LTC, if you don’t want to hold another altcoin).

I have an old video card with 2GB of memory laying around. Can I use it to mine ETH?

Unfortunately, no. Every individual GPU must be able to fit Ethereum’s DAG file into its own video memory to mine. The DAG file is slowly getting larger over time, and as of today, the DAG file is over 2GB, which means only cards with 3GB or more can mine ETH.

Sometime around April 2018, the DAG file will grow beyond 3GB.

The 4GB limit will be reached somewhere around September 2019, although it’s likely that Ethereum will have already moved to proof-of-stake by that point.

Other guides say that you shouldn’t run Linux off a USB drive if you plan to mine ETH, because constant DAG file writes will quickly wear the stick out. Your guide says that a USB stick is ok for a Linux-based ETH mining rig. What gives?

Any guide that cautions against installing Linux to a USB stick for ETH mining was probably written more than 6 months ago. The stock Ethereum miner (geth), writes the (very large) DAG file to disk fairly frequently, which can cause issues for media not rated for large numbers of writes (USB sticks, for example). Claymore’s miner (which we’re using) creates the DAG file in GPU memory, so we don’t have any excessive writes to worry about.

Just when I was about to reach 1 ETH at my mining pool, my balance went to zero! Did I get hacked?

Most mining pools (including ethermine.org, which I use in my guide’s setup examples) hold your earned balance until you reach a certain threshold (usually 1 ETH). When that threshold is reached, they transfer your balance to whatever wallet address you specified. If you’ve been watching your balance accumulate at your mining pool, and then it suddenly went to zero, most likely the pool just transferred your coins to your wallet. You can easily check the balance of your wallet address with a web-based blockchain explorer, such as this one.

How do I keep my ETH wallet safe?

Backup your wallet to multiple secure, offline devices (a few small USB sticks are great for this). If you created your wallet using my guide, then you’ll find your wallet file(s) on your mining rig at the following location:

Linux:   ~/.ethereum/keystore
Windows:   %APPDATA%\Ethereum\keystore

Just copy the entire keystore directory someplace safe. To access the ether held in your wallet addresses, you’ll need both these encrypted key files, and the password that you used to create them. So make sure that you can remember your password(s) as well! Keeping some sort of password “hint” document (that only you would understand) on the backup USB sticks containing your key files isn’t a bad idea. Keep at least one copy off-site (eg: with somebody you trust, or a bank deposit box, etc).

After you’ve made multiple backups of your wallet keys, it’s probably a good idea to remove the keys from your mining rig (simply delete the /keystore directory). It’s generally best to not store your keys long-term on any computer that is connected to the internet. If a hacker successfully gains access to your rig and finds your private keys, you’re going to lose all of the funds stored in the associated wallets. Be absolutely sure that you’ve verified your backups work (read the answer to the next question, and test out the process using your backed-up private keys) before deleting /keystore from your rig, of course.

So I’ve mined all this ether—how do I actually move/use it?

If you’re a masochist, you can move ether around right from the command line of your rig using geth. But I don’t recommend that as it’s tedious, confusing, and prone to mistakes.

A much better way is to download and install Mist (you can do this on any computer, it doesn’t have to be on your mining rig—do make sure that the computer is free from malware first, though!). Mist is essentially a GUI front-end for geth that hides all of the tedious command-line stuff from the user.

Once Mist is installed, you can simply import your wallet key files (see previous question if you don’t know where they’re located), and Mist will show the current balance of each. From there, you can simply click “Send” to move ether out of one of your own wallets to any other wallet address.

Important note: after you install Mist, it’s going to want to sync the blockchain to your computer. This can take anywhere from an hour to a day the first time you do it, depending on the speed of your internet connection (you’ll see a progress bar in the lower left corner). Until this finishes, the balance of all of your wallets will likely show up as zero. Don’t stress, this is normal. Once the sync is complete, all of your balances should show up properly.

I see that Claymore supports dual mining—what is that, and should I use it?

I wrote a dedicated blog post on this subject; you can read it here.

When it comes to buying/selling cryptocurrency, which exchange do you recommend?

There are so many exchanges, and frankly a lot of them are sketchy and operating in countries where regulation isn’t exactly tight. We’ll probably see another Mt. Gox at some point in the future because of this.

For now, I tend to recommend Coinbase. They’re based in San Francisco and seem to be doing all the right things with regard to regulation and insuring users’ funds.

As a general rule, don’t leave your currency in an exchange any longer than necessary (eg: don’t treat exchanges like banks!). Keep your funds in wallet addresses that you control, and move them to exchanges only when you want to trade.

Can I buy you a beer? Your mining guide has been a huge help!

Certainly! Well, virtually, anyway. I’d be happy to accept donations at the below wallet addresses:

Bitcoin: 1DpnANRtMDPe8jG3FXfkyczLFevM94Yjxv
Litecoin: LPuwBa3LbZZzcJaR3kEsGDBivAoc64fPUr
Ethereum: 0x32FD4a5DF96Af70b0D4644Cf4dce44cFc988BEE4


Viewing all articles
Browse latest Browse all 764

Trending Articles