In this guide, we've covered everything from the bottom up so whether you're a beginner or a pro you should be able to glean some useful insight and learn something new.
It doesn't matter if you're planning to do mining using Linux, ethOS or Windows. I've made sure to cover the steps for each. You will also find some great tips, tricks, optimizations, and solutions to common troubleshooting issues.
If you don't have time to read all of it today, then bookmark this page, or sign up to our email list and receive it as a free ebook!
What is Ethereum?
Ethereum is an open blockchain platform similar to Bitcoin but with additional in-built flexibilities. With Ethereum, the blockchain can be considered to be intelligent thanks to the Ethereum Virtual Machine and Smart Contracts. Whereas with Bitcoin it's a glorified ledger.
With Ethereum you can execute code on the blockchain in a distributed way. These are called Smart Contracts. These allow you to set up a system, whereby a person will only receive payment under certain conditions. As Ethereum grows, the scale and complexities of these contracts are expected to increase. Smart Contracts is what has given Ethereum such a solid footing, as with http://www.gridcoin.us/GridCoin, the blockchain has a functional use.
If you're interested in how Ethereum came about and wanted to find out more about it, then watch this YouTube video by COO, Stephan Tual.
Ethereum Mining Profitability
Before you determine if you should go on your Ethereum mining adventure; you'll need to decide whether it's going to be profitable or not.
While, on the surface, this is incredibly easy, as I'll show below, you must be aware that mining is very much like trading. Cryptocurrency prices fluctuate, your equipment might break, and so on. For example, when I started putting this project together, the rough number estimate was that I'd recoup my investment within six months. Now, with the same calculations, it would take eight months. The advantage of mining over trading is that coin prices can be somewhat more stable, and at the end of the day, you'll still have the equipment. Which, if you've chosen wisely, wouldn't have lost too much of its value.
Calculate your expected hashrate and Payout
First, you must calculate how much your hashing power will be. If you already have some GPUs that you're planning to use, then you can use Google to find out its hash rate. Alternatively, you can use a site such as CryptoCompare to determine what the best value for money GPU is. However, I've not yet found a database with a full list so you may wish to start your own excel file and compare the hashrate you get per dollar spent. GPU prices can also vary significantly, country to country, so make sure you take this into consideration as well.
I've chosen to go with the RX480 as it's expected to give 25MH/s at stock settings with a price of $200. Therefore, I'm paying $8/MHs, and the aim is to get this price as low as possible. Therefore, if you see second-hand GPUs where you're paying less than that, then they might be worth a high consideration.
Based on your hashrate you can use CoinWarz to calculate your expected payout, this would be 4.2Eth/month at the moment. This is worth approximately $42 at the moment.
Calculate your Electricity Cost
However, once you have your GPU cards, they will need power. Therefore, the second most important factor is how much your card will consume, and how much you'll need to pay for this. In order, to calculate this, you'll need to find out how much power it uses and how much you need to pay per KW/h. These are respectively 150W and $0.10 per KW/h for me. To calculate the cost peer hour, just convert W to kW (by diving by 1000) and multiply together, so for me the rig would cost 0.15*0.1= $0.015/hour to keep alive. This amounts to $0.36/ day or $10.80/month.
Calculate your Profit and Loss, and Return
So now you know how much money you're making and how much you're spending. With the above numbers, I'll be making $42-$10.80= $31.20 a month with one RX480.
The calculations neglect the electricity used by the other computer components, but these are usually negligible, especially if you have multiple GPUs in a single rig. In my case, I am mining with multiple RX480s, and expect to generate around $200 a month. Since all the equipment cost me $2000, I will break even after ten months, and make $400 profit or 20% by the end of the year.
Ethereum Mining Hardware
To start mining, all you need is an incredibly simple computer. You will need a mouse, a keyboard and a screen for it as well, but this is only required for the setup, so you should be able to use any existing ones that you may have.
Below, I have outlined the considerations you need to keep in mind when choosing these base components and the popular options for each. You can use a website such as PCPartPicker to ensure that the parts you have chosen will work together. Also, if you'd like you can buy complete CPU, RAM and Motherboard bundles from gpuShack.
The motherboard is the most important aspect of any mining rig. The reason for this is that it needs to be able to support all of your GPUs. If you only plan on having one or two, then it's not so important. However, most people will aim to maximize and have 6 GPUs in a single rig. There are very few motherboards that will support the running of 6 GPUs. The big advantage with mining is that you can run the GPUs from x1 PCIe slots, so you don't need to find a motherboard with 6 x16 PCIe slots.
Since the mining 'craze' has started, ASRock has produced motherboard aimed exactly at mining. It's for this reason that arguably the best, and most popular motherboard to buy is the H81 Pro BTC or the H97 Anniversary.
When choosing the CPU, you only need the bare minimum. I wouldn't recommend getting the absolute cheapest, but one or two points above. The reason for this is that some extra processing power is useful when setting up and makes reboots slightly quicker. I chose to go with the Intel Celeron G1840.
Again, you will need the bare minimum, 4GB will do. I chose to go with 8GB just in case. Also, if you're going to be doing solo mining, it's a good idea to have as much as possible at the start as this will make syncing the blockchain a lot faster. Of course, once that's finished, you can remove the excess.
I've outlined choosing the GPU above. Currently, the RX480s are one of the most popular mining cards, but if you look around the Ethereum Forums, you'll be sure to find plenty of more recommendations.
To calculate the size of the PSU you require you will need to add together the power requirements of all of your components. A site like PCPartPicker will do this for you perfectly. Add 20% on to the required as a safety factor. Also, make sure you're using a high-quality, well recognized, and high-standard PSU, as if it blows, you could say goodbye to some very expensive equipment.
For the hard drive, using an SSD is essential. While SSDs are more expensive, you will only need a 16GB one, which will set you back less than $30. If you're planning to solo mine, it's recommended that you buy a 32 or 64GB one, but again this will only be a few dollars more.
Apart from the main components, you will also need GPU risers. I'd recommend getting USB powered 1x to 16x risers, which you can get from Amazon, for a few dollars. With some motherboard models, you will need to short some pins for the motherboard to recognize the riser.
It's also recommended that you buy some additional PCIe to Molex (or SATA) connectors so that you can connect the risers to different rails on your PSU. Again, you can find these on Amazon, and will only cost a few dollars.
On the whole, your hardware, excluding GPUs, shouldn't cost you more than $500, and the large part of this will be your PSU. Below is a recommended purchase list from Amazon. The total without the GPUs comes to $472.21. While with 6 RX480s your total cost would be $1702.15 sans shipping costs.
Ethereum Mining Guide
So now that we have covered profitability and hardware, it's time to get mining.
However, even with mining, there are three important considerations to make: operating system, solo or pool, and mining software.
Which OS to choose?
When it comes to choosing your Ethereum mining operating software, there are three main contenders: Windows, Linux, and ethOS. If you're a Mac fanboy, it is possible, but it's advised for numerous reasons.
If you're used to Windows and haven't ever gone near Linux, then stay with Windows. If you're planning on using 6 GPUs, then Windows 10 is recommended as it has support built in naturally. Windows 7 & 8 will require some playing around with. If you are used to commanding line style systems, and mining will be the only aim of the rig, then I'd highly recommend looking at ethOS.
Additionally, Windows has the benefit of more universal support and, generally speaking, better overclocking tools. Furthermore, accessing it is an absolute ease with something like TeamViewer. It does have the downside of slightly more complicated setup but nothing too difficult, especially if you don't plan on tweaking the GPUs performance.
Furthermore, if you're only looking to mine Ethereum as a hobby with your normal PC, then MinerGate allows you to do this extremely easily.
ethOS is a stripped-down version of Linux (Ubuntu 14.04 to be specific) that has the simple aim of mining Ethereum (and a few other cryptocurrencies). Not only is it incredibly easy to set-up, but it's also easy to use and maintain. I've also noticed that it runs more optimally than Windows. It does have the downsides that you won't be able to use your rig for much else, but most people don't tend to, anyway. Furthermore, remote access is only through SSH so you should be comfortable with not having a GUI. However, for $39, it's a no-brainer in my opinion.
Some mining enthusiasts swear that Linux is the best operating system for mining. While this used to be the case, there are stronger disagreements on the topic than previously. While I do prefer Windows, Linux does have its advantages and being a slimmer system it can have its upsides. Furthermore, Windows usually comes with a price tag, so if you're looking for a free option, then Linux is the one for you.
Solo vs. Pool Mining
When it comes to cryptocurrency mining, the situation is very similar to a real mine when you consider each GPU to be a person that is mining.
Solo mining is when you mine by yourself. The advantage of this is that anything you find is completely yours to keep. Unfortunately, if you only have a few miners, it might take a very long amount of time to find "gold." Furthermore, the frequency of finding gold can also vary extensively. You may have a week where you hit gold thrice, but then nothing for a whole month. Clearly, if you have a lot of miners (GPUs), then the outcome will be more stable, but below 1GH/s mining rate, Solo mining is not advisable if you want a stable return. If you're not worried about shifts in when you find Eth, then Solo mining is a good option above 100Mh/s as you do not need to pay fees to anyone.
With Pool mining, many miners join forces in an effort to find the coin. The found coins are then equally distributed between the miners, though with some pools the ratios can vary on a few factors. However, you do need to pay a small fee (usually less than 1%) to the pool operator for maintaining the service. The upside is that you'll have consistent payout and thereby make money related calculations more accurate.
If you're reading this guide, you probably want to mine on a single rig, so I'll primarily cover Pool mining, but will touch upon Solo mining as well.
Ethereum Mining Pools
- http://ethereumpool.co/ - 0.8% fees. Payouts released 2 times a day for balances higher than 0.5 ETH.
- http://dwarfpool.com/ - 2% fees. Payouts released 4-6 times a day for balances higher than 1 ETH.
- http://weipool.org/ - 0% fees. Payouts released every 24 hours for balances higher than 1 ETH.
- http://ethpool.org/ - Predictable Solo Mining pool. 0% fees. Payouts after 10 confirmations. More info on @dr_pra comments below.
- http://nanopool.org/ - PPLNS 1% fees. Payouts released 2 times a day for balances higher than 0.1 ETH.
- https://www.alpereum.ch - 0% fees. Payout every 30 minutes for balances over 0.2ETH.
- https://eth.suprnova.cc/ - 1% fees. Payouts are up to the miner (Manual or Automatic from 0.01 ETH).
Going back to the analogy of real-world mining, in cryptocurrency mining you can use different tools to find the gold, so-called mining software. Each mining software has evolved over the years, but some have developed more than others. The primary contenders for Ethereum mining are Claymore and Genoil.
Geth is the original software from the Ethereum team. If you wish to solo mine, this will be your best option. It's simple and straightforward to use. It can also create your wallet for you, but as discussed below, you should get Mist/Ethereum Wallet as well if you prefer a GUI option.
MinerGate isn't recommended if you plan to have dedicated mining rigs. If, however, you wish to mine on an existing computer as a hobby, or out of interest, it's perfect.
While it does take a fee from your mining, it's GUI is quick and simple to use and once install you can be mining instantaneously. It also has some challenges that encourage you to mine, and if you're an absolute beginner, then the simplicity of this software will have you jumping for joy. If simplicity is something you prefer, then NiceHash is also a very solid option.
Genoil is a continually developing and very optimized miner for Ethereum. It runs smoothly, and you can get up and running with it very quickly. Personally, I've had a few issues with DAG generation, but a few tweaks quickly solved this. If you're only planning on mining Ethereum, then Ethminer by Genoil is a strong contender.
Personally, I've found Claymore to be the strongest and best all-round miner. It's easy to set up, I've never had any issues with it, and it has a ton of added functionality (e.g. fan management), that I haven't seen with other miners. It also has the bonus that it can mine two coins at once, which some people have found very useful to optimize their income. There have been reports of anywhere between 3 and 10 percent extra income.
For each operating system, I will give the setup instructions for the preferred miner.
Once you start mining, you will also need to keep your Ethereum in a safe location. This is possible in two ways, a local wallet or an online wallet. A local wallet has better safety as it always remains in your control. However, if you do use a local wallet, then either install it on a computer that's not your miner or regularly transfer funds elsewhere. The reason for this is that should your computer crash; it could be hard to recover any Ether that is kept on there.
Mist / Ethereum Wallet
Mist and Ethereum Wallet are the official developments by the Ethereum team. While at the heart of it it's straightforward to use, it does pack a lot of extra features. Since it's integrated with ShapeShift, you can also accept payments from Bitcoin other altcoin accounts as well. It also allows you to develop Ethereum based apps and services - a.k.a. Smart Contracts.
Geth (with Etherwall)
Geth is the underlying code for the Mist wallet and is the core service for syncing the Ethereum blockchain. Unfortunately, it is a command-line service, which can make it hard and annoying to use. http://www.etherwall.com/Etherwall adds a GUI front-end to it, making it easier to use.
Ethereum-Wallet.net is a similar development that is also worth taking a look at.
Poloniex and Kraken
So now that I've discussed all the prerequisites, here are all the steps that you will need to start mining on Windows.
1. Install Windows and C++ Redistributables
This is pretty much a given. However, I thought I would mention it as it's always best to start off with a clean installation. If you're using more than 4 GPUs, then I'd recommend using Windows 10, or you will need to do some tweaks. If you're going to use Windows 7 or 8, then also install the 6xGPU Mod software. An important fact to remember with fresh installations is that you should disable your computer from ever going to sleep or hibernating.
You will also need to install the C++ Redistributable Packages for Visual Studio.
2. Download Drivers and Packages
Download the drivers and control packages for your GPUs. While it is possible to have a rig with both Nvidia and AMD GPUs, this is ill-advised as it can lead to several issues.
For AMD, install Radeon Software Crimson Edition 15.12 and the OpenCL SDK Package. Depending on your GPU, this might not be the correct driver. So if you're having issues, check the Ethereum Forum for advice.
3. Install Additional Software
Before you start mining, it's recommended that you install some additional software that will help monitor and optimize the performance of your system.
Display Driver Uninstaller. DDU helps create clean uninstalls of display drivers. This can help if you are having issues with the video drivers. In Windows 10 it also disables the automatic display driver updates that can cause compatibility and mining issues.
GPU-Z. GPU-Z is a tool for monitoring the stats of your GPUs and displaying core details about it. You can easily plot the stats, and log/export them should you wish to.
TeamViewer. If you're planning on remotely accessing your rig to monitor it and control it, then the free version of TeamViewer will be the easiest to use.
Overclocking Tool. If you're planning to optimize the performance of your rig (which you should be), it's recommended that you get an overclocking tool of some kind. Most GPU manufacturers will provide one for you to use. Also, depending on which mining software you will use, you will need it to control the fan speed on the GPUs. Furthermore, AMDs new WattMan has proven to be a very well designed software tweaking your GPU settings.
4. Set-up your Wallet
Decide on which service you would like to use for your wallet, and sign up for it. I've created a Poloniex account, as I plan on doing some trading with the Ether I mine to try to further increase my profits. Make a note of your address. It should look something like this: 0x7b5eff562ee17b9e27a7af6afc26944266c8b025.
If you want a local address, then download the Mist wallet, let the blockchain sync and create your account there. Alternatively, download Geth, and save it to a folder such as C:Ether. Then type "geth account new". Whichever method you go for, make sure that you save your password with a secure software such as KeePass.
5. Set-up Geth (Optional for Solo Mining)
If you'd like to Solo mine, you will need to be in sync with the blockchain. To do this, you will need to download Geth and save it to a folder such as C:Ether. Then open a command prompt, and navigate to this folder using the cd command. First, if you're not using a local wallet, you will need to sync the blockchain. The quickest way is using the command:
geth --fast --cache=1024 --jitvm console
The cache value is the amount of RAM you have, 1GB in the example above. The more RAM you have, the faster you can sync the blockchain.
In Notepad create a file with the below text and save it as a gethsync.bat, in your Ether folder. Launch this bat file every time before you start mining. You can also create a shortcut to it on your homescreen.
6. Set-up your Miner
For Windows, the Genoil miner has proven to be the most effective, and I'll show you how to set this up. However, if you're interested in other alt-coins, then you should also consider looking at Claymore miner.
Once you have downloaded Genoil, save and extract it to a suitable folder, e.g. C:Ether.
Open Notepad and create a file called genoil.bat with the following text, in the same folder. These settings will optimize your mining capability and launch the mining itself. Make sure to replace the pool and wallet address by what you're using. If you're Solo mining, then replace the last line by using the command "ethminer.exe -G".
setx GPU_FORCE_64BIT_PTR 0
setx GPU_MAX_HEAP_SIZE 100
setx GPU_USE_SYNC_OBJECTS 1
setx GPU_MAX_ALLOC_PERCENT 100
G --farm-recheck 200 --cl-local-work 256 --cl-global-work 8192
Launch genoil.bat, and you will start mining. Every time you start it, there will be a small while where the system will say 0Mh/s as your hashrate. Do not worry. Usually, this means that your DAG file is still being generated. The more GPUs you have, the longer it will take.
7. Monitor your Rig
Once you're mining, make sure you watch your rig. The first 24-48hours are essential and will determine if your system is stable or not. If it runs without problems during that period, then you should be fine. I'd recommend staying within reachable distance of your rig during this time as all sorts of issues can occur, and if you're extremely unlucky, you could end up burning a building down.
You can remotely keep an eye out on your rig by checking it's hashing status on the pool of your choice and also by logging in using TeamViewer.
8. Improving Performance
If you wish to improve your hash rate, then read the section on this at the end.
1. Install Ubuntu 16.04 and the AMD Driver.
2. Install the Ethereum Software
First, you will need to add the repository. Use the commands below for this.
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:ethereum/ethereum sudo apt-get update
Now install the software preferred Ethereum software, the miner, and Geth. These will help you with syncing with the blockchain and then starting to mine.
sudo apt-get install ethereum
sudo apt-get install ethminer sudo apt-get install geth
If you'd like, you can use Geth to create your wallet, but as discussed previously it's more ideal if you use an online wallet.
3. Benchmark and start mining
You can now test that your rig is mining using the first command, and then start mining using the second. It's a simple as that. If you want to use a pool different to Nanopool, then, of course, replace it with your chosen one.
ethminer -G -M
ethminer -G -F http://eth-eu1.nanopool.org:9999/0x --farm-recheck 200
If your having an issue with one of your miners, you can use the below commands to help you try and find which GPU is the problem
ethminer -G -M --opencl-device x (where x is your GPU id starting at 0)
list--devices (shows all the GPUs you have available)
ethOS is possibly the simplest way of setting up a mining rig and is my go-to option when creating a new one. While it does cost $39, the amount of time it saves on troubleshooting is more than worth it. Arguably, it's also easier and more streamlined to monitor as you can access it simply through SSH or look at your custom dashboard. You can read my review of it here, or head over to gpuShack to purchase it.
1. Purchase, Download and Install ethOS
Once you have bought a license, you will be given a download link. Download it, and install it according to their instructions on a small SSD.
2. Initial Boot-up & Set-up
When you first boot it up, you must have a single GPU connected to the x16 slot closest to the CPU. The initial boot up will take a few minutes. Once that's done, you will need to change the remote and local config files. To help with this, gpuShack has a fantastic knowledge base. Of course, if you haven't yet, then you will need to get yourself an Ethereum Wallet/ address.
3. Add GPUs
Add each GPU one by one, making sure that the system runs stable each time. By doing so, you'll ensure that the system recognizes each one correctly, and if there are any issues, it will be easier to pinpoint.
4. Monitor your rig
To monitor your rig, you have two options. You can either log in through SSH or look at the generated stats panel. The stats panel has the advantage that it's a simple web page and you can easily view it from anywhere. SSH poses the advantage, that should you have any issues, you can easily remotely manage the system (as long as you're happy with Linux command line operations).
5. Improving Performance
If you wish to improve your hash rate, then read the section on this at the end.
6. Tips for ethOS
Change your password: Use the below commands to change both the root and main ethOS user passwords. This is important especially if you're planning to remotely access through SSH. Otherwise, your machine could be maliciously taken over.
sudo passwd ethos
Set up SSH: If you're going to set up SSH, there are two important things you need to do. Firstly, set up port forwarding on your router, so that traffic redirects to your rig. Secondly, use the below commands, to change the SSH port to something different e.g. 2221. While this won't stop an attack if there is a port scan, it will reduce the possibility of an attack by a crawler. You can also consider using private & public keys to 100% ensure that only you can access the rig.
sudo nano /etc/ssh/sshd_config
Change the line that says '# Port 22' to 'Port 2221', or your preferred port.
It is possible to mine Ethereum, using online services such as AWS, or DigitalOcean. However, no-one has managed to make this real-time profitable, and you should only take this root if you don't wish to build your own rig and want to speculate on the pricing.
There are also Ethereum Mining Contracts such as by Genesis Mining. These companies provide you with your own dedicated mining rig, and you have to pay for this upfront. Again, unless you're speculating heavily on the pricing, these don't tend to be worth it.
General Tips Improving Mining Performance
In some cases, your motherboard BIOS might not be set-up correctly straight away. If you're adding your GPUs one by one, and at one point your rig crashes, and you've eliminated GPU related issues, then it's likely that your motherboard is the issue. Have a look around the forums for help, but often you will need a few settings changing. Personally, I've had experience with having to disable switch off some BIOS features and altering allocations, but system setups vary largely so I would say Google is your best friend.
Fan and temperature: control and monitoring
Always, always make sure you have a system in place for monitoring your fans and temperature, and you can check on these remotely. If you're using Genoil, then the system will try to correct itself, and if you're using ethOS, it will shut down a GPU if there is an overheat issue. However, not all miners are created equal, and if you're not careful, you could burn your house down. This is one of the reasons why it's so important to monitor your rig continuously and ensure that it runs stable within the first 24 hours. Also, bear in mind the heat fluctuations during summer and winter months as those few degrees difference can have a huge impact.
If you wish to improve performance, you have two options: overclocking and custom BIOS. A custom BIOS usually has overclocking built into it, as well as a few other tweaks.
Overclocking: Overclocking is the simpler of the two methods. Windows and ethOS support these easily through Wattman and ethos-overclocking respectively. The general rule of thumb is that increasing the mem clock by 10% increases your hashrate by 10%. You can also change the core clock. However, this has a smaller effect. Also, reducing core clock can be beneficial because it can reduce your power use and while your hashrate will be slightly lower, you could be positive overall as you'll be using less power. The right core/mem balance will depend on your electricity cost and hashrate.
Custom BIOS. Custom BIOS' are trickier. While it's easy to use a tool such as AtiFlash to flash your GPU, keep in mind that it is risky. You will also need to find a BIOS that is suitable for your GPU unless you're proficient at tweaking it yourself with a tool like PolarisBiosEditor. However, this can have the largest gain. For example, for the RX480 a custom BIOS can raise its hash rate to 30Mhs+ which is a considerable 30% improvement!
Extra Fans. Especially if you have multiple rigs, then make sure you attach some additional fans to your case/ housing. Some people also use normal desk fans or in some cases high-power industrial fans. Check out my copper tube mining rig, to get some creative ideas about how to create a useful but attractive mining rig at the same time!
Ethereum Mining Conclusion
So that's it. I hope you enjoyed reading this Ethereum mining guide, now start building your rig so you can start mining as quickly as possible!
Have any feedback, questions, comments? Let me know in the comments and I'll make sure to keep this article up to date.