├── .gitignore ├── images ├── 140 Mh:s.png └── 5gpu_rig.png ├── LICENSE └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_STORE -------------------------------------------------------------------------------- /images/140 Mh:s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fogonthedowns/5-gpu-ethereum-mining-rig/HEAD/images/140 Mh:s.png -------------------------------------------------------------------------------- /images/5gpu_rig.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fogonthedowns/5-gpu-ethereum-mining-rig/HEAD/images/5gpu_rig.png -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright 2017 Justin David Zollars 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ETHEREUM MINING 2 | 3 | ### 5 GPU Ethereum Mining Rig Build Guide - (8-16 hours of work) 4 | 5 | ![Image of 5 GPU RIG](https://github.com/fogonthedowns/5-gpu-ethereum-mining-rig/blob/master/images/5gpu_rig.png) 6 | 7 | #### Power Supply  8 | 9 | * [1200 Watt Power Supply](https://jet.com/product/HXi-Series-HX1200i-High-Performance-ATX-Power-Supply/e525fd4b59e34b1fbe0cca46c412941b) 10 | 11 | #### Motherboard/CPU  12 | 13 | * [MSI Pro Z170A SLI Plus Motherboard](https://jet.com/product/MSI-Desktop-Motherboard-Intel-Z170-Chipset-Socket-H4-LGA-1151-Z170A-PC-MATE/1fda8cbd10554b028bd7be07a44f9b41) |  [Intel G3900 Dual Core CPU](https://jet.com/product/Intel-Intel-Celeron-G3900-Skylake-Dual-Core-28-GHz-LGA-1151-65W-BX80662G3900-Des/57f74c89a7564b81914acb7afb723589) 14 |  15 | #### GPUs 16 | 17 | * 5x Graphics Cards (GPUs) – [Nvidia GTX 1070](https://jet.com/product/ASUS-GeForce-GTX-1070-8GB-Turbo-Edition-4K-and-VR-Ready-Dual-HDMI-20-DP-14-Graph/a7c14afa10af44ad86b1eb0b68f0263a) – The efficient Nvidia GTX 1070 can produce 25Mh/s using only 150 watts of electricity. 18 | 19 | ![Image 140 MH/s](https://github.com/fogonthedowns/5-gpu-ethereum-mining-rig/blob/master/images/140%20Mh:s.png) 20 | 21 | #### RAM 22 | 23 | * [RAM (System Memory)](https://jet.com/product/Crucial-Technology-4GB-Single-DDR4-2133-MTs-PC4-17000-CL15-SR-x8-Unbuffered-DIMM/87250d73c9f842a1b19966df54407776) –  4 GB RAM – You don’t need a lot of system memory to mine ethereum effectively. 24 | 25 | #### GPU cables 26 | 27 | * [USB Riser Cables](https://www.amazon.com/MintCell-6-Pack-Powered-Adapter-Extension/dp/B01GU94QSQ/ref=pd_lpo_vtph_147_bs_t_1?_encoding=UTF8&psc=1&refRID=D0HP0K39ZVGXD997G2YN) –  (5 pack) USB Riser Cables – Used to connect the 5 graphics cards to the motherboard and allow spacing between cards for heat dissipation. These are necessary when building a rig with this many GPU’s. 28 | 29 | #### Hard Disk 30 | 31 | * [1x Hard Drive (SSD)](https://www.amazon.com/gp/product/B01K1W7JNW/ref=oh_aui_detailpage_o09_s02?ie=UTF8&psc=1)  –  Solid State Drive for installing operating system and your mining software. 32 | 33 | #### Rig Case 34 | 35 | * 1x Custom Mining Case –  [It does the job (but its janky)](https://www.amazon.com/GPU-Crypto-Currency-Mining-Frame/dp/B0737R3VN1/ref=sr_1_2?ie=UTF8&qid=1503209654&sr=8-2&keywords=open+air+rig). Shop around for sure. 36 | 37 | #### On/Off Switch 38 | 39 | * [Power Button](https://www.amazon.com/gp/product/B01FM62DTC/ref=oh_aui_detailpage_o00_s00?ie=UTF8&psc=1) 40 | 41 | #### Other stuff 42 | 43 | * Keyboard/Mouse/HDMI cable for montior 44 | * 8GB USB stick 45 | * [usb wifi adaptor ](https://www.amazon.com/gp/product/B00EQT0YK2/ref=oh_aui_detailpage_o05_s00?ie=UTF8&psc=1) 46 | 47 | 48 | # Build Guide 49 | 50 | 1. Un-package everything 51 | 2. Build / assemble Open Air 5 GPU Mining Case 52 | 3. Install processor and RAM on motherboard 53 | 4. Plug in all riser cables 54 | 5. Place motherboard in custom open air mining rig case and connect motherboard PSU connector (leaving PSU unplugged from the wall of course) 55 | 6. Plug in SATA hard drive (or optional Linux on USB stick) 56 | 7. Connect all GPUs to riser cables and fasten them to custom case. You might need to experiment for optimal spacing to keep the cards cool. 57 | 8. Plug in all power supply connections. 58 | 9. Connect mouse, monitor and keyboard and an internet connection (I use a USB WiFi adapter) 59 | 10. Check all connections once more 60 | 11. Fire it up! Install Ubuntu 16.04 61 | 12. Make sure fans are fully functional. Start the mining software, tweak settings for maximum hash rates and let it run! 62 | Motherboard, Windows and Mining Software Configuration 63 | 1. Update the motherboard to the latest BIOS using a USB thumb drive. You can find the latest BIOS for the Z170 SLI Plus motherboard here. 64 | 2. Configure Motherboard BIOS with the following settings changes: 65 | * Settings > Advanced > PCI subsystem Setting: PEG 0 and PEG 1 set to Gen1 66 | * Above 4G Decoding (cryptocurrency mining) should be set to Enabled 67 | * Save and reboot 68 | 69 | ### Install OS 70 | 71 | * [Download Ubuntu 16.04](https://help.ubuntu.com/community/InstallCDCustomization) 72 | * If you are on a mac, create bootable USB with these [instructions](http://osxdaily.com/2015/06/05/copy-iso-to-usb-drive-mac-os-x-command/) 73 | * boot your system type `delete` rappidly to enter BIOS mode. Toggle boot order to boot from USB. Save and restart. 74 | 75 | 76 | #### OS extras: 77 | 78 | * open terminal: 79 | ``` 80 | sudo apt install git 81 | sudo apt-get update 82 | sudo apt-get install vim 83 | ``` 84 | 85 | ### Update Bios 86 | 87 | 1. [Download bios update](https://us.msi.com/Motherboard/support/Z170A-PC-MATE.html#support_download) 88 | 2. Move file to USB drive 89 | 3. restart computer, press `delete` to enter bios mode 90 | 4. Select `M-Flash` to update from USB drive 91 | 92 | 93 | ### install cuda 94 | 95 | exit ubuntu gui: 96 | `ctl` + `alt` + `f1` 97 | 98 | stop ubuntu GUI: 99 | ``` 100 | sudo service lightdm stop 101 | sudo init 3 102 | ``` 103 | Nvidia Cuda drivers [https://developer.nvidia.com/cuda-downloads] 104 | ``` 105 | sudo sh [NVIDIA .run file] 106 | ``` 107 | be sure to set PATH variables as noted by the output. Add to the `PATH` of `.bashrc`: 108 | ``` 109 | sudo vi ~/.bashrc 110 | PATH="/some/new/path:$PATH" 111 | ``` 112 | save. exit. and source the environment variables: `source ~/.bashrc` 113 | 114 | Next, enter `sudo init 5`. And restart your system with `sudo restart` 115 | 116 | ``` 117 | sudo apt-get purge nvidia* 118 | sudo add-apt-repository ppa:graphics-drivers/ppa 119 | sudo apt-get update 120 | sudo apt-get install nvidia-367 121 | ``` 122 | ### restart your system 123 | 124 | ``` 125 | nvidia-smi 126 | +-----------------------------------------------------------------------------+ 127 | | NVIDIA-SMI 375.82 Driver Version: 375.82 | 128 | |-------------------------------+----------------------+----------------------+ 129 | | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | 130 | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | 131 | |===============================+======================+======================| 132 | | 0 GeForce GTX 1070 Off | 0000:01:00.0 On | N/A | 133 | | 29% 57C P2 47W / 151W | 2483MiB / 8113MiB | 95% Default | 134 | +-------------------------------+----------------------+----------------------+ 135 | | 1 GeForce GTX 1070 Off | 0000:04:00.0 Off | N/A | 136 | | 45% 72C P2 111W / 151W | 2220MiB / 8114MiB | 48% Default | 137 | +-------------------------------+----------------------+----------------------+ 138 | | 2 GeForce GTX 1070 Off | 0000:05:00.0 Off | N/A | 139 | | 41% 68C P2 60W / 151W | 2220MiB / 8114MiB | 24% Default | 140 | +-------------------------------+----------------------+----------------------+ 141 | | 3 GeForce GTX 1070 Off | 0000:06:00.0 Off | N/A | 142 | | 40% 68C P2 106W / 151W | 2220MiB / 8114MiB | 36% Default | 143 | +-------------------------------+----------------------+----------------------+ 144 | | 4 GeForce GTX 1070 Off | 0000:07:00.0 Off | N/A | 145 | | 45% 70C P2 122W / 151W | 2220MiB / 8114MiB | 28% Default | 146 | +-------------------------------+----------------------+----------------------+ 147 | 148 | +-----------------------------------------------------------------------------+ 149 | | Processes: GPU Memory | 150 | | GPU PID Type Process name Usage | 151 | |=============================================================================| 152 | | 0 1187 G /usr/lib/xorg/Xorg 157MiB | 153 | | 0 2058 G compiz 104MiB | 154 | | 0 2700 C ethminer 2217MiB | 155 | | 1 2700 C ethminer 2217MiB | 156 | | 2 2700 C ethminer 2217MiB | 157 | | 3 2700 C ethminer 2217MiB | 158 | | 4 2700 C ethminer 2217MiB | 159 | +-----------------------------------------------------------------------------+ 160 | ``` 161 | 162 | or 163 | 164 | ``` 165 | watch -n0 nvidia-smi 166 | ``` 167 | 168 | ### Ethminer 169 | 170 | Download [Ethminer](https://github.com/ethereum-mining/ethminer#build) 171 | ``` 172 | mkdir build; cd build 173 | cmake .. -DETHASHCUDA=ON -DETHASHCL=OFF 174 | cmake --build . 175 | sudo make install 176 | ``` 177 | 178 | At this point you could start mining. This is the command to do so. Notice you must fill in your wallet address and your worker name. I've decided to use [Dwarfpool](https://dwarfpool.com/eth) because I like the name and it works for me. However there are many [other](https://www.buybitcoinworldwide.com/ethereum/mining-pools/) mining pools. If you need a wallet you can download [mist](https://github.com/ethereum/mist/releases) to make one. 179 | 180 | ``` 181 | /bin/ethminer -U -F http://eth-us2.dwarfpool.com/[YOUR_WALLET_ADDRESS]/[YOUR_WORKER] 182 | ``` 183 | 184 | If you decide to proxy through stratum use the information above as a reference for edits you will make to `eth-proxy.conf` in the eth-proxy instructions. 185 | 186 | 187 | ### Eth-Proxy 188 | 189 | Stratum Proxy v0.0.5 offers an additional 10-20% increase of earning compared to standard getwork and failover option 190 | 191 | ``` 192 | Pool A (e.g. dwarfpool) <---+ +------ (ethminer process) ----+ NVIDIA 1070 0 193 | (Active) | | 194 | | +------ (ethminer process) ----+ NVIDIA 1070 1 195 | | | 196 | Pool B <--------------------+---- StratumProxy <-----+------ (ethminer process) ----+ NVIDIA 1070 2 197 | (Dwarfpool FailOver) | 198 | +------ (ethminer process) ----+ NVIDIA 1070 3 199 | | 200 | +------ (ethminer process) ----+ NVIDIA 1070 4 201 | ``` 202 | 203 | 204 | * Download [eth-proxy](https://github.com/Atrides/eth-proxy) 205 | * `apt-get install python-twisted` 206 | * Edit `eth-proxy.conf` with your wallet id, and [dwarfpool](https://dwarfpool.com/eth/) uris 207 | * Start Ethproxy: `python ./eth-proxy.py` 208 | 209 | In my case the build is in cpp-thereum-master directory Run: 210 | 211 | ``` 212 | /bin/ethminer --farm-recheck 200 -U -F http://127.0.0.1:8080/rig1 213 | ``` 214 | 215 | 216 | ### Troubleshooting 217 | 218 | #### Login-Loop: 219 | 220 | * If you get stuck in the Ubuntu Login loop checkout `x-session-errors.log` accessible through [answer 2](https://askubuntu.com/questions/223501/ubuntu-gets-stuck-in-a-login-loop) 221 | 222 | 223 | --------------------------------------------------------------------------------