自分なりにマイニングを頑張ってみた

# はじめに
こんにちは。エンジニアのkackyです。
こちらはブロックチェーン Advent Calendar の16日目です。
ここ1ヶ月くらい暗号通貨のマイニングをがんばってみたのでそのあたりの話を書いてみます。あまりまとまってなくてすみません。

ほかにもブロックチェーン周りの記事を色々投稿していますのでよろしければご覧ください。

[ブロックチェーンエンジニア Lv. 1 —スマートコントラクトをデバッグするぞ—](https://qiita.com/kackytw/items/b4cec532eb10340e4879)
[ブロックチェーンエンジニア Lv. 2 —ガチャを実装する—](https://qiita.com/kackytw/items/76f04b7cf1ca0ee97f02)
[Raspberry piを使って仮想通貨取引自動化してみた](https://qiita.com/kackytw/items/2d61f2a5d0fa61d76217)
[macでダブルクリックでMoneroをマイニングできるようにしてみた](https://qiita.com/kackytw/items/1b014a221d43a4f7a23a)

# マイニングのはじめかた
 
1. マイニングするためのデバイス(PCなど)を調達する
- マイニングする暗号通貨を選ぶ
- マイニングするプールを選ぶ
- マイニングソフトを選ぶ
- 実行して報酬をもらう
- 状況に応じて最適化する

# マイニングデバイスの調達
マイニングのためにハードウェアを買うのはコストを回収できない可能性があるため、まずは手持ちにあるもので試すことにしました。

- デスクトップPC(もともとＶＲ用なのでスペック高い)
  - CPU Intel Core-i7 6700 4 core 8 thread
  - GPU nVidia GTX1080
  - OS Windows 10 Pro

- ノートPC Macbook Pro 2014 Mid 15inch
  - CPU Intel Core-i7 4 core 4 thread
  - GPU
     - Intel Iris Pro Graphics
     - nVidia GT750M
  - OS Mac OS High Sierra
- Raspberry Pi 2 Model B(おまけ)

# マイニングする暗号通貨を選ぶ
採用する暗号通貨によってマイニングの効率とか報酬とかがめっちゃ変わります。暗号通貨として有名なのはBitcoinとかEthereumですが、正直いまさらPCの片手間にマイニングしたところで赤字になってしまいます。

いろいろネットで調べたり、[whattomine](https://whattomine.com/)とかを見たりして、マイニングする通貨をこの2つに絞りました。

- Monero(XMR)
  - CPUでもGPUでもそこそこ掘れる
  - 最近値上がりしている

- Monacoin
  - nVidia GPUとの相性がよい
  - 最近価格が高騰
  - 国産暗号通貨

# マイニングするプールを選ぶ
マイニングするプールによっても報酬の効率が違います。プールのハッシュレートが低いと、自分のシェアは大きくなりますが、そもそもなかなかマイニングに成功しないので報酬をもらう確率が低くなります。また、プールによって手数料もまちまちなので安い方がよいです。

今のところ使っているプールはこちらです。

- Monero
 - monerohash.com https://monerohash.com/
   - ハッシュレートはそこそこあり、コンスタントに報酬をもらえる
   - ただ手数料はやや高め(1.6%)
   - ワーカー毎のハッシュレートが見られないのと、表示されるハッシュレートが手元の値よりも小さい気もしていて、手数料が安い[supportxmr.com](https://supportxmr.com/)にしようか迷っている
- Monacoin
   - VIP pool https://vippool.net/
   - Monacoinのマイニングプールの中で歴史が古く安定している
   - 手数料も良心的(引き出し時に0.001Mona)

# マイニングソフトを選ぶ
マイニングソフトを選ぶ基準はやはりハッシュレートが出せるものを選んだ方がよいです。
ただ、人によってはGUIなど使いやすさを重視することもあるかもしれません。自分はエンジニアであることもあり、

- ハッシュレートがよいこと
- GUIいらない
- チューニングしやすいこと
- オープンソースであること

を基準に選びました。

- Monero
  - CPUマイニング
     - xmr-stak-cpu https://github.com/kackyt/easy-mining-mac/releases
  - GPUマイニング
     - xmr-stak-nvidia https://github.com/fireice-uk/xmr-stak-nvidia/ (※cudaを認識してくれなかったためMacbookでは使えず)
     - xmr-stak-amd https://github.com/fireice-uk/xmr-stak-amd/

- Monacoin
  - CPUマイニング
     - cpuminer-multi https://github.com/tpruvot/cpuminer-multi
  - GPUマイニング
     - ~~ccminer-lyra https://github.com/djm34/ccminer-lyra~~ (性能悪かったので下に切り替え)
     - https://github.com/Nanashi-Meiyo-Meijin/ccminer/releases/tag/v2.2-mod-r2

Moneroはxmr-stak系がハッシュレートもよく使いやすかったです。MonacoinはnVidia系で動かせるものがこんな感じだったのでそうしました。ただ、ccminer-lyraはソースコードが古いので微妙かも。→案の定性能が全然出なかったので、有志によるチューニングされたバージョンに切り替えました。

# 成績発表
今のところのマイニング成績です。

|マシン|CPU/GPU|通貨|ハッシュレート(kH/s)|報酬 (一日あたり換算)|報酬(1日あたり円)|
|:----|:----|:---|:---|:---|:---|:---|:---|
|DesktopPC|CPU|XMR|0.12|0.0018|36|
|DesktopPC|GPU|XMR|0.5|0.0075|150|
|DesktopPC|CPU|MONA|480|0.00576|2.88|
|DesktopPC|GPU|MONA|42000|0.504|252|
|NotePC|CPU|XMR|0.2|0.003|60|
|NotePC|GPU|XMR|0.08|0.0012|24|
|NotePC|CPU|MONA|96|0.001152|0.576|
|Raspberry Pi|CPU|XMR|0.004|0.00006|1.2|
|Raspberry Pi|CPU|MONA|10|0.00012|0.06|

※報酬は1XMR=¥20,000、1MONA=¥500で計算しています。

MacbookProがcudaを認識してくれなかったため、NotePCのGPUマイニングはOpenCLでの成績となっています。GTX1080のMONAコインマイニングの成績が突出しています。ただ、ccminerが途中で止まってしまうことが多く、実際にマイニングできたのはもっと少ない額でした。他はMONAを掘ってもゴミしか得られません(笑)CPUマイニングではMoneroをマイニングした方が稼げることがわかりました。マシンではDesktopのGPUマイニングとMacbookProのCPUマイニングがわりとよい成績を出しています。DesktopのCPUマイニングは、windowsのマイニングソフトが相性が悪いのか思ったほど成績が伸びませんでした。
MacbookPro(2014Mid)にはIntel irisとGT750Mの2つのGPUが載っていますが、Intel irisの方を使ってしまうと、CPUリソースを食うみたいでCPUマイニングのハッシュレートが落ちてしまいました。そこで、Intel irisに画面描画をやってもらい、GT750Mでマイニング、並列でCPUマイニングを走らせると一番成績が出ました。

画面を描画するGPUはシステム環境設定->省エネルギー->グラフィックスの自動切り替えをON、OFFすることで切り替えできます。(Tips)

# おわりに、ぶっちゃけ儲かるの？
見ての通りで1台動かしただけでは1日100円くらいが限界です。電気代と比べてトントンくらいですかね。マイニングのために専用ハードを買ったら回収するのに何年かかるでしょう？意外にもMacbookが電力効率の上では健闘しました。自分の頑張りでお金を稼いだ達成感は得られますｗ