BitZenyやYenTenなどの yescrypt のアルゴリズムを採用している仮想通貨をマイニングする際、ほとんどの人は通貨の公式サイトが配布する cpuminer を利用していると思います。
一方で、色々と調べてみると、一部の人は各通貨の公式サイトが配布する cpuminer ではなく、cpuminer-opt というツールを使っているようです。
マイニングの動作報告の書き込みで cpuminer-opt の名前は頻繁に見かけていたのですが、今回はあたらためて「そもそも、cpuminer-opt って何なの?」を少し調べてみました。これを使えば、何か「違い」を出せるものなのか気になりますよね。
cpuminer-optとは
結論としては、以前書いた ccminer のCPUバージョンで、「多くのアルゴリズムに対応したCPUマイニングに特化したツール」のようです。
そして、私が冒頭で書いた公式サイトが配布する cpuminer というのは、このcpuminer-optをカスタマイズしたもののようです。そもそも、cpuminerの源流(本家)ということですね。
色々と名前が出てきて混乱するので、ここまでの話を少しまとめておきます。
- ccminerとは、NVIDIA製のGPUでマイニングする際に利用するマイニングツールで、多くのアルゴリズムに対応しています
- cpuminer-optとは、CPUマイニング向けの各種アルゴリズムに特化したマイニングツールです
- cpuminerとは、cpuminer-optを個別の通貨向けに改良したマイニングツールです
cpuminer-optのソースコードはGitHubで公開されていますが、通常はマイニングする通貨の公式サイトが配布しているバイナリ(実行ファイルにしたもの)をダウンロードして使います。
ただ、Google ChromeだとWindows Defenderを切っていても、ブラウザレベルでも危険なソフトウェアとして cpuminer-opt のダウンロードを阻止してきます。
どうやったらダウンロードできるのかは試していません(いつもどおり、ウイルス対策ソフトとWindowsのセキュリティ機能を全てOFFにするだけでしょう)。
GitHubに書かれている説明
それではもう少し深掘りにするにあたって、まずは cpuminer-opt の README.txt とGitHubページに書かれている説明を確認してみたいと思います。
以下は同梱されていたファイルにあった英文の意訳です。
cpuminerはDOSコマンドプロンプトで実行するコンソールプログラムで、GUIやマウスを利用することはできません。
マイニングソフトはウイルス対策ソフトからマルウェア扱いを受けますが、これは単に仮想通貨のマイニングソフトだからという理由による誤検出です。ソースコードは公開されていて誰でも調べることができますし、もし信用できなければ使わなければ良いだけです。
あまり大したことは書いてないですね。GitHubに書かれている内容でも、全容を理解できるような説明は見当たりませんでした。
cpuminer-optは、TPruvotが他のマイナーが最適化した内容を取り込んで開発したcpuminer-multiに、Jay D Deeが更なる改良を加えてフォークさせたプログラムです。
使われているソースコードはオープンソースのはずですが、もし何か要望がある場合はBitcoin Talkのcpu-miner-optのフォーラムかemailでご連絡ください。
変更履歴やコンパイル方法の説明についてはREALSE_NOTESのファイルを確認してください。
ということで、他を色々探してみたところ、Awesome Miner のWebサイトに欲しかった説明(最初の一文だけ)があったので載せておきます。
Awesome Minerは多くの人気アルゴリズムをCPUマイニングできるCpuMiner-Optをサポートしています。
要するに、cpuminer-optというのは多くのアルゴリズムをCPUマイニングできるソフトだということですね。実際に対応しているアルゴリズムは多く、継続的にアルゴリズム追加と最適化が繰り返されているようです。
対応しているアルゴリズム
2018年5月9日現在、数えてみたところ73種類のアルゴリズムに対応しているようです。全て載せるには多いので、何があるのかは下記のREADME.mdを確認してみてください。
知名度のあるアルゴリズムは網羅されている感じで、日本語のCPUマイニングで取り上げられているようなコインは全て問題なくマイニングできそうです。
- yescryptr8(BitZeny / ZNY)
- yescryptr16(YenTen / YTN)
- yescryptr32(WAVI)
- lyra2z330(Zoin / ZOI)
さらに、アップデートの頻度を見るかぎり、最新のアルゴリズムはすぐに対応されるようです。日本人が積極的にマイニングしている通貨は網羅されていますよね。yescrypt はGPUマイニングに対応されて旨みは減りましたが、まだまだCPUでもマイニングする価値はあると思います。
コマンドオプション
起動までのコマンドはよく見る以下の形ですが、その他にもどんなものがあるのかを調べてみました。
cpuminer.exe -a algo -o url -u user -p password
これが基本形ですね。
-a (アルゴリズム)
マイニングするアルゴリズムを指定します。
-a yescrypt
-a lyra2z330
大文字小文字も区別されます。
-o (URL)
大多数の人はマイニングプールを利用すると思うので、ここにはマイニングプールが指定するStratumのURLとポート番号を指定します。
多くの場合、「 : (コロン)と数字4桁のポート番号」がStrutumのURLとセットになっています。
-o strutum+tcp://com.pool.hoge:1234
-u (ユーザー名)
マイニングプールに登録したユーザー名を指定します。
ワーカーを分ける場合、「 . (ピリオド)」を付けて、その後ろにワーカー名を入力します。
ユーザー登録不要なNOMPの場合、マイニングする通貨のウォレットアドレスを入力するところですね。NOMPでも通常はワーカー名を付けられます。
-u UserName
-u UserName.WorkerName
-u WalletAddress
-p (パスワード)
マイニングプールで登録したユーザー名(ワーカーごと)に設定したパスワードを入力します。
-p password
-p Password
マイニングプールでは、passwordかPasswordがプリセットされていることが多いです。
-t (スレッド数)
マイニングに使用するスレッド数を指定するのに使います。
-t 4
-t 10
ハッシュレートの実測値を報告するフォーラムでは、同じCPUを使っていても最適値が異なるケースが見られます。
特に、多スレッドなCPUの場合、論理プロセッサ数より少し少なめにすると最も効率的になる気がします。
-r (リトライ回数)
ネットワークでエラーが出た場合にリトライする回数を指定できます。
ただ、指定しなければ無制限なので、はっきり言って意味がないと思います。
まとめ:調べれば他にも色々とありました
調べてみたところ、cpuminer-optで使えるオプションは他にも色々ありましたが、マイニング効率を上げるような類のものは見つけられませんでした。
BitZeny(yescryptr8)でaffinityというオプションが実装されたcpuminerが配布されていますが、本家のcpuminer-optで実装されているのかは確認できません。
もし私のような素人でも最適化できるようなオプションがあったら、さすがに誰かが分かりやすく書いてくれていますよね。今さら掘ってみても見つからないのは当然でしょう。
他にも、超初心者向けに、今回調べたcpuminerを使ってマイニングを始める方法について記事を書いています。興味があれば参考にしてみてください。
同じ要領でBitZenyなどもマイニングすることができます。
最後まで読んでいただき、ありがとうございました。この記事が何かのお役に立てば幸いです。