setup ethereum mining rig with ubuntu16.04 server
合同会社kumanoteのTanakaです。
今回は、Ubuntu16.04を使って、Ethereumのマイニングマシンをセットアップしたので、その情報をまとめたいと思います。
主にソフトウェアの設定をメインにまとめています。
注意点
- マイニングプールを使ったマイニングになります。(ソロマイニンングではない)
- AMD系のGPUを使ったセットアップなので、NVIDIA系のGPUは本記事対象外となります。
ちなみに、ビデオカード(GPU)の業界は、Windowsゲーマーがメインの顧客であり、OSは基本的にはWindowsを推奨しています(linuxは非推奨です。)
やってみてわかったのですが、以下メリデメになります。
デメリット
- ~~採掘効率(Hashrate)はWindowsの方がいいです。(2MH/sくらいデフォルトで違います。)~~変わらないみたいです。
- オーバークロックや消費電力を下げるツール及び関連記事はwindowsの方が充実しています。
- 色々やっていて動かない時に、windowsだと動くんじゃないかという気持ちがよぎり、少し萎えます。
メリットもあります
- guiをさわらなくていいです。
- windows updateがはしらないので安定して動作します。
- がんばればscriptベースで大量のマシンを設定して動作することができます。
ハードウェアについては【2017年度版】Amazonで購入可能なマイニング向けライザーケーブル・マザーボード一覧 | デジモノ達人が詳しいです。
ちゃんと読んでマザーボードとか電源を購入すればよかったと少し反省しています。
↑にも記載があるように、GPUを買ったはいいが、認識されない問題があり・・マザーボードは慎重に選んだ方がいいかもしれません
通常であればグラフィックボードはマザーボードに接続しても1本から2本です。
本格的なマイニングでは4本~6本など数多くのグラフィックボードを接続しますがそれは通常の使い方ではありません。
その為、先に紹介したマザーボードでも最大6枚グラフィックボードが正常に認識されるとは限りません。
私は色々なマザーボードを使ってみましたが、ライザーケーブルを使いながら4本~5本までは問題なく認識することが多いです。
私はASROCK FATAL1TY H270 Performanceでためしたのですが、どうしても__3本くらいまでしか認識されません。。。
後日色々試した結果GPUを全てさした状態でbiosを書き換えて起動することで、正常に6本認識しました。
たまに不安定になるので、ライザーは慎重に選ぶ必要があります。
↓↓↓ 前置きが長くなりましたが、以下手順になります。 ↓↓↓
os インストール
usbなどにisoファイルを焼き付け、usbからosインストールを行う。
MacでUbuntuのインストールUSBディスクを作成する - Qiitaが詳しいです。
ssh serverのインストール
$ sudo apt-get update -y
$ sudo apt-get install openssh-server
→ sshできるようになるので、windows/macなどからsshします(コマンドがコピペできるようになるので便利です)
以下の作業はすべてローカルマシンからマイニングマシンにsshで接続して作業を行います。
utilityのインストール
$ sudo apt-get install -y git screen vim unzip python
$ vim ~/.vimrc
:color desert
set number
$ vim ~/.bashrc
force_color_prompt=yes # delete comment & enable setting
LS_COLORS=$LS_COLORS:'di=0;36:' ; export LS_COLORS #add line at the end
ロケールの設定
$ sudo apt-get install language-pack-ja-base language-pack-ja
$ sudo update-locale LANG=ja_JP.UTF-8
$ vim ~/.bashrc
# add the following lines at the end of file.
case $TERM in
linux)LANG=C ;;
*)LANG=ja_JP.UTF-8 ;;
esac
sshを鍵で(のみ)はいれるように設定
$ sudo vim /etc/ssh/sshd_config
PasswordAuthentication no # set PasswordAuthentication no
$ mkdir ~/.ssh
$ chmod 700 ~/.ssh
$ touch ~/.ssh/authorized_keys
$ chmod 600 ~/.ssh/authorized_keys
$ vim ~/.ssh/authorized_keys # insert my mac public key.
$ cat ~/.ssh/id_rsa.pub | pbcopy # ローカルのmacの公開鍵をクリップボードにコピー -> authorized_keysに行追加
AMD Gpu Driverのインストール
参考
$ sudo apt dist-upgrade
# amdgpu-pro-17.10-429170.tar.xzをダウンロード USBに焼いて移動
$ ls /dev/sd* # usbの場所を確認 -> 今回はsdb1だった
$ sudo mount -t vfat /dev/sdb1 /media
$ mkdir ~/drivers
$ sudo cp /media/amdgpu-pro-17.10-429170.tar.xz ~/drivers/
$ sudo chown `whoami`:`whoami` ~/drivers/amdgpu-pro-17.10-429170.tar.xz
$ cd ~/drivers
$ tar -Jxvf amdgpu-pro-17.10-429170.tar.xz
$ cd amdgpu-pro-17.10-429170
$ ./amdgpu-pro-install -y
$ sudo shutdown -r now
$ sudo usermod -a -G video $LOGNAME
$ logout
$ groups # check if belongs to video group
$ dpkg -l amdgpu-pro
# check if version 17.10-429170 is installed
マイニングソフトのインストール
参考
$ mkdir ~/workspace
$ cd ~/workspace
$ wget -O Claymore.v9.5.tar.gz https://github.com/nanopool/Claymore-Dual-Miner/releases/download/v9.5/Claymore.s.Dual.Ethereum.Decred_Siacoin_Lbry_Pascal.AMD.NVIDIA.GPU.Miner.v9.5.-.LINUX.tar.gz
$ mkdir Claymore.v9.5
$ tar xvzf Claymore.v9.5.tar.gz -C ./Claymore.v9.5
マイニング実行
事前準備
libcurl3がないと以下のエラーがでるので、実行前にlibcurl3をインストールしておく
$ sudo apt-get install libcurl3
ちなみにこんなエラーです
./ethdcrminer64: error while loading shared libraries: libcurl.so.4: cannot open shared object file: No such file or directory
実行
Claymore.v9.5インストールディレクトリに以下の実行ファイルを作成して、実行します。
screen
コマンドなどをつかって実行すると便利です。
$ vim start.sh
#!/bin/sh
# export GPU_FORCE_64BIT_PTR=0 # must be comment out for amdgpu-pro
export GPU_MAX_HEAP_SIZE=100
export GPU_USE_SYNC_OBJECTS=1
export GPU_MAX_ALLOC_PERCENT=100
export GPU_SINGLE_ALLOC_PERCENT=100
export ETH_ADDR=自分のethアドレス
export ETH_WORKER_NAME=任意のワーカー名(rig01とか)
export PASC_ADDR=自分のpascアドレス
export PASC_WORKER_NAME=任意のワーカー名(rig01とか)
./ethdcrminer64 \
-epool asia1.ethermine.org:4444 \
-ewal $ETH_ADDR.$ETH_WORKER_NAME \
-epsw x \
-dpool stratum+tcp://pasc-asia1.nanopool.org:15555 \
-dwal $PASC_ADDR.$PASC_WORKER_NAME \
-dpsw x \
-dcoin pasc \
-dcri 10 \
-mode 0 \
-ftime 10 \
-etha 2 \
-allpools 1 \
-wd 0 \
-eres 4 \
-gser 2
備考
- 以下のオプションはライザーカードなどで台数を増やす時は必須のような予感がしてます(じゃないとhang upすることがあった)
- -wd 0 \
- -eres 4 \
- -gser 2
- "epools.txt", "dpools.txt"なども設定しておいた方が無難です。
- 同時にpascalcoinも掘っていますが、不要なのであれば、-d*のオブションは不要です。
- マイニングの進捗は使用しているmining poolで自分のアドレスを検索するとでてきます。