macでダブルクリックでMoneroをマイニングできるようにしてみた


注意

2018年10月のMoneroのハードフォークにより、ハッシュアルゴリズムがcryptonightv8に変更されました。v1.4以降のマイナーを利用してください。

※マイニングCPUパワーの3%ほどを開発費用として利用しております。あらかじめご了承下さいm(_ _)m

目的

最近、仮想通貨のマイニングにはまってまして、空き時間を使ってマイニングを実験したりしてますが、どうせならコンソールからコマンドラインを打つのではなく、アイコンをダブルクリックするだけで、マイニングを開始できないか試してみました。

やり方

MacOSXのアプリケーションの形式の実体はフォルダになっていて、その中にあるInfo.plistに従って、様々な処理を実行してくれます。この仕組みを生かして、内部にあるマイニングソフトを動かすというやり方を取ります。

マイニングソフトはCPUマイニングの中では速いと評判のxmr-stak-cpuを使い、Moneroをマイニングすることにしました。

構成

  • StartXMR.app
    • Info.plist -- (アプリの起動設定)
    • MacOS
      • exec.sh -- (xmr-stak-cpuを起動するスクリプト)
    • Resources
      • xmr-stak-cpu (マイニングソフト)
      • config.txt (コンフィグファイル)

Info.plist

Info.plistにはexec.shを実行するという設定を書いておきます。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>CFBundleExecutable</key>
    <string>exec.sh</string>
  </dict>
</plist>

exec.sh

シェルスクリプトにはResources/xmr-stak-cpuをバックグラウンドで実行する処理を書きます。

#!/bin/bash

DIR=`dirname $0`
cd $DIR/../Resources/
./xmr-stak-cpu &

config.txt

マイニングの設定はファイルを読みながらよしなに自分向けにカスタマイズしてください。
まあ、設定すべきところは、CPU周り(cpu_threads_conf)とマイニングプールのあたりくらいです。

"cpu_threads_conf" :
[
   { "low_power_mode" : false, "no_prefetch" : true, "affine_to_cpu" : 0 },
   { "low_power_mode" : false, "no_prefetch" : true, "affine_to_cpu" : 1 },
   { "low_power_mode" : false, "no_prefetch" : true, "affine_to_cpu" : 2 },
],
/*
 * pool_address   - Pool address should be in the form "pool.supportxmr.com:3333". Only stratum pools are supported.
 * wallet_address - Your wallet, or pool login.
 * pool_password  - Can be empty in most cases or "x".
 *
 * We feature pools up to 1MH/s. For a more complete list see M5M400's pool list at www.moneropools.com
 */
"pool_address" : "monerohash.com:3333",
"wallet_address" : "455h9vpZNrygxoHXi8oE44KkuVL82pzg3DGpAw4gGfkLVKfpAWFFNuaV9CPSEu85BWE4oh7di62s2RwznKaaqeNT41hEQzV",
"pool_password" : "x",

止め方

マイニングを止める方は、MacOSに同梱されているAutomatorを使ってみました。

Automatorを使うと、シェルスクリプトの実行は下のようにGUIで打ち込むだけでできます。
pkillを呼び出してxmr-stak-cpuを止めます。

成果物

TODO

開始と終了のアプリは1つにまとめてもよさそうかなー。