CentOS Linux で BitZeny をマイニングしてみる

以前、Monero (XMR) をマイニングするために MinerGate というソフトを Windows・Mac で動かしたりしていた。結果、GeForce GTX1080 では換金ラインまで貯めるのがしんどすぎて止めてしまった。

GPU マイニングはしんどいので、CPU でマイニングができるという BitZeny という暗号通貨をマイニングしてみた。コチラも旬は過ぎているのだが、お試しということで。

2021-01-07 : BitZeny Wallet はセキュリティ上の懸念がありサービスが停止している。lapool.me もサイトが失効しているのか、アクセスできなくなっていた。この当時試してみた記録としてお楽しみください。

目次

BitZeny Wallet を登録する

まずは BitZeny を保管するオンライン・ウォレットを作成する。

ウォレットアドレスが入手できたら、以下の Faucet でウォレットがちゃんと使えるか試してみよう。

LA BitZeny Pool に登録する

続いて、BitZeny のマイナープールで有名な LA Pool に登録する。

アカウント登録後、「Worker」を作成する。コレは、マイニングを行っているマシンを識別するための情報で、マシンごとに任意の

を作成する。今回はとりあえず1つ作っておけば良いだろう。

CentOS Linux に CPU Miner をインストールする

BitZeny を CPU マイニングするための CPU Miner というツールを、CentOS Linux にインストールしていく。

# 以降 root ユーザで作業する
$ sudo su -

# 事前に必要なパッケージをインストールする
$ yum update -y
$ yum install -y git gcc automake autoconf libcurl-devel openssl-devel jansson-devel gawk

# CPU Miner をダウンロードしてくる
$ git clone https://github.com/bitzeny/cpuminer cpuminer
$ cd cpuminer/

# セットアップしていく
$ ./autogen.sh
configure.ac:15: installing './compile'
configure.ac:4: installing './config.guess'
configure.ac:4: installing './config.sub'
configure.ac:6: installing './install-sh'
configure.ac:6: installing './missing'
Makefile.am:12: warning: 'INCLUDES' is the old name for 'AM_CPPFLAGS' (or '*_CPPFLAGS')
Makefile.am: installing './INSTALL'
Makefile.am: installing './depcomp'

$ ./configure
checking build system type... x86_64-unknown-linux-gnu
# …中略…
checking for curl_free... yes
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating compat/Makefile
config.status: creating compat/jansson/Makefile
config.status: creating cpuminer-config.h
config.status: executing depfiles commands

