Docker ではじめるCPUマイニング(モナコイン編)


1. はじめに

  • 今回は、自分自身への備忘録を兼ねて、Docker(Dockerfile)を用いたCPUマイニングをはじめる方法を、お伝えしたいと思います。

参考:モナコインのマイニングソフトをDockerで動かす
参考:マイニングソフトの設定例
参考:tpruvot / cpuminer-multi

2. この記事を読んでできること

  • Docker(Dockerfile)を用いてMonacoin(アルトコイン)をCPUマイニングできるようになる。

3. 必要なもの

  • Dockerホスト環境(この記事では Raspberry Pi3B + Ubuntu 18.04 LTS(arm64)を利用)
  • インターネット環境

4. 前提条件

  • ハードウェア:Raspberry Pi3B
  • OS:Ubuntu 18.04 LTS(arm64)
  • アーキテクチャ:arm64

5. Dockerコンテナのセットアップ

  • 以下のコマンドを順次実行し、cpuminerが実行できるDockerコンテナ環境をセットアップします。
コマンドプロンプト
// ディレクトリを移動
$ cd

// cpuminer-multiを取得
$ git clone -b linux https://github.com/tpruvot/cpuminer-multi.git

// ディレクトリを移動
$ cd cpuminer-multi

// Dockerfileの有無確認
$ ls Dockerfile
Dockerfile

// Dockerイメージのビルド(10分程度かかる)
$ docker build -t cpuminer-multi:latest .

// dockerイメージ一覧表示(IMAGE IDを確認する)
$ docker image ls

// イメージからコンテナを作成,起動
// 引数パラメータからご自身のアルゴリズム、マイニングアドレス、ユーザー名.ワーカー名、パスワードを設定してください。
$ docker run --name mona cpuminer-multi -a lyra2REv2 -o stratum+tcp://stratum1.vippool.net:8888 -u motokeikaku.user -p password -t 3

// Dockerコンテナの一覧表示
$ docker container ls -a

// Dockerコンテナ単体での自動起動を有効化
$ docker update --restart=always mona

// 自動起動が有効になっているコンテナを確認
$ docker inspect -f "{{.Name}} {{.HostConfig.RestartPolicy.Name}}" $(docker ps -aq) | grep always

// Dockerコンテナ単体での自動起動を無効化
$ docker update --restart=no mona

// コンテナを停止
$ docker stop mona

// Dockerコンテナの削除(必要なくなったら時に実行する)
$ docker rm mona

6. CPUマイニング実行コマンドの例

  • 以下のコマンドを実行し、CPUマイニングを実行します。
コマンドプロンプト
// CPUマイニング実行コマンドの例
// 記載解説
# docker run --name {コンテナ名} {イメージ名} -a {アルゴリズム} -o {マイニングアドレス} -u {ユーザー名.ワーカー名} -p {パスワード} -t {割当CPUコア数}

// 記載例
# docker run --name mona cpuminer-multi -a lyra2REv2 -o stratum+tcp://stratum1.vippool.net:8888 -u Weblogin.WorkerName -p WorkerPassword

7. CPUマイニング成功時のログ

  • CPUマイニングに成功すると、「(yas!)」とログに出力されるかと思います。
  • VIPPOOLの場合、あらかじめワーカー設定の「指定Difficulty」値を最小値の「0.0625」などに設定しておけば、起動後3分もすれば連続で「(yas!)」ログをおがめるかもしれません。
「(yas!)」ログ
[2020-02-24 04:32:54] Starting Stratum on stratum+tcp://stratum1.vippool.net:8888
[2020-02-24 04:32:54] 3 miner threads started, using 'lyra2rev2' algorithm.
[2020-02-24 04:32:54] Stratum difficulty set to 32768 (128.00000)
[2020-02-24 04:32:54] lyra2rev2 block 1921911, diff 3038562.847
[2020-02-24 04:32:59] CPU #2: 15.44 kH/s
[2020-02-24 04:32:59] CPU #0: 15.42 kH/s
[2020-02-24 04:32:59] CPU #1: 15.40 kH/s
[2020-02-24 04:33:51] Stratum difficulty set to 0.0625 (0.00024)
[2020-02-24 04:33:59] CPU #0: 15.45 kH/s
[2020-02-24 04:33:59] CPU #1: 15.42 kH/s
[2020-02-24 04:33:59] CPU #2: 15.46 kH/s
[2020-02-24 04:34:23] CPU #2: 15.46 kH/s
[2020-02-24 04:34:23] accepted: 1/1 (diff 0.000), 46.34 kH/s yes!
[2020-02-24 04:34:29] CPU #2: 15.46 kH/s
[2020-02-24 04:34:29] accepted: 2/2 (diff 0.000), 46.34 kH/s yes!
[2020-02-24 04:34:51] CPU #1: 15.42 kH/s
[2020-02-24 04:34:52] accepted: 3/3 (diff 0.000), 46.34 kH/s yes!

8. 参考:Dockerfile

Dockerfile
# Usage: docker build .
# Usage: docker run tpruvot/cpuminer-multi -a xevan --url=stratum+tcp://yiimp.ccminer.org:3739 --user=iGadPnKrdpW3pcdVC3aA77Ku4anrzJyaLG --pass=x

FROM            ubuntu:14.04
MAINTAINER      Tanguy Pruvot <[email protected]>

RUN             apt-get update -qq

RUN             apt-get install -qy automake autoconf pkg-config libcurl4-openssl-dev libssl-dev libjansson-dev libgmp-dev make g++ git

RUN             git clone https://github.com/tpruvot/cpuminer-multi -b linux

RUN             cd cpuminer-multi && ./build.sh

WORKDIR         /cpuminer-multi
ENTRYPOINT      ["./cpuminer"]

9. おわりに

いかがでしたでしょうか?意外と簡単にDocker(Dockerfile)を用いたCPUマイニングを始めることができたのではないかなと思います。
今回の記事が、みなさまの学習の参考になれば幸いです。

2020/02/24 TAKAHIRO NISHIZONO