仮想通貨マイニング/機械学習用のPCを自作してみた(仮想通貨マイニング環境構築編)

今回はOS周りの設定から始めて、実際に仮想通貨のマイニングが行えるようになるまでの過程を紹介します。

なお、マイニングの対象通貨は、とりあえず今流行り(?)のモナーコインにしました。

<スポンサーリンク>

OS周りの設定

パッケージのアップデート

まずは、インストールされているパッケージ全般をアップデートします。

$ sudo apt-get update
$ sudo apt-get upgrade

なお、私の環境では上記コマンドを叩いた時に、appstreamというパッケージが悪さをして、途中で処理が異常終了してしまいました。

この対応ですが、まず、

$ sudo mv /etc/apt/apt.conf.d/50appstream /etc/apt/apt.conf.d/50appstream.disable

として、アップデート時にappstreamを使えないようにした上で上記のコマンドを叩きます。すると、アップデートの一環で、appstreamが正しく動作するバージョンへ更新されますので、その後、

$ sudo mv /etc/apt/apt.conf.d/50appstream.disable /etc/apt/apt.conf.d/50appstream

でファイル名をもとに戻すことにより、以降、同様のエラーが発生しないようになりました。

システムプログラムエラーダイアログの消去

さらに私の環境では当初、OS起動の都度デスクトップ上に、「システムプログラムの問題が見つかりました」というダイアログが表示されていました。

これはプログラムがクラッシュした際に、そのダンプが/etc/crashというディレクトリに吐かれるのですが、このダンプが存在する間は表示され続けるダイアログのようです。

今回の場合、具体的には、上記appstreamのエラーで、/etc/crashディレクトリにダンプが残ったままになっていたのが原因でしたので、