$ make
make  all-recursive
make[1]: Entering directory `/root/cpuminer'
Making all in compat
make[2]: Entering directory `/root/cpuminer/compat'
make[3]: Entering directory `/root/cpuminer/compat'
make[3]: Nothing to be done for `all-am'.
make[3]: Leaving directory `/root/cpuminer/compat'
make[2]: Leaving directory `/root/cpuminer/compat'
make[2]: Entering directory `/root/cpuminer'
gcc -std=gnu99 -DHAVE_CONFIG_H -I. -pthread -fno-strict-aliasing     -g -O2 -MT minerd-cpu-miner.o -MD -MP -MF .deps/minerd-cpu-miner.Tpo -c -o minerd-cpu-miner.o `test -f 'cpu-miner.c' || echo './'`cpu-miner.c
mv -f .deps/minerd-cpu-miner.Tpo .deps/minerd-cpu-miner.Po
gcc -std=gnu99 -DHAVE_CONFIG_H -I. -pthread -fno-strict-aliasing     -g -O2 -MT minerd-util.o -MD -MP -MF .deps/minerd-util.Tpo -c -o minerd-util.o `test -f 'util.c' || echo './'`util.c
mv -f .deps/minerd-util.Tpo .deps/minerd-util.Po
gcc -std=gnu99 -DHAVE_CONFIG_H -I. -pthread -fno-strict-aliasing     -g -O2 -MT minerd-sha2.o -MD -MP -MF .deps/minerd-sha2.Tpo -c -o minerd-sha2.o `test -f 'sha2.c' || echo './'`sha2.c
mv -f .deps/minerd-sha2.Tpo .deps/minerd-sha2.Po
gcc -std=gnu99 -DHAVE_CONFIG_H -I. -pthread -fno-strict-aliasing     -g -O2 -MT minerd-scrypt.o -MD -MP -MF .deps/minerd-scrypt.Tpo -c -o minerd-scrypt.o `test -f 'scrypt.c' || echo './'`scrypt.c
mv -f .deps/minerd-scrypt.Tpo .deps/minerd-scrypt.Po
gcc -std=gnu99 -DHAVE_CONFIG_H -I. -pthread -fno-strict-aliasing     -g -O2 -MT minerd-yescrypt.o -MD -MP -MF .deps/minerd-yescrypt.Tpo -c -o minerd-yescrypt.o `test -f 'yescrypt.c' || echo './'`yescrypt.c
In file included from yescrypt-best.c:2:0,
                 from yescrypt.c:22:
yescrypt-simd.c:37:2: warning: #warning "Consider enabling SSE4.1, AVX, or XOP in the C compiler for significantly better performance" [-Wcpp]
 #warning "Consider enabling SSE4.1, AVX, or XOP in the C compiler for significantly better performance"
  ^
mv -f .deps/minerd-yescrypt.Tpo .deps/minerd-yescrypt.Po
gcc -std=gnu99 -DHAVE_CONFIG_H -I. -pthread -fno-strict-aliasing     -g -O2 -MT minerd-sha2-x64.o -MD -MP -MF .deps/minerd-sha2-x64.Tpo -c -o minerd-sha2-x64.o `test -f 'sha2-x64.S' || echo './'`sha2-x64.S
mv -f .deps/minerd-sha2-x64.Tpo .deps/minerd-sha2-x64.Po
gcc -std=gnu99 -DHAVE_CONFIG_H -I. -pthread -fno-strict-aliasing     -g -O2 -MT minerd-scrypt-x64.o -MD -MP -MF .deps/minerd-scrypt-x64.Tpo -c -o minerd-scrypt-x64.o `test -f 'scrypt-x64.S' || echo './'`scrypt-x64.S
mv -f .deps/minerd-scrypt-x64.Tpo .deps/minerd-scrypt-x64.Po
gcc -std=gnu99  -g -O2 -pthread  -o minerd minerd-cpu-miner.o minerd-util.o minerd-sha2.o minerd-scrypt.o minerd-yescrypt.o  minerd-sha2-x64.o minerd-scrypt-x64.o  -lcurl   -ljansson -lpthread
make[2]: Leaving directory `/root/cpuminer'
make[1]: Leaving directory `/root/cpuminer'

$ make install
Making install in compat
make[1]: Entering directory `/root/cpuminer/compat'
make[2]: Entering directory `/root/cpuminer/compat'
make[3]: Entering directory `/root/cpuminer/compat'
make[3]: Nothing to be done for `install-exec-am'.
make[3]: Nothing to be done for `install-data-am'.
make[3]: Leaving directory `/root/cpuminer/compat'
make[2]: Leaving directory `/root/cpuminer/compat'
make[1]: Leaving directory `/root/cpuminer/compat'
make[1]: Entering directory `/root/cpuminer'
make[2]: Entering directory `/root/cpuminer'
 /bin/mkdir -p '/usr/local/bin'
  /bin/install -c minerd '/usr/local/bin'
 /bin/mkdir -p '/usr/local/share/man/man1'
 /bin/install -c -m 644 minerd.1 '/usr/local/share/man/man1'
make[2]: Leaving directory `/root/cpuminer'
make[1]: Leaving directory `/root/cpuminer'

ココまでやったらセットアップ完了。以下のコマンドで CPU Miner (minerd) が動作するか確認する。

$ ./minerd --help

そしたら、マイニングするユーザ情報を記録した JSON ファイルを作成する。ファイル名は適当に setting.json としておく。

{
  "algo"  : "yescrypt",
  "url"   : "stratum+tcp://jp.lapool.me:3014",
  "user"  : "【LA BitZeny Pool の User 名】.【Worker 名】",
  "pass"  : "【Worker Password】"
}

LA BitZeny Pool に登録した各種情報が必要になる。

とりあえずマイニングを始めてみる

以上の設定を行ったら、次のようにコマンドを叩くとマイニングが開始される。

$ ./minerd --config setting.json
[2020-01-07 14:21:01] 2 miner threads started, using 'yescrypt' algorithm.
[2020-01-07 14:21:01] Starting Stratum on stratum+tcp://jp.lapool.me:3014
[2020-01-07 14:21:01] Binding thread 1 to cpu 1
[2020-01-07 14:21:01] Binding thread 0 to cpu 0
[2020-01-07 14:21:36] thread 0: 4096 hashes, 0.12 khash/s
[2020-01-07 14:21:37] thread 1: 4096 hashes, 0.12 khash/s
[2020-01-07 14:22:37] thread 0: 7183 hashes, 0.12 khash/s
[2020-01-07 14:22:37] thread 1: 7122 hashes, 0.12 khash/s
[2020-01-07 14:23:36] thread 1: 7073 hashes, 0.12 khash/s
[2020-01-07 14:23:36] thread 0: 7148 hashes, 0.12 khash/s
[2020-01-07 14:23:39] Stratum requested work restart
[2020-01-07 14:23:39] thread 0: 302 hashes, 0.12 khash/s
[2020-01-07 14:23:39] thread 1: 310 hashes, 0.12 khash/s
[2020-01-07 14:23:51] Stratum requested work restart
[2020-01-07 14:23:51] thread 0: 1438 hashes, 0.12 khash/s
[2020-01-07 14:23:51] thread 1: 1434 hashes, 0.12 khash/s
[2020-01-07 14:24:03] Stratum requested work restart
[2020-01-07 14:24:03] thread 1: 1423 hashes, 0.12 khash/s
[2020-01-07 14:24:03] thread 0: 1436 hashes, 0.12 khash/s
[2020-01-07 14:25:03] thread 1: 7132 hashes, 0.12 khash/s
[2020-01-07 14:25:04] thread 0: 7182 hashes, 0.12 khash/s
[2020-01-07 14:25:57] Stratum requested work restart
[2020-01-07 14:25:57] thread 1: 6081 hashes, 0.11 khash/s
[2020-01-07 14:25:57] thread 0: 5882 hashes, 0.11 khash/s
[2020-01-07 14:26:03] Stratum requested work restart
[2020-01-07 14:26:03] thread 1: 699 hashes, 0.12 khash/s
[2020-01-07 14:26:03] thread 0: 630 hashes, 0.10 khash/s
[2020-01-07 14:26:59] thread 0: 6287 hashes, 0.11 khash/s
[2020-01-07 14:27:04] thread 1: 6907 hashes, 0.11 khash/s
[2020-01-07 14:27:58] thread 0: 6555 hashes, 0.11 khash/s
[2020-01-07 14:27:58] accepted: 1/1 (100.00%), 0.22 khash/s (yay!!!)
[2020-01-07 14:28:04] thread 1: 6769 hashes, 0.11 khash/s

別ウィンドウを開いて ps コマンドを叩いてみると、minerd というプロセスが動いているのが分かるだろう。

数分待って、(yay!!!) といった出力が出ていれば、マイニングが出来ている。しばらくすると LA BitZeny Pool の Dashboard で、獲得した BitZeny が確認できるようになる。

自分の場合、マイニングを始めてから5・6分で、 0.008742 ZNY が Unconfirmed として追加された。コレは本稿執筆時点で0.0005996円程度に相当する (……少なすぎない?w)。

マイニングできることが分かったら、Ctrl + C で終了しよう。

CPU 使用率を制限してみる

マイニングを始めると、minerd プロセスが起動してガンガン CPU を使い始める。クラウド上の VM なんかでガンガンに CPU を使ったりしていると何となくアレなので、cpulimit というツールを使って、CPU 使用率でプロセスの動作を制限してみようと思う。

# CPU Limit をインストールする
$ yum install -y cpulimit

# CPU 使用率を 80% に制限してマイニングを行う
$ cpulimit -l 80 -- ./minerd --config setting.json

こんな感じ。

別ウィンドウを開いたりして top コマンドを使って確認すると、CPU 使用率が制限できているのが分かるかと。

バックグラウンドで動作させる

さて、ココまでのやり方だと、プロセスはフォアグラウンドで動いていて、SSH 接続時はログアウトとともにマイニングが終了してしまう。そこで、プロセスをバックグラウンドで起動し、ログアウトして SSH 接続を切断した後も minerd プロセスが動きっぱなしになるようにしてみる。

# CPU Limit を使わないでバックグラウンド実行する場合
$ nohup ./minerd --config setting.json &
[1] 9067
nohup: 入力を無視し、出力を `nohup.out' に追記します
# (Enter で抜ける)

