cpuminerをGUIで管理するツールを作った for BitZeny

Bitzeny Miner Manager

タイトルが全てです。
cpuminer のパラメータ調節をGUIから手軽に行う為のツールを作りました。
Bitzeny用に特別なチューニングを行っているわけではありませんが、 cpuminer に対して-a yescryptを決め打ちで流しているため、現在はそうしています。
この記事には前半は使い方、後半では幾つか裏で使った技術についてを備忘録的に残しておきます。

続きを読む

BitZenyのレートをツイートするBotを作った

Bitzenyフォーラムを眺めていたら思い浮かんだモノをそのまま作りました。
ソースコードGithubで公開しています。kalmare/zny-jpy-twitterbot
BTC/JPYをZaifから取得、ZNY/BTCをC-CEXから取得し ZNY/JPY を算出しています。

// BTC/JPY from Zaif
$response = json_decode(safety_curl("https://api.zaif.jp/api/1/last_price/btc_jpy"), true);
$btc_jpy = $response['last_price'];
// ZNY/BTC from C-CEX
$response = json_decode(safety_curl("https://c-cex.com/t/prices.json"), true);
$zny_btc_sell = $response['zny-btc']['sell'];
$zny_btc_buy = $response['zny-btc']['buy'];
// ZNY/JPY
$zny_jpy_sell = round($zny_btc_sell * $btc_jpy, 2);
$zny_jpy_buy = round($zny_btc_buy * $btc_jpy, 2);

添付しているグラフは JPY/Bitzeny chart より取得しています。

現状手元にあった Raspberry Pi Zero 上で動かしていますが、割と不安定なのでそのうちVPS上に移設しようと思ってます。
// 追記: 17/12/08 22:03
C-Cex API の Cloudflare Protection をVPSで越えられない為暫くは現状のまま動かします。

BitZenyをmacOSでCPUマイニングする

BitZenyに対応したcpuminerをmacOSで動かすにはいくつかの障壁があります。
マイニングが完了するまでの手順が錯綜しているので一纏めにしてみました。

前提環境 / 知識

  • macOS Sierra 10.12.3
  • 追記:12/08 22:22 / Xcode (App Store などからインストールしてください)
  • ターミナルの開き方

Command Line Tools インストール

// 追記: 12/08 22:22
パッケージマネージャのインストールに必要な Command Line Tools をインストールします。

$ xcode-select --install

ダイアログが開くので、通常のアプリケーションのインストールと同様に完了させてください。
// 追記ここまで

Homebrewインストール

cpuminerのビルドに必要なパッケージをインストールするためのパッケージマネージャをインストールします。

# 場合によって
$ nano ~/.bash_profile
export PATH=/usr/local:$PATH # 追記

$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

$ brew --version が動作すればインストールは完了です。

前提パッケージインストール

$ brew install automake curl

ビルド

Minerは bitzeny/cpuminer を利用します。

$ git clone https://github.com/bitzeny/cpuminer.git
$ cd cpuminer

$ ./nomacro.pl

README.md には Git repository からのビルドの場合、autogen.sh を実行しろと書かれていますが、./configure 時に libcurl周りの問題で動作しなくなる為実行しません。
対処として、libcurl.m4 を m4/ 以下に移動し、autogen.sh に相当するコマンドを実行します。

$ mkdir m4
$ cp /usr/local/Cellar/curl/7.57.0/share/aclocal/libcurl.m4 m4/

$ aclocal -I m4
$ autoheader
$ automake --gnu --add-missing --copy
$ autoconf

後は通常のビルドと変わりません。

$ ./configure
$ make
$ sudo make install

$ ./install-sh -c -d '/usr/local/bin'
$ /usr/bin/install -c minerd '/usr/local/bin'
$ ./install-sh -c -d '/usr/local/share/man/man1'
$ /usr/bin/install -c -m 644 minerd.1 '/usr/local/share/man/man1'

$ minerd -a yescrypt などでエラーになっていなければBitZenyの掘れるcpuminerのインストールは完了です。
Windows/Linuxと同様に $ minerd -a -yescrypt -o stratum+tcp://example.net:12345 -u user.worker -p password でマイニングしてみてください。
MacBook系の場合、画面を閉じてもマイニングが継続するように InsomniaX を利用すると便利です。(熱が篭りやすくなるので注意してください)

質問等あれば以下のコメント欄にお寄せ下さい。

kintone API SDK(β) for Java で出力したjarがgsonを読み込まない問題の一時解決

developer.cybozu.io 表題通り。
kintone API SDK(β) for Java v0.8.1 現在、Maven とかでpackageしたjarをそのまま外部ライブラリとして読み込むと、

java.lang.ClassNotFoundException: com.google.gson.JsonElement
java.lang.NoClassDefFoundError: com/google/gson/JsonSyntaxException

辺りのExceptionで落ちてしまうみたいです。
Github には既にPull-reqが飛んでいるので近々解決するとは思いますが、11/20現在マージされていない為、pom.xmlへの追加で解決しました。

<dependencies>
    <dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        <version>2.8.2</version>
    </dependency>
</dependencies>