7
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Docker ではじめるCPUマイニング(BitZeny編)

Last updated at Posted at 2020-02-23

1. はじめに

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

参考:CC BitZenyをDockerでマイニングしてみる
参考:shamaton / docker-miner-zeny

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

  • Docker(Dockerfile)を用いてBitZeny(アルトコイン)を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

// docker-miner-zenyを取得
$ git clone https://github.com/shamaton/docker-miner-zeny.git

// ディレクトリを移動
$ cd docker-miner-zeny

// Dockerfileとstart.shファイルの確認
$ ls
Dockerfile  README.md  start.sh

// Dockerイメージのビルド
$ docker build -t zeny:latest .

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

// CPUマイニングの実行(Dockerイメージからコンテナを起動)
// 環境変数POOL、WALLETの部分にご自身のプールアドレス、BitZeny受信アドレスを設定してください。
$ docker run --name mining --env POOL=stratum+tcp://zny.mofumofu.me:3331 --env WALLET=Ztd9eoSVaX4pehagt5o9PRDnCYRAadbgxn.Ubuntu --env THREAD_NUM=3 zeny

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

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

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

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

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

// Dockerコンテナの削除(必要なくなったら時に実行する)
docker rm mining
  • 今回はオンラインウォレットの「BitZeny WALLET」を利用しました。
  • ウォレットをまだお持ちでない方は、「BitZeny WALLET」の「新規登録」リンクから新規登録をおこない、ウォレット内の「受信アドレス」からご自身の「BitZeny受信アドレス」をコピーしてお使いください。
  • マイニングプールについては、登録不要で使えるBitZenyのマイニングプール(NOMP:Node Open Mining Portal)である「mofumofu.me」を利用しています。

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

  • 以下のコマンドを実行し、CPUマイニングを実行します。
コマンドプロンプト
// CPUマイニング実行コマンドの例
// use case 1
$ docker run --name {コンテナ名} --env POOL={プールアドレス} --env WALLET={ウォレットアドレス} --env THREAD_NUM={割当CPUコア数} zeny

// use case 2
$ docker run --name {コンテナ名} --env POOL={プールアドレス} --env USERPASS={ユーザー名.ワーカー名:パスワード} --env THREAD_NUM={割当CPUコア数} zeny

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

  • CPUマイニングに成功すると、「(yay!!!)」とログに出力されるかと思います。
  • ただし、マイニングに成功してもすぐにBitZeny受信アドレスに受け取り反映されるわけではありません。受け取り反映されるルールについては、利用するマイニングプールのルールによって異なります。CPU処理能力であれば、数時間から半日程度、気長に待ってみましょう。

8. 参考:start.sh

start.sh
# !/bin/sh

if [ -z ${POOL} ]; then
        echo "not set pool address... exit"
        exit 1
fi

if [ -n "${WALLET}" ]; then
        echo "POOL   -> $POOL"
        echo "WALLET -> $WALLET"
        echo "thread -> $THREAD_NUM"
        /root/cpuminer/minerd  -o $POOL -u $WALLET -t $THREAD_NUM
elif [ -n "${USERPASS}" ]; then
        echo "POOL     -> $POOL"
        echo "USERPASS -> $USERPASS"
        echo "thread   -> $THREAD_NUM"
        /root/cpuminer/minerd  -o $POOL -O $USERPASS -t $THREAD_NUM
fi

9. 参考:Dockerfile

Dockerfile
FROM ubuntu:xenial

MAINTAINER shamaton

WORKDIR /root

RUN apt-get update \
 && apt-get -y install \
    git \
    wget \
    libjansson-dev \
    automake \
    libtool \
    curl \
    libcurl3 \
    libcurl3-dev \
    make

WORKDIR /root
COPY start.sh /root/start.sh
RUN chmod a+x /root/start.sh

RUN git clone https://github.com/bitzeny/cpuminer \
 && cd cpuminer \
 && sh autogen.sh \
 && ./configure CFLAGS="-O3 -march=native -funroll-loops -fomit-frame-pointer"  \
 && make

CMD ["/root/start.sh"]

10. おわりに

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

2020/02/24 TAKAHIRO NISHIZONO

7
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?