イーサリアムが欲しくなったので、GPUマシンで掘る方法について調べて、掘ってみた。
NVIDIAのGPUで動くDockerfileをビルドする
DockerfileはAnthony-Tatowicz/nvidia-dockerを利用する(CUDAのバージョンが7.5と古いため、手動ビルドした方が本当はいいかも→参考)
git clone https://github.com/Anthony-Tatowicz/docker-ethminer
cd docker-ethminer
nvidia-docker build .
nvidia-docker images
docker tag <image id> kasajei/ethminer:latest
マイニングプール(nanopool)を利用する
自分だけで掘ってると掘れたときはラッキーだが、掘れる確率が下がるので、マイニングプールを利用して、みんなで頑張る。今回はETHを掘りたいので、nanopoolのETHを利用する。
nanopoolのヘルプを見ると、日本のリージョンeth-jp1.nanopool.org
があるので、これを利用する。
マイニングする
$ nvidia-docker run -it kasajei/ethminer -S <nanopoolのエンドポイント>:9999 -O <ウォレットハッシュ>.<ワーカー名>/<メールアドレス>
普通にやると、Out of memory
が出て動かない。まずは、GPUのメモリを疑う。issues/150を参考に、--dag-load-mode sequential
を使ってみる。
$ nvidia-docker run -it kasajei/ethminer -S <nanopoolのエンドポイント>:9999 -O <ウォレットハッシュ>.<ワーカー名>/<メールアドレス> --dag-load-mode sequential
これで、動かない場合は、しょぼいGPUが刺さっていて、そいつがOut of memory
しているケースがある。ので、強いGPUだけ使うようにする。--cuda-devices
で利用するGPUを指定できる。
$ nvidia-docker run -it kasajei/ethminer -S <nanopoolのエンドポイント>:9999 -O <ウォレットハッシュ>.<ワーカー名>/<メールアドレス> --dag-load-mode sequential --cuda-devices 0 # 0番目のGPUが強い場合
他にも、Out of memory
になるケースとして、メモリが足りないことissues/437もあるようだ。こちらも対応してみたが、効果があったかどうかはわからない。対策はこちらを参考。
nanopoolで掘ったETHはhttps://eth.nanopool.org/account/自分のウォレットハッシュ
で確認できる。
ちなみに、僕のウォレットは0x97e7320814444F5f5274d78b1Ba1E2df5Ec8680fです。この記事が参考になったらETH送ってもらえると喜びます。