# CPU 使用率を制限しながらバックグラウンド実行する場合
$ nohup cpulimit -l 80 -- ./minerd --config setting.json &
[1] 9067
nohup: 入力を無視し、出力を `nohup.out' に追記します
# (Enter で抜ける)

nohup でバックグラウンド実行している際の標準出力は nohup.out というファイルに順次追記されていくので、

$ tail -f nohup.out

とかすればバックグラウンドでの動作状況が確認できる。

ウォレットへの払い出し

マイニングで獲得した BitZeny は、LA BitZeny Pool の管理画面より、指定のウォレットアドレスへ払い出せる。LA BitZeny Pool に貯めておくよりは、定期的にウォレットに移しておくと良いだろう。

BitZeny からの換金はまだ試していないが、BitZeny を取り扱っている取引所で BitCoin 等に換金し、それを日本円に換金すれば現金化できそう。

コレで一体いくら稼げるのか?

さて、CPU Miner の動かし方が分かったので、コレでガンガンマイニングしてみよう。

今回は、OCI の Always Free インスタンス2台で、24時間マイニングしてみた。

その結果採掘できた金額は、6.761123 ZNY だった (うち、Confirmed となった額は 5.94 ZNY)。コレは本稿執筆時点の日本円に換算して0.4812円程度。

永久無料で使える VM だと、2台がかりで1日0.5円かぁ〜…。

やめた。笑〃