目的
ビットコイン等の仮想通貨の採掘をして不労所得チャリンチャリンというのは夢がありますよね。私もチャレンジしようと思ったのですが、手元の貧相な PC では電気代すらペイできないのは明らかです。
ではクラウドの力を借りて、GPU でやってみたらどうなのか。スポット価格をうまく使えば、もしかしてクラウド利用料を賄えて夢の無限収入システムを構築できるのではないか、というチャレンジをしてみたので、その記録です。
なお、実際に稼げるとは思ってなくて、AWS スポットインスタンス使ってみる、GPUインスタンスを使ってみる、ブロックチェーンに触れてみる、など一石三鳥なお勉強をすることが目的です。
概念図
インスタンス利用料が安いときに仮想通貨をマイニングすれば黒字転嫁するのでは、というアイデアです。
結果
すごい赤字になる。スポットインスタンスを活用しても インスタンス利用料の半分まかなえる程度の採掘量にとどまり利益が生まれることはなかった、通貨マイナーの世界はきびしい。
FPGA 使えれば結果は変わるのかなー。
構築の流れ
採掘環境構築~試しに採掘まで
環境情報
- 採掘対象
- Ethereum
- OS 1
- Ubuntu Linux 16.04 / 64bit
- インスタンスタイプ
- g3.4xlarge or p2.xlarge
- リージョン
- us-east-1(インスタンス費用がたぶんいちばん安いので)
- マイナークライアント
- Claymore's Dual GPU Miner 9.7
- ウォレット
- coincheck
ウォレットの準備
-
Coincheck にアカウント作成
- その他、大手のbitFlyer、Zaif 等なんでもよさそうです、手数料や取り扱い通貨が違います
- 身分証明書を送り取引可能な状態にする
- 最大2営業日必要との記載ですが、今回は数時間で本人確認が完了しました
-
Ether入金用のアドレスを作成 する
- アドレス:0x0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X
マイニング用AMIを作成する
Ubuntu インスタンスを作成、Calymore9.7 を導入する。
$ wget https://github.com/nanopool/Claymore-Dual-Miner/releases/download/v9.7/Claymore.s.Dual.Ethereum.Decred_Siacoin_Lbry_Pascal.AMD.NVIDIA.GPU.Miner.v9.7.-.LINUX.tar.gz
$ mkdir Calymore9.7
$ tar xvzf Claymore.s.Dual.Ethereum.Decred_Siacoin_Lbry_Pascal.AMD.NVIDIA.GPU.Miner.v9.7.-.LINUX.tar.gz -C ./Calymore9.7/
$ cd Calymore9.7/
不足しているライブラリをインストール
sudo apt-get install ocl-icd-opencl-dev
sudo apt-get install libcurl3
nvidiaのドライバをインストール
sudo apt-get install -y nvidia-367
以下のshを作成
#!/bin/sh
workername1=`hostname`
workername2=`date +"%y%m%d%H%M%S"`
#export GPU_FORCE_64BIT_PTR=0 # must be comment out for amdgpu-pro
export GPU_MAX_HEAP_SIZE=100
export GPU_USE_SYNC_OBJECTS=1
export GPU_MAX_ALLOC_PERCENT=100
export GPU_SINGLE_ALLOC_PERCENT=100
export ETH_ADDR=0x0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X # Ether入金アドレス
export ETH_WORKER_NAME=$workername1$workername2 # ワーカーの名前=ホスト名+起動日時
export ETH_POOL_HOST=us1.ethermine.org:4444 #AWSリージョンと同じusを指定
cd /home/ubuntu/Claymore9.7/ #SHおいたとこ
./ethdcrminer64 \
-epool $ETH_POOL_HOST \
-ewal $ETH_ADDR.$ETH_WORKER_NAME \
-epsw x \
-mode 0 \
-ftime 10 \
-etha 2 \
-allpools 1 \
-wd 0 \
-eres 4 \
-gser 2
で、sh 起動、なんかうごく。
sudo bash miningStarter.sh
こちらで Ethereum入金アドレス で検索すると、進捗が確認できる。
ethermine.org - The fastest way to mine Ether
ためしに採掘&オンデマンドでの結果
ちゃんと掘れてるみたいですが、いくらになったんでしょう…
- AWS利用料(g3.xlarge@us-east-1)
- $1.14 / H = $27.4 / Day
- マイニング結果 2 3
- 0.002659 ETH/Day (10 MH/s) = $0.8 / Day
- 収支
- -98%($-26.56/Day)の赤字
オンデマンドインスタンス価格では赤字を垂れ流す結果となりました。自動起動設定をしたあと、AMI をとっておきます。
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
bash /home/ubuntu/Claymore9.7/miningStarter.sh #SHのありか
exit 0
- AMI-ID
- ami-0X0X0X0X
スポットインスタンスで起動まで
バージニア北部のここ一週間のスポットインスタンスの価格設定履歴より、スポットの最安値とオンデマンド比の割引率を求めました。4
インスタンスタイプ | オンデマンド($/H) | スポット最安($/H) | 割引率 |
---|---|---|---|
g3.4xlarge | 1.14 | 0.23 | 80% |
g3.4xlarge | 2.28 | 0.4 | 82% |
g3.4xlarge | 4.56 | 1.04 | 77% |
p2.xlarge | 0.9 | 0.1 | 89% |
p2.8xlarge | 7.2 | 1 | 86% |
p2.16xlarge | 14.4 | 2.2 | 85% |
g3とp2はどちらがマイニングに適しているのか計測しないとわかりませんが、とりあえず「p2.xlarge」でいいかなと感覚で決め、自動入札とAutoScaleの設定をします。この割引率を見る限り、負けが見えていますが。。。
-
起動設定:MiningLaunchConfig
- インスタンスタイプ
- p2.xlarge
- スポット価格
- $ 0.1
- AMI ID
- ami-0X0X0X0X
- インスタンスタイプ
-
AutoScalingGroup設定:MiningAutoScaleGroup
- 起動設定
- MiningLaunchConfig
- 希望
- 3
- 最小
- 3
- 最大
- 3
- 起動設定
これで、スポットインスタンスが 0.1 以下の場合自動で入札し、その価格帯であれば常時3台 起動する設定ができました。
無限にお金が、、、!!
最終結果
- AWS利用料(p2.xlarge@us-east-1)
- $0.098 / H = $2.35 / Day
- マイニング結果(1台あたり)
- 0.003244 ETH/Day (12.2 MH/s) = $ 0.97 / Day
- 収支
- -59%($-1.38/Day)の赤字
無限にお金が減っていく!
残念ながら、スポットインスタンスでも無限の収入は実現できませんでした。もっと値下げしてくれれば黒字転換するんですが、そんなうまい話ないですよね。
無念!!
参考リンク
イーサリアムを効率良くマイニングできるClaymore’s Dual Minerの使い方・設定 | トレードステーションと株・FX自動売買で暮らす
技術者向け Ethereumの基礎知識 (イーサリアム、エセリウム) - Qiita
【2017年度版】イーサリアム(ETH)でお金を稼ごう! ~マイニング編~ | デジモノ達人
イーサリウムを GPU マイニングしてみる(2017/04/21 時点) - Qiita
GPU関連でよく使うコマンドまとめ - Qiita
ETH-USD電卓:ETH/USD Ethereum Price Calculator | CoinGecko
Mining収支電卓:Ethereum Mining Profitability Calculator
採掘量確認:Balances - ethermine.org - The fastest way to mine Ether
構築時エラー集
ocl-icd-opencl-dev ないとエラー
./ethdcrminer64: error while loading shared libraries: libOpenCL.so.1: cannot open shared object file: No such file or directory
libcurl3 ないとエラー
./ethdcrminer64: error while loading shared libraries: libcurl.so.4: cannot open shared object file: No such file or directory
nvidiaのドライバ ないとエラー
ETH: 1 pool is specified
Main Ethereum pool is asia1.ethermine.org:4444
DCR: 4 pools are specified
Main Decred pool is pasc-eu2.nanopool.org:15555
AMD OpenCL platform not found
No NVIDIA CUDA GPUs detected.
No AMD OPENCL or NVIDIA CUDA GPUs found, exit