13
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

macOSでもBitZenyを掘りたい

Last updated at Posted at 2017-12-10

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.amACLOCAL_AMFLAGS = -I m4を追加します。

Makefile.am
(略)
minerd_LDFLAGS	= $(PTHREAD_FLAGS)
minerd_LDADD	= @LIBCURL@ @JANSSON_LIBS@ @PTHREAD_LIBS@ @WS2_LIBS@
minerd_CPPFLAGS = @LIBCURL_CPPFLAGS@

ACLOCAL_AMFLAGS = -I m4

autogen.shを修正する

aclocalaclocal -I m4に変更します。

autogen.sh
#!/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, ,'
13
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?