$ sudo rm /var/crash/*

でファイルを削除してやると、ダイアログが表示されなくなりました。

CUDAのインストール

続いて、CUDA をインストールします。

CUDAとは、GPUを搭載したコンピュータ向けの統合開発環境ですが、ひとまずGPUを使ってマイニングやディープラーニングやるためには、これが必要だと理解しておけば良いと思います。

なお、Geforce用の適切なドライバも、このCUDAインストールの過程でインストールされます。

さて、まずはCUDAのダウンロードサイトから、インストールパッケージをダウンロードします。

ダウンロードできるファイルにはいくつか種類があるのですが、以下画像のようにオプションを選択の上、「Download」ボタンを押してファイルを落とします。

ダウンロードができましたら、基本的には公式サイトのインストラクション(上の画像の下部)に従い、コマンドを叩いていくだけです。

しかしながら、現在の最新バージョンである9.1では、後述するccminerのコンパイルに失敗するため、1つ古いバージョンをインストールする必要があります。そのためには、4行目を少し変えて、旧バージョンを明示するようにします。

$ sudo dpkg -i cuda-repo-ubuntu1604_9.1.85-1_amd64.deb
$ sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/7fa2af80.pub
$ sudo apt-get update
$ sudo apt-get install cuda=9.0.176-1

なお、1つ目のコマンドを実行する前に、ファイルをダウンロードしたディレクトリに移動しておくことを忘れないでください。UbuntuデフォルトのFirefoxからダウンロードした場合は、ホームディレクトリの「ダウンロード」ディレクトリが該当します。

次に、実行ファイルとライブラリにパスを通しておきます。

ホームディレクトリの.bashrcを適当なエディタで開き、一番下に以下2行を追加します。

export PATH=/usr/local/cuda/bin:${PATH}
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:${LD_LIBRARY_PATH}

続いて、

$ source ~/.bashrc

と叩いて、./bashrcに追記した内容を有効化します。

これでCUDAのインストールと設定は完了です。

マイナーのインストール

続けて、マイニングを行う「マイナー」と呼ばれるブログラムをインストールします。

マイナーにはいくつか種類があるようですが、私は「ccminer」というものを導入しましたので、以下はこのccminerの導入手順になります。

まずはホームディレクトリに移動し、ファイルをダウンロードします。

$ cd
$ wget https://github.com/Nanashi-Meiyo-Meijin/ccminer/archive/v2.2-mod-r2.tar.gz

ダウンロードできましたら、ファイルを展開し、生成されたディレクトリに移動します。

$ tar xzvf v2.2-mod-r2.tar.gz 
$ cd ccminer-2.2-mod-r2

続いて、コンパイルして実行ファイルを生成するのですが、その前にコンパイルに必要となるパッケージを導入しておきます。

$ sudo apt-get install automake libssl-dev libcurl4-openssl-dev

続いて、コンパイルです。

$ bash autogen.sh
$ ./configure
$ make

これで、現在いるディレクトリ内に「ccminer」というファイルが生成されれば、作業は完了です。このファイルがマイナープログラム本体です。

マイニングの前準備

実際にマイニングを開始するためには、通貨を受け取ったり日本円に替えたりするため、取引所のアカウントを開設する必要があります。また、マイニングリソースを提供して報酬を受け取るためのマイニングプールというものに登録する必要があります。

取引所アカウントの開設

取引所にはいくつかあるのですが、私は前々から仮想通貨の取引に使用しているZaifという取引所を使うことにしました。この取引所であれば、モナーコインの取引もできます。

開設方法は割愛しますが、上記リンクを開いて「新規ユーザ登録はこちら」というボタンを押して、表示される指示に従っていくと、簡単にアカウントの開設ができます。なお、アカウントが開設されるまで、数日かかります。

マイニングプールへの登録

マイニングプールにもいくつか種類があるのですが、私はLa Monacoin Poolというところに登録しました。

リンクを開くと、大きく「ポート一覧」という表が表示されますが、ここでは右上の「Guest」⇒「Sign Up」を選択して、登録作業を進めて行きます。

Sign Upを選択して表示される画面に、必要事項を一通り入力します。

Coin Addressとは、マイニング報酬の受け取りアドレスです。使用する取引所にログインして、自分の取引所アカウントに紐づけられたアドレスを確認し、ここにコピペします。

また、パスワードに加えて暗証番号という項目がありますが、これは、La Monacoin Poolに登録したアカウントの設定変更を行う際に使用します。

入力が終わったら「Register」ボタンを押すと、入力したメールアドレス宛に確認のメールが届きますので、その中のリンクをクリックすると登録作業は完了です。

さて、マイニングを行うためには、これに加え、プール上でワーカー登録と報酬自動受け取りの設定を行う必要があります。

まず、ワーカー登録ですが、La Monacoin Poolにログイン後、「MyAccount」⇒「ワーカーの編集」を選択して表示される画面の左側に、任意のワーカー名とパスワードを入力して、「Add New Worker」を押すと、登録できます。

ワーカーとは、最初に登録したアカウントとは異なりますので、ご注意下さい。

次に、報酬自動受け取りの設定ですが、「MyAccount」⇒「アカウントの編集」で表示される画面で行うことができます。

ポイントだけ説明しておきますと、「Automatic Payout Threshold」という項目に、いくらマイニングが完了したら、登録した受け取りアドレスに送金するかを指定します。私はとりあえず、10と入力しておきました。

また、入力が終わりましたら、「4 Digit PIN」に先ほど登録した暗証番号4桁を入力して、「Update Account」ボタンを押します。

これで、La Monacoin Poolにおける設定は、すべて完了です。

マイニング

ここまで来たら、ようやくマイニングに移れます。

先ほど、ccminerファイルを生成したフォルダに移動し、以下のようにコマンドを叩きます。

$ ./ccminer -a lyra2v2 -o stratum+tcp://jp.lapool.me:3015 -u 「ユーザ名.ワーカー名」 -p 「ワーカーのパスワード」

「startum」から始まる部分は、先ほどのポート一覧に記載されていたものを、そのままコピーします。新規にポートが開設されることもあるようですので、ポート一覧はたまに確認してみるのが良いと思います。

また「-u」の後には、「ユーザ名」と「ワーカー名」を「.」でつなげて入力します。

これでマイニングが始まりますが、毎度これを入力するのも手間ですので、適当なテキストファイルを作って、上記のコマンドをコピペし、それを都度実行する方法でも良いと思います。

その場合、

$ chmod u+x 「作成したファイルの名前」

と叩いて実行ファイル化した後、

$ ./「作成したファイルの名前」

で実行することができます。

さて、マイニングを開始してみると、以下のような感じで処理が行われます。

[2017-12-XX XX:XX:XX] 1 miner thread started, using 'lyra2v2' algorithm.
[2017-12-XX XX:XX:XX] Starting on stratum+tcp://jp.lapool.me:3015
[2017-12-XX XX:XX:XX] Stratum difficulty set to 8 (0.03125)
[2017-12-XX XX:XX:XX] GPU #0: Intensity set to 22, 4194304 cuda threads
[2017-12-XX XX:XX:XX] GPU #0: GeForce GTX 1080, 49.02 MH/s
[2017-12-XX XX:XX:XX] accepted: 1/1 (diff 0.043), 49.02 MH/s yes!
[2017-12-XX XX:XX:XX] accepted: 2/2 (diff 0.036), 51.22 MH/s yes!
[2017-12-XX XX:XX:XX]GPU #0: GeForce GTX 1080, 49.75 MH/s
 accepted: 3/3 (diff 0.062), 50.49 MH/s yes!

「yes!」と表示されるタイミングでコインが入手できるようです。

どのぐらいマイニングできたかは、La Monacoin Poolのダッシュボードで見ることができますので、試してみて下さい。が、現在サーバに負荷が集中しているとのことで、ダッシュボードは常に開いているのではなく、見たら閉じる必要があるとのことです。

終わりに

なかなか長い道のりでしたが、ようやくマイニングを始めることができました。

マイニングのパフォーマンスについては、後日、簡単に記事としてまとめたいと思います。

その前に、次回は機械学習に話を移し、Deep Learningを行うためにTensorFlowを導入して、GPUを用いた学習ができるよう、環境を構築していきたいと思います。

<スポンサーリンク>

シェアする

フォローする