BitZeny公式サイトではWindows版の採掘ソフトしかバイナリ版が提供されていないので、macOSで採掘したい場合は自分でソースコードからビルドする必要があります。
色々ハマった結果、何とか動いてくれましたので、備忘録がわりに書いておきます。
(追記)
投稿してから、既に同様の記事がQiitaに上がっていたことに気付きました……。Qiitaもしっかり探しておけばよかった。
BitZenyのMinerをMac OS Xでビルドして採掘する
依存ライブラリ・ツールのインストール
Homebrewでビルドに必要なライブラリ等をインストールします。
brew
コマンドが入っていない人は、公式サイトの手順に従って入れて下さい。
$ brew install curl
$ brew install autoconf
$ brew install automake
あとは、XcodeのCommand Line Toolsが必要だと思いますので、入っていない場合はこちらもインストールしておいて下さい。
色々試行錯誤していたので、もしかしたら上記以外にも必要なライブラリがあるかも。
コメントや編集リクエストで教えて頂けると助かります。
ソースコードの入手
BitZeny公式サイトに載っている、bitzeny/cpuminerをcloneします。
$ git clone https://github.com/bitzeny/cpuminer.git
$ cd cpuminer
cpuminerをビルドするときのエラーメッセージで検索していると、「cpuminerはrelease版のtarballからビルドするのがオススメだ!」的な記載をよく見ますが、bitzeny/cpuminerは
masterブランチからcloneしてくるのが正解 です。
releaseに置いてあるtarballは、フォーク元のリポジトリそのままの内容らしく、ビルドしてもBitZeny採掘で使うyescryptが選択できません。
Mac向けの修正
README通りにビルドしようとするとエラーが出て進めませんので、一部修正します。
参考: CPU Miner & problem with libcurl
libcurl.m4を持ってくる
cpuminerディレクトリの下にm4ディレクトリを作って、そこにlibcurl.m4をコピーします。
$ mkdir m4
$ cp /usr/local/Cellar/curl/7.57.0/share/aclocal/libcurl.m4 ./m4
コピー元のパスはお使いの環境に置き換えて下さい。
HomebrewでCurlをインストールした場合、/use/local/Celler/curl
の下に入っているはずです。
Makefile.amを修正する
Makefile.am
にACLOCAL_AMFLAGS = -I m4
を追加します。
(略)
minerd_LDFLAGS = $(PTHREAD_FLAGS)
minerd_LDADD = @LIBCURL@ @JANSSON_LIBS@ @PTHREAD_LIBS@ @WS2_LIBS@
minerd_CPPFLAGS = @LIBCURL_CPPFLAGS@
ACLOCAL_AMFLAGS = -I m4
autogen.shを修正する
aclocal
をaclocal -I m4
に変更します。
#!/bin/sh
# You need autoconf 2.5x, preferably 2.57 or later
# You need automake 1.7 or later. 1.6 might work.
set -e
aclocal -I m4
autoheader
automake --gnu --add-missing --copy
autoconf
ビルドする
あとはREADMEに書いてある手順と同じです。
$ ./autogen.sh
$ ./nomacro.pl
$ ./configure CFLAGS="-O3 -march=native -funroll-loops -fomit-frame-pointer"
$ make
成功すると、cpuminerディレクトリ直下にminerd
コマンドが作成されます。
パスが通ってないので、パス指定付きで実行してみましょう。
(マイニングプールのURL等は自分が使いたいものに置き換えてください。)
$ ./minerd -a yescrypt -o stratum+tcp://<マイニングプールのURL:ポート番号> -u <マイニングプールのユーザー名> -p <パスワード>
[2017-12-10 20:33:06] Starting Stratum on stratum+tcp://<マイニングプールのURL:ポート番号>
[2017-12-10 20:33:06] Binding thread 0 to cpu 0
[2017-12-10 20:33:06] Binding thread 1 to cpu 1
[2017-12-10 20:33:06] Binding thread 2 to cpu 2
[2017-12-10 20:33:06] 4 miner threads started, using 'yescrypt' algorithm.
[2017-12-10 20:33:06] Binding thread 3 to cpu 3
[2017-12-10 20:33:08] Stratum requested work restart
[2017-12-10 20:33:14] Stratum requested work restart
[2017-12-10 20:33:14] thread 1: 2472 hashes, 0.41 khash/s
[2017-12-10 20:33:14] thread 3: 2469 hashes, 0.40 khash/s
[2017-12-10 20:33:14] thread 0: 2443 hashes, 0.40 khash/s
[2017-12-10 20:33:14] thread 2: 2465 hashes, 0.40 khash/s
[2017-12-10 20:33:47] thread 1: 13613 hashes, 0.42 khash/s
[2017-12-10 20:33:47] accepted: 1/1 (100.00%), 1.63 khash/s (yay!!!)
こんな感じのログが流れてくれば成功です。
参考にしたページ
libcurl build failure on Mac OSX 10.8.x
To build from source, binary or tarball?
CPU Miner & problem with libcurl
途中ハマったエラー
同じ箇所でハマっている人が検索で辿り着けるように、出ていたエラーを書いておきます。
どちらも上記修正で通るようになります。
./autogen.shで出てくるエラー
(略)
Makefile.am: installing './INSTALL'
Makefile.am: installing './depcomp'
configure.ac:120: error: possibly undefined macro: AC_MSG_ERROR
If this token and others are legitimate, please use m4_pattern_allow.
See the Autoconf documentation.
./configureで出てくるエラー
(略)
checking whether we can compile AVX2 code... yes
checking for json_loads in -ljansson... yes
checking for pthread_create in -lpthread... yes
./configure: line 5610: syntax error near unexpected token `,'
./configure: line 5610: `LIBCURL_CHECK_CONFIG(, 7.15.2, ,'