Wednesday, May 27, 2015

Ethereum GPU Mining: Ubuntu 14.04 LTS From Scratch


----------------------------
11/27/2015
This guide is now OUTDATED and has been updated: The New Guide  

-----------------------------
7/30/2015
Updated Multi-GPU commands
Updated instructions for building cpp-ethereum

7/29/2015 @ 11:46pm
Added instructions on transitioning from testnet to Frontier. 
-----------------------------

I tried for two days to install Ethereum for GPU mining and I was tired of reading the Ethereum.org posts and getting no where. I'm a novice when it comes to all this collaborative code development so I just needed a simple-stupid guide for me! I've collated everything in one place for those that are running Ubuntu. This works from a clean install of Ubuntu 14.04 LTS

Note: I found this works best if you don't have your GPU card in while doing the initial Ubuntu install (this caused issues for me as the on-board video and GPU were fighting for monitor control or I was hallucinating). 

Start Install:

at the command line type:

 sudo apt-get -y update  
 sudo apt-get -y upgrade -f  
go to system& settings>Software&Updates>Updates &click Pre-released updates (trusty proposed)shut down the computer
install the GPU and GPU power
boot up the computer
then go to system & settings > Additional Drivers & your GPU should be listed there, select Using video driver fror the AMD graphics accelerators from fglrx-updates (proprietary)
apply changes and close

back to the command line: 
 sudo apt-get -y install git  
 sudo apt-get -y install software-properties-common  
 sudo add-apt-repository ppa:ethereum/ethereum  
 sudo apt-get update  
 sudo apt-get install -y build-essential libgmp3-dev golang  
 sudo apt-get -y upgrade  
 git clone https://github.com/ethereum/go-ethereum  
 cd go-ethereum  

backup your old key file (if you mined on test net):
 sudo cp -r ~/.ethereum/keystore ~/Desktop/  

Now lets continue with geth install and get the latest version of geth:
 git checkout master 


Clear out your old blockchain (only if you've run geth on test net previously)
 sudo rm -r ~/.ethereum/extra/  
 sudo rm -r ~/.ethereum/state/  
 sudo rm -r ~/.ethereum/blockchain/  


we need to do some last things to setup for Frontier:

 sudo apt-get install curl    
 cd ~    
 sudo apt-get install -y python-pip python-dev build-essential   
 sudo pip install --upgrade pip   
 sudo pip install --upgrade virtualenv   
 mkdir genfiles  
 cd genfiles  
 curl -O -k https://raw.githubusercontent.com/ethereum/genesis_block_generator/master/mk_genesis_block.py    
 curl -O -k https://bootstrap.pypa.io/get-pip.py    
 sudo python get-pip.py    
 sudo python -m pip install bitcoin  
 cd ..  
 cd go-ethereum   
 make geth    
(if you throw an error on make geth and you go back and try and fix things, make sure to delete the go-ethereum directory before trying to make geth again (error help me!))



now we make a new wallet for Ethereum:


 build/bin/geth account new  

(enter in a password 2x)


now we'll install ethminer

 cd ~  
 sudo apt-get -y install language-pack-en-base  
 sudo dpkg-reconfigure locales  
 wget -O - http://llvm.org/apt/llvm-snapshot.gpg.key | sudo apt-key add -   
 sudo add-apt-repository "deb http://llvm.org/apt/trusty/ llvm-toolchain-trusty main"  
 sudo add-apt-repository ppa:ethereum/ethereum-qt  
 sudo add-apt-repository ppa:ethereum/ethereum-dev  
 sudo apt-get -y update  
 sudo apt-get -y upgrade  
 sudo apt-get -y install build-essential git cmake libboost-all-dev libgmp-dev libleveldb-dev libminiupnpc-dev libreadline-dev libncurses5-dev libcurl4-openssl-dev libcryptopp-dev libjson-rpc-cpp-dev libmicrohttpd-dev libjsoncpp-dev libargtable2-dev llvm-3.8-dev libedit-dev mesa-common-dev ocl-icd-libopencl1 opencl-headers libgoogle-perftools-dev qtbase5-dev qt5-default qtdeclarative5-dev libqt5webkit5-dev libqt5webengine5-dev ocl-icd-dev libv8-dev  
 git clone https://github.com/ethereum/cpp-ethereum  
 cd cpp-ethereum  
 git checkout master   
 mkdir build   
 cd build  
 cmake .. -DGUI=0 -DETHASHCL=1   
 make -j2  
 sudo make install  
 sudo apt-get install cpp-ethereum  #(Can someone confirm that skipping to this step still works)
 cd ~
 cd go-ethereum   

If cmake .. -DGUI=0 -DETHASHCL=1 fails for you, try this variant:
 cmake .. -DGUI=0 -DETHASHCL=1 -DEVMJIT=0  


 Once the genesis block is release do this: (No Longer Required in go-ethereum later than release/1.0.0)



 python ~/genfiles/mk_genesis_block.py --extradata 0x11bbe8db4e347b4e8c937c1c8370e4b5ed33adb3db69cbdb7a38e1e50b1b82fa > genesis_block.json  
 ./build/bin/geth --genesis ~/genfiles/genesis_block.json  


Sync with the Network & Benchmark:

at the command line type:


 cd go-ethereum  
 build/bin/geth -rpc console  
This will start syncing you up with the network. Once synced (you are only grabbing 1-2 blocks at a time) head back to the command line to benchmark. (Note: Personally I found the results of this benchmarking unreliable. Easier to just skip to the mining part):

Ctrl + C
 build/bin/geth --rpccorsdomain localhost 2>> geth.log &  
 ethminer -G -M --opencl-device 0  
 tail -f geth.log  

I initially had some trouble b/c I had an AMD embeded video card and an AMD GPU. Make sure you are targeting the right GPU card by changing the opencl-device # until you find the right card. Reference this list to see if you are targeting the right card.

 Once your are done benchmarking, post your results here.

Note: benchmarking using the code above causes geth to run in the background and thus if you try mining or running geth again, you might get an errors. Easiest thing to do at this point is close the terminal and open a new one. Or just restart the computer for good measure. Then you should have no problem going on to the mining step.

Mining:

Now we're done installing and benchmarking, lets start freaking MINING!

 build/bin/geth --rpc console 
 
I then open up a second terminal and type:

 ethminer -G --opencl-device X   

Where X is the value given by your benchmarking results. Keep doing the "etheminer -G --opencl-device X", one time for each GPU you have. It will take a few minutes for rpc console to sync up and get ready as well as a few more minutes for the miner to start hashing so be patient.

If you skipped the benchmarking part, at this point you should have a good idea of how fast your machine is mining so go and post the results of your average hashing here.  

If you're experiences errors eith Ethminer at this point check the reference posts below. 

Additionally, some GPUs may required an additional typed at the regular command console (not the geth console):

 export GPU_MAX_ALLOC_PERCENT=95  


One last check after you start mining, make sure your coinbase account (the account where your mining rewards will be deposited) is set. You can check this by typing the following inside the geth javascript console:
 web3.eth.coinbase  

If this returns '0x0' that means you're mining rewards will get sent into a big black hole. Fix this by typing the following inside the geth java scrypt console:
 web3.miner.setEtherbase(web3.eth.accounts[0])  

That will set your mining account to your primary account. 

Multi-GPU Mining: 

You can mine with multiple cards. Plug them both into your board and turn on geth "build/bin/geth -rpc console". Let the chain sync.
Then pop open a second terminal and type:

 ethminer -G -t X 
where X is the number of GPUs you have to mine on.
Cheers!

Updating:

Occasionally you will need to update your copy of geth and cpp by pulling down the latest release from github. You can perform this operation by:

 cd go-ethereum  
 git pull  
 make geth    
 cd ..  
 cd cpp-ethereum  
 git pull  
After pulling the latest revision of Geth, make sure to rebuild it using "make geth" as shown above. If you don't rebuild it, it causes major long-term problems. On rare occasion, you will need to completely wipe your blockchain and re-download it. Perform that operation as follows

 cd go-ethereum  
 build/bin/geth removedb   

References:

This post was put together by reading the following posts:
Mining FAQs Live Update
Frontier GPU guide 
Benchmark
Building on Ubuntu
Final Steps for Frontier 

Code formatting brought to you by codeformatter.

65 comments:

  1. good job...thanks for effort

    got stuck at
    sudo apt-get -y install software-properties-common wget -O - http://llvm.org/apt/llvm-snapshot.gpg.key | sudo apt-key add -
    sudo add-apt-repository "deb http://llvm.org/apt/trusty/ llvm-toolchain-trusty-3.5-binaries main"

    you might want to break up command as we had trouble getting through this point.


    we did get to
    build/bin/geth --rpc console
    gives us
    Fatal: blockchain db err: resource temporarily unavailable
    Fatal: blockchain db err: resource temporarily unavailable

    hmmm? DAG built successfully and blockchain loaded through out the night ...any ideas?

    thx

    ReplyDelete
  2. good job...thanks for effort

    got stuck at
    sudo apt-get -y install software-properties-common wget -O - http://llvm.org/apt/llvm-snapshot.gpg.key | sudo apt-key add -
    sudo add-apt-repository "deb http://llvm.org/apt/trusty/ llvm-toolchain-trusty-3.5-binaries main"

    you might want to break up command as we had trouble getting through this point.


    we did get to
    build/bin/geth --rpc console
    gives us
    Fatal: blockchain db err: resource temporarily unavailable
    Fatal: blockchain db err: resource temporarily unavailable

    hmmm? DAG built successfully and blockchain loaded through out the night ...any ideas?

    thx

    ReplyDelete
  3. Was going well till here, thanks for the effort

    got to one block

    build/bin/geth --rpccorsdomain localhost 2>> geth.log &
    bash: geth.log: Permission denied

    did sudo su
    build/bin/geth --rpccorsdomain localhost 2>> geth.log &

    Fatal: blockchain db err: resource temporarily unavailable

    ReplyDelete
  4. whenever I get a resource temporarily unavailable I usually close the terminal down and then reopen a new one. I think this problem is caused by multiple versions of geth trying to access the same resources at the same time.

    ReplyDelete
  5. Thanks for your guide; very easy top follow but I'm getting an error when I input 'make geth':

    build/env.sh go install -v -ldflags '-X main.gitCommit 9d8b512b27f691fc1980b850e04eb436a3938626' ./cmd/geth
    github.com/ethereum/go-ethereum/eth/fetcher
    github.com/huin/goupnp
    # github.com/ethereum/go-ethereum/eth/fetcher
    build/_workspace/src/github.com/ethereum/go-ethereum/eth/fetcher/fetcher.go:197: cannot use &blocks (type *types.Blocks) as type *[]*types.Block in function argument
    build/_workspace/src/github.com/ethereum/go-ethereum/eth/fetcher/fetcher.go:320: cannot use &blocks (type *types.Blocks) as type *[]*types.Block in function argument
    # github.com/huin/goupnp
    build/_workspace/src/github.com/ethereum/go-ethereum/Godeps/_workspace/src/github.com/huin/goupnp/goupnp.go:97: unknown http.Client field 'Timeout' in struct literal
    make: *** [geth] Error 2

    Any help would be much appreciated.

    ReplyDelete
  6. Kos, found the same error you encountered. Apparently it's a golang issue. (http://www.reddit.com/r/ethereum/comments/38r6z7/psa_building_the_latest_geth_requires_go_version/)

    You'll have to delete your go-ethereum folder and then run the following commands:

    sudo apt-get install software-properties-common

    sudo add-apt-repository ppa:ethereum/ethereum

    sudo apt-get update

    sudo apt-get install -y build-essential libgmp3-dev golang

    sudo apt-get -y upgrade

    git clone https://github.com/ethereum/go-ethereum

    cd go-ethereum

    make geth

    ReplyDelete
  7. This comment has been removed by the author.

    ReplyDelete
  8. thanks.. well needed post!

    however iam getting an error at the

    build/bin/geth unlock line:

    Fatal: extra db err: open /home/a/.ethereum/extra/033581.ldb: too many open files
    Fatal: extra db err: open /home/a/.ethereum/extra/033581.ldb: too many open files

    fresh install, followed to the T

    ReplyDelete
  9. Fatal: extra db err: open /home/a/.ethereum/extra/033581.ldb: too many open files
    ok, this error is related to an incomplete or corrupt blockchain dir copied over.

    ReplyDelete
  10. Thanks for the guide and the ongoing help.

    A couple of people in this thread are running multiple cards and might be able to help me out:

    I've followed skithuno's guide and am now successfully mining with a single 290x at a consistent 25-26MH/s.

    I've got second card - a 280x. Can I run mine with these cards both at the same time? If so, what alterations do I have to make to the process set out in the guide to get them both running?

    Any and all help is much appreciated.

    ReplyDelete
  11. Kos _ ,

    I added comments in the main post about multi-gpu. Cheers

    ReplyDelete
  12. Hello - I got to the step build/bin/geth -unlock '0' -etherbase '{address}' -rpc console

    and thew an error - fatal: genesis block not found

    Do you think this could have something to do with switching to the Frontier blockchain?

    Thanks for the guide.

    ReplyDelete
  13. Hi,

    I am getting stuck at the line
    build/bin/geth -unlock '0' -etherbase '0xca9287cbea5f89c67e2893d204948d83e58268d9' -rpc console
    But with my address.

    It says Fatal: Genesis block not found. Please supply a genesis block with the "--genesis /path/to/file" argument

    ReplyDelete
  14. @Seb and @David Archer, This is an issue with the Frontier launch, just skip to the next step. I will be adding some additional instructions over the next few days on what to do before the genesis block comes out.

    ReplyDelete
  15. It's hanging on:

    wget -O - http://llvm.org/apt/llvm-snapshot.gpg.key | sudo apt-key add -

    Is llvm.org down?

    Pressing ahead and trying the cpp-ethereum compilation anyway, and it fails. What is llvm?

    ReplyDelete
  16. Got llvm now, but I'm on Utopic (Ubuntu 14.10) and swapping trusty for utopic in the next line doesn't seem to work, despite them looking the same here: http://llvm.org/apt/

    ReplyDelete
  17. I don't believe 14.10 will work at all. I have not heard of anyone running this build. I suggest you move back to 14.04

    ReplyDelete
  18. @Greg Colbourn, I just went through the llvm part on 14.04 and it worked fine, no issues.

    ReplyDelete
  19. On the `make -j2` step i get this error

    /home/joe/mining/cpp-ethereum/evmjit/libevmjit/JIT.cpp:7:28: fatal error: llvm/IR/Module.h: No such file or directory
    #include
    ^
    compilation terminated.


    I tried manually linking like so

    sudo ln -s /usr/include/llvm-3.5/llvm/ /usr/include/llvm
    sudo ln -s /usr/include/llvm-c-3.5/llvm-c/ /usr/include/llvm-c

    but then when running make -j2 i get a TON of compilation errors.

    Any advice?

    ReplyDelete
  20. hey good job dude....thanks for doing all this work....nice to have in one place and in a format that makes sense.


    at
    cmake .. -DGUI=0 -DETHASHCL=1

    iam getting this error

    -- Could NOT find rocksdb (missing: ROCKSDB_INCLUDE_DIR ROCKSDB_LIBRARY)
    CMake Error at cmake/FindPackageHandleStandardArgs.cmake:138 (message):
    Could NOT find v8 (missing: V8_INCLUDE_DIR V8_LIBRARY)
    Call Stack (most recent call first):
    cmake/FindPackageHandleStandardArgs.cmake:374 (_FPHSA_FAILURE_MESSAGE)

    any ideas?

    ReplyDelete
  21. @SkithUno I ended up doing a fresh install with 15.04 last night an it worked! Multi-GPU mining with just "ethminer -M -G" (well I recorded 49MH/s anyway, which must be both R9 280Xs :-) Just wondering whether it's worth the risk to add the 3rd now, with just hours away to launch..

    ReplyDelete
  22. @ldub Dev, did "wget -O - http://llvm.org/apt/llvm-snapshot.gpg.key | sudo apt-key add -" execute correctly on your machine or did it throw an error? sounds like this command didn't execute properly.

    @Heritic Shmifd, not sure whats wrong here other than you're missing a library. Other than that, I',m not sure. When in doubt, reinstall 14.04 :(

    @Greg Colbourn, definitely worth it to add another. cheers

    ReplyDelete
  23. @SkitUno I'm just cautious because I've had 1 card blow up already (probably from overheating, but it could also have been from overloading power or just because it was a cheap card sold "untested as spares and repairs"). so I'm wary of overloading/overheating the system! Might wait until I've at least mined a few blocks, and then try adding the 3rd.. Thinking of just getting some more Add2PSU adapters and just having 1 PSU per GPU (I've got a load of cheap 600W ATXs that I use for the 3D printer kits I sell).

    Only ~1500 blocks to go.. Good luck everyone! :-)

    ReplyDelete
  24. @SkitUno I'm stuck at this :

    cmake .. -DGUI=0 -DETHASHCL=1

    -- Could NOT find rocksdb (missing: ROCKSDB_INCLUDE_DIR ROCKSDB_LIBRARY)
    CMake Error at cmake/FindPackageHandleStandardArgs.cmake:138 (message):
    Could NOT find v8 (missing: V8_INCLUDE_DIR V8_LIBRARY)
    Call Stack (most recent call first):
    cmake/FindPackageHandleStandardArgs.cmake:374 (_FPHSA_FAILURE_MESSAGE)
    cmake/Findv8.cmake:66 (find_package_handle_standard_args)
    cmake/EthDependencies.cmake:59 (find_package)
    CMakeLists.txt:324 (include)


    -- Configuring incomplete, errors occurred!
    See also "/home/cpp-ethereum/build/CMakeFiles/CMakeOutput.log".

    How to solve this problem??

    ReplyDelete
  25. Now I'm stuck at :

    I have solved my previous problem using :

    sudo apt-get install libv8-dev

    But now having this error :

    -- CXXFLAGS: -std=c++11 -Wall -Wno-unknown-pragmas -Wextra -Werror -pedantic -DSHAREDLIB -fPIC -fuse-ld=gold
    CMake Error at evmjit/CMakeLists.txt:41 (message):
    No LLVM package found!

    ReplyDelete
  26. @SkithUno yes, `wget -O - http://llvm.org/apt/llvm-snapshot.gpg.key | sudo apt-key add -` executed correctly.

    However, did you realize that you went through all these manual compilation steps only to execute `sudo apt-get install cpp-etherem` right afterwards? Whats the point?

    ReplyDelete
  27. Same here.. Getting:

    -- CXXFLAGS: -std=c++11 -Wall -Wno-unknown-pragmas -Wextra -Werror -pedantic -DSHAREDLIB -fPIC -fuse-ld=gold
    CMake Error at evmjit/CMakeLists.txt:41 (message):
    No LLVM package found!

    ReplyDelete
  28. This comment has been removed by the author.

    ReplyDelete
  29. If you're stuck on the cmake/DGUI=0 step do the following:

    sudo add-apt-repository "deb http://llvm.org/apt/trusty/ llvm-toolchain-trusty main"

    sudo apt-get -y update

    sudo apt-get -y upgrade

    sudo apt-get -y install build-essential git cmake libboost-all-dev libgmp-dev libleveldb-dev libminiupnpc-dev libreadline-dev libncurses5-dev libcurl4-openssl-dev libcryptopp-dev libjson-rpc-cpp-dev libmicrohttpd-dev libjsoncpp-dev libargtable2-dev llvm-3.8-dev libedit-dev mesa-common-dev ocl-icd-libopencl1 opencl-headers libgoogle-perftools-dev qtbase5-dev qt5-default qtdeclarative5-dev libqt5webkit5-dev libqt5webengine5-dev ocl-icd-dev libv8-dev

    Then when you retry "cmake .. -DGUI=0 -DETHASHCL=1" it'll function correctly.

    Took me way too much time to figure this out lol

    ReplyDelete
  30. sudo apt-get -y update GIVES ERROR

    E: Malformed line 67 in source list /etc/apt/sources.list (dist parse)
    E: The list of sources could not be read.

    anyone else?

    ReplyDelete
  31. @Ldub Dev, I am not 100% familiar with what exactly each and every command does. I scraped together what I could find from the many many links that have been posted everywhere on how to install it. If you want suggest abbreviations I'm all ears!

    ReplyDelete
  32. Updated the instructions for building cpp-ethereum. Should cause the "cmake .. -DGUI=0 -DETHASHCL=1" to function properly. Test it out and let me know.

    ReplyDelete
  33. So I mined a few blocks, and then when things started to slow down a bit, I thought I'd add the 3rd GPU. Bad move! Had what I think was a "brown out" - the power went off when I started mining. Thought I'd escaped unscathed when the machine came back on again. Went back to the same 2 GPU set-up, and now I'm getting "Bus error (core dumped)" every time I run ethminer, even when putting --opencl-device 0 (so only 1 GPU is called) :-( Anyone got any ideas?

    ReplyDelete
  34. P.S. I know the GPUs still work (they can at least power the display).

    ReplyDelete
  35. Solved my own problem - was a bad DAG file (that was in the process of being generated for the 3 GPU set-up when the power went out, I think). Deleted it from the .ethash directory. Ethminer then made a new one, and I'm back in business again :-) Will have to stick to 40MH/s for now, until I can get some more components to add more power.

    ReplyDelete
  36. This comment has been removed by the author.

    ReplyDelete
  37. @Eva Shon, Thanks VERY much for the hint on the multi GPU. I've been looking for how to do that for several hours now. Updated the blog on the extra cmake flag as well.
    Thanks!

    ReplyDelete
  38. Thanks for your blog post SkithUno, was a good complementary guide to the github docs to setting up my first mining rig!

    ReplyDelete
  39. Wow, thanks so much for doing this! I was getting nowhere trying to follow
    the instructions from ethereum.org

    BUT I'm hanging up at make -j2

    I get

    [ 46%] Building CXX object libevm/CMakeFiles/evm.dir/SmartVM.cpp.o
    [ 46%] Building CXX object libevm/CMakeFiles/evm.dir/ExtVMFace.cpp.o
    Linking CXX shared library libevm.so
    /usr/bin/ld.gold: error: CMakeFiles/evm.dir/VMFactory.cpp.o: file is empty
    collect2: error: ld returned 1 exit status
    make[2]: *** [libevm/libevm.so] Error 1
    make[1]: *** [libevm/CMakeFiles/evm.dir/all] Error 2
    make: *** [all] Error 2


    Anyone know what this means? THanks!

    ReplyDelete
  40. This comment has been removed by the author.

    ReplyDelete
  41. Please, does this mean I am mining?

    miner 23:57:52|ethminer Got work package:
    miner 23:57:52|ethminer Header-hash: 4aeb0e37d38f0603cb92588f59eeccdbc5017333326294002436701a5c0b4658
    miner 23:57:52|ethminer Seedhash: 0000000000000000000000000000000000000000000000000000000000000000
    miner 23:57:52|ethminer Target: 00000000011f71a86ca07185fb10f2561b94b00e8c23d48c8f1b7688d2860022
    ℹ 23:57:52|gpuminer0 workLoop 1 #00000000… #00000000…
    miner 23:57:53|ethminer Mining on PoWhash #4aeb0e37… : 11010048 H/s = 5505024 hashes / 0.5 s
    miner 23:57:53|ethminer Mining on PoWhash #4aeb0e37… : 11522813 H/s = 11534336 hashes / 1.001 s
    miner 23:57:54|ethminer Mining on PoWhash #4aeb0e37… : 11511313 H/s = 17301504 hashes / 1.503 s

    ReplyDelete
  42. GREAT JOB
    on ubuntu 15.04 works fine up
    to genis block command......i got:

    \Collected timestamps: 8949
    Listed purchases
    Computed purchases
    Finished, total purchased: 60108506260000000000000000
    Foundation wallet creator address: 5abfec25f74cd88437631a7731906932776356f9
    Foundation balance: 11901484239480000000000000
    a@a ~> ./build/bin/geth --genesis ~/genfiles/genesis_block.json
    ./build/bin/geth: command not found
    a@a ~> cd go-ethereum
    a@a ~/go-ethereum> ./build/bin/geth --genesis ~/genfiles/genesis_block.json
    I0803 18:02:46.819984 3181 backend.go:289] Protocol Versions: [61 60], Network Id: 1
    Fatal: open /home/a/genfiles/genesis_block.json: no such file or directory

    cant figure out what i am doing wrong

    ReplyDelete
  43. GREAT JOB
    on ubuntu 15.04 works fine up
    to genis block command......i got:

    \Collected timestamps: 8949
    Listed purchases
    Computed purchases
    Finished, total purchased: 60108506260000000000000000
    Foundation wallet creator address: 5abfec25f74cd88437631a7731906932776356f9
    Foundation balance: 11901484239480000000000000
    a@a ~> ./build/bin/geth --genesis ~/genfiles/genesis_block.json
    ./build/bin/geth: command not found
    a@a ~> cd go-ethereum
    a@a ~/go-ethereum> ./build/bin/geth --genesis ~/genfiles/genesis_block.json
    I0803 18:02:46.819984 3181 backend.go:289] Protocol Versions: [61 60], Network Id: 1
    Fatal: open /home/a/genfiles/genesis_block.json: no such file or directory

    cant figure out what i am doing wrong

    ReplyDelete
  44. Do you know how to change this setting on my GPU?

    GPU_MAX_ALLOC-PERCENT=95

    Having trouble with this. Where in the process and how is it done?

    ReplyDelete
  45. @SkithUno @David Archer

    I have the same question..

    Anyone know how to set this??

    Thanks!!

    ReplyDelete
  46. In Linux you can simply issue the following at the command prompt:

    export GPU_MAX_ALLOC_PERCENT=100

    in windows, I believe you can issue the following command at a command prompt:

    setx GPU_MAX_ALLOC_PERCENT 100

    ReplyDelete
  47. @Heritic Shmifd,
    You might want to do a git checkout master, the newest version doesn't require the whole genfile stuff (see updated command line notes in guide)
    @ algebra, yes, you're mining! Welcome!

    I have not had to use the "export GPU_MAX_ALLOC_PERCENT=95" command, but I will include it in the guide. Thanks @JimZee

    ReplyDelete
  48. Unable to upgrade to Geth version 1.0.1

    I tried with:
    sudo apt-get update
    sudo apt-get upgrade

    Didn't work, so I tried with:
    git checkout master

    Then:
    cd go-ethereum
    git pull
    make geth
    cd ..
    cd cpp-ethereum
    git pull

    Still v.1.0.0 when I use: build/bin/geth version

    So, I tried:
    sudo apt-get install software-properties-common
    sudo add-apt-repository -y ppa:ethereum/ethereum
    sudo add-apt-repository -y ppa:ethereum/ethereum-dev
    sudo apt-get update
    sudo apt-get upgrade

    But still v.1.0.0

    Do you have any idea what I can do now ?

    ReplyDelete
  49. @Esteban Delgato,

    you have to be in the go-ethereum directory to git checkout master:

    ~/go-ethereum
    git checkout master
    git pull
    make geth

    ReplyDelete
  50. Resolved my problem with some help:


    Go to your go-ethereum directory.
    Do git fetch, which should synchronize you with the latest tags and branches.
    Checkout out 1.0.1: git checkout v1.0.1.
    Build it: make geth.
    Check the version: ./build/bin/geth version.

    If it can help...

    ReplyDelete
  51. @SkithUno....thanks. v1.0.1 works now...(see my latest post)

    ReplyDelete
  52. Thanks again for this awesome guide. I'm mining with your help.

    But I have a 4 GPU rig.

    I begin mining on device 0 - starts up fine.
    I then begin mining on device 1 - starts up fine.
    (These 2 GPUs will run stable indefinitely.)
    I then begin mining on device 2 - whole system crashes.

    I have tried swapping out GPU (thinking a bad GPU might be the reason. Nope. Same issue.

    Any of you multi-GPU folks have any pointers?

    ReplyDelete
  53. Was thinking GPU 3 may not be getting the MAX_ALLOC_PERCENT=95 . Any way to send this command to a particular GPU?

    ReplyDelete
  54. David - have you successfully mined with all 4 GPUs simultaneously on this rig before? They will each need ~300watts of power, give or take. I've had issues with supplying enough power to the 3rd/4th GPU even w/a beefy PSU - using powered PCI riser cables solved that for me. Good luck!

    ReplyDelete
  55. Thanks. Yes. I used it to mine litecoin before it became unprofitable. Before I started ethereum, I ran bfgminer (recently) and it showed all GPUs running and working fine, so I really think its a protocol issue somewhere. I think the PS should power 4 but def 3 GPUs. Although these units seem to hash faster on ethereum...maybe they use more power.

    ReplyDelete
  56. David - How much RAM does the rig have? pretty sure ethminer requires more RAM than X11 etc.

    ReplyDelete
  57. hey guys, great guide tried others but always come back to here!

    I recommend a few additions!

    a breakdown of ubuntu "software and update settings" under all tabs...ie canonical on ?, prereleased updates(proposed) on ? auto check for updates off?
    a clear recipe for Accounts:import/send/update as well as convert from froniter.
    a clear recipe for PM2 install and getting on stats.ethdev.com
    a section on ATICONFIG tweaking and monitoring temps.
    a section on doing a node set up (cluster)

    if these were included the guide would be complete!

    My contribution:
    I have 2 banks of 5 cards.
    -8GB of RAM is more than enough for 5 cards. (GPUDS should have 3GB or more of GDDR)
    I pull 1170 W TOTAL on 5-280x with 850EVO SSD. powered by twin 860AIcorsiar(Y adapter)
    dont go over total rated PSUW by 70% as effiency steeply drops off from there, you will be doubling your power bill after that, as effiency is rated at 50% under full load sweet spot..so over 50% diminishes your returns.(read the fine print)

    -i had better success running drivers from software updates..than by TAR unpack (AMD pack/SDK8)
    -start with GPU(display) on MOBO , use TOP PCI16slot,ONBOARD vga off!
    -load drivers.1 card only.then run
    $ sudo apt-get install fglrx-updates
    $ sudo aticonfig --adapter=all --initial
    $ aticonfig --list-adapters
    INSTALL CARD 2, reboot, repeat last 2 commands,install next GPU, rebooot repeat last to commands, etc.
    ENSURE BIOS IS : GEN2, UEFI not legacy, PCI first, and DISABLE ONBOARD VIDEO or you WILL have problems.(that includes "software and drivers"/additional drivers 2nd clause (intel microfirmware) OFF!

    powered usb risers=GOOD
    get cards out of case and buys some fans....they will have heat! each bank of 5 is the same as running a HAIRDRYER on HOT.

    i have spent over a 100 hrs, on troubleshooting, MOBOS,dead GPUS, and finally have 10 UP and will be doing another bank of 10 with an attempt at running a cluster and headless....

    cheers!
    thanks again for the great guide and
    good luck fellow miners!

    all hail Buterin!

    ReplyDelete
  58. For my multi-GPU rig (see just above), I believe my problem is the RAM - I have 4gig and 4 GPUs Might be too much. Just not sure at this point. Heritic? Got any pointers for me?

    ReplyDelete
  59. @archer yah 1G system RAM card is not enough, i recommend 1.5 min per card...assuming your cards are 3GB gddr or greater.........remember DDR3 has to go in pairs so your next option is add a pair of 1GB for a total of 6 will be fine.....a good indicator is how many windows you can have open while mining and how much lag you have going window to window.....more ram helps this temporary storage of data.

    ReplyDelete
  60. Hello!
    Whenever I run Geth, I get:
    Fatal: Error starting Ethereum: listen udp :30303: bind: address already in use

    I have no other Terminals running. I have rebooted and I still get this message. Any idea how to eliminate this message?

    Thanks!

    ReplyDelete
  61. Bitcoin mining is the use of Hardware to collect Bitcoins.
    neo web wallet

    ReplyDelete

  62. Thanks for this nice detailed post. I have to say your contents are great and one of its kind. I have been following your posts with great interest. Keep up the good work and keep us entertained with all your unique contents.

    bitcoin cash news
    Bitcoin price rise
    Bitcoin volatility

    ReplyDelete
  63. Since it is asked, here the reply:

    This step is necessary:

    sudo apt-get install cpp-ethereum #(Can someone confirm that skipping to this step still works)

    Without no ethminer is available.

    ReplyDelete
  64. Ether crypto

    Ethereum [ETH] is a decentralized platform that runs smart contracts which runs perfect every time without any problem of downtime and any fraud.

    Visit our website by just clicking on - Ether crypto

    ReplyDelete