👏

約5000円分の無料利用枠を使ってDockerで仮想通貨のマイニングを実践する

13 min read

結論

Genesis Cloudに所定のURLからアクセスしてアカウント登録することで、50USD分のクレジットを得られます。
得たクレジットでマイニングを試してみることができます。

無料クレジット分でどのくらいの額がマイニングできるかですが、2021/02/27時点の報酬水準で
うまくいけば2000円前後相当のビットコインが手元に残ると思われます。
参考:Profitability Calculator

https://www.nicehash.com/profitability-calculator/nvidia-gtx-1080-ti

ただしマイニング報酬の水準は時々刻々と変化します。
この金額を保証するものではないのでご注意ください。

注意事項

  • 本記事は仮想通貨取引を奨励するものではありません。以下で紹介する内容は、自己の判断の下実施してください。
  • 本記事の内容を実施したことにより損害を被ったとしても責任を負いかねます。ご了承ください。

必要なもの

  • クレジットカード
  • Genesis Cloudのアカウント(本記事で解説します)
  • NiceHashのアカウント(本記事で解説します)
  • Visual Studio Code(本記事で解説します)
  • 仮想通貨取引所のアカウント(本記事では解説しません)
  • Lightning Network対応の送金アプリ(本記事では解説しません)

手順

0.目次

以下のステップでマイニングを始めます。
特に注釈がなければ端末はWindowsPC、ブラウザはGoogle Chromeを使うこととします。

  1. NiceHashのアカウントを作成する
  2. Genesis Cloudのアカウントを作成する
  3. Genesis Cloudでインスタンスを作成する
  4. ソフトウェアの設定を行いマイニングを開始する

マイニング後の送金については本記事での解説対象外です。ご了承ください。

1.NiceHashのアカウントを作成する

NiceHash
NiceHashについての詳しい説明は省略します。
マイニングした結果のコインが届く場所と考えれば問題ないです。

1-1.NiceHashへのアクセス確認 (任意)

NiceHashのトップページへ行き、正しくアクセスできたことを確認します。
この手のサイトはフィッシング等の対象になりやすいので、特に登録時などセンシティブな情報を入力するときは確認したほうが無難です。

アドレスバーのカギのマークをクリック -> [証明書]をクリック
発行先がwww.nicehash.comであれば問題ないです。

1-2.アカウント登録

[GET STARTED]をクリックして必要情報を入力し、アカウントを作成してログインします。

アカウント登録後、二段階認証を設定することを推奨します。
画面右上のユーザアイコン -> [MY SETTINGS] -> [Security] -> [ENABLE 2-FACTOR AUTHENTICATION]

1-3.マイニングアドレスの確認

画面上方のメニュー [Mining] -> [MINING ADDRESS]をクリック
アルファベットと数字で構成された文字列が表示されます。後の手順で使うので控えておきましょう。

2.Genesis Cloudのアカウントを作成する

Genesis CloudはGPUに特化したシンプルなクラウドサービスです。
普通の大手クラウドプロバイダーは仮想サーバを立てると、少なくともコンピューティング、ストレージ、ネットワークへの課金が発生します。
しかしながらGenesis Cloudは驚くことにコンピューティングリソースにしか課金されません。
(ほんとにびっくりしました。他のプロバイダにもオプションでこういうプライシングがあればいいのにと思います。)
2021/02/28時点でベータ版であり、想定価格の半額で使用できます。
また、ストレージが無料なのもベータ版の期間だけだと思われます。

理由は後述しますが登録するときは必ず以下のURLから登録してください。
そうでなければ無料のクレジットが50USDではなく15USDになります。

https://gnsiscld.co/8meeoc

2-1.Genesis Cloudへのアクセス確認 (任意)

やることは1-1.と同じです。
上記リンクへアクセスしたときに証明書の発行先がgenesiscloud.comであれば問題ありません。

2-2.アカウント登録

アカウント登録する前に、上の画像のように青色背景の部分に "Your friend invited you to test Genesis Cloud and sent you 50 USD!" と表示されていることを確認してください。
この状態でサインアップするともらえる無料クレジットの合計が50USDになります。

必要情報を入力し、[$50 for FREE to get started] をクリックします。
正常に処理が完了するとメールが届くので、[Confirm your Genesis Cloud account] をクリックして登録の確認を行います。

ログインできたら、以下のようなトップページが表示されます。

Genesis Cloud

なお現時点で2段階認証等の設定ができないので、パスワードは必ず他のどのサービスのものとも違う複雑なものにして、厳重に管理しましょう

ログイン後はまず15USDが無料クレジットとして付与されています。
最初のインスタンスを作成することで残りの35USDを受け取れます。

2-3.クレジットカードの登録

Genesis Cloudでインスタンスを作成するには、クレジットカードが必要です。
トップページ [Account] -> [Billing] -> [Add Credit Card] からクレジットカードの情報を登録します。

3.Genesis Cloudでインスタンスを作成する

3-1.インスタンスにアクセスするためのSSHキーを作成する

インスタンスへのアクセスにパスワード認証を利用する場合は不要です。
パスワード認証でもダメではないですが、セキュリティレベルが格段に落ちることは覚悟してください。

[windowsキー(win)] + [R] を押し、"cmd" と入力
自分のパソコンのコマンドプロンプトが開くので、以下のコマンドを入力してください。

ssh-keygen -t rsa -b 4096

いくつか対話的プロンプトが現れますが、以下のような出力が出るまでエンターキーを押してください。
SSHについて知識がありSSHキーの名前をカスタマイズしたい方は適宜行ってください。

The key's randomart image is:
+---[RSA 4096]----+
|  o++.o..        |
| +oo.= . .       |
|o o.= E .        |
|.= O     .       |
|o & .   S . .    |
| O + * + o o     |
|. B B * . .      |
| o + =   .       |
|    o....        |
+----[SHA256]-----+

デフォルトではC:\Users\(ユーザ名)\.ssh\に id_rsa(秘密鍵)とid_rsa.pub(公開鍵)ができます。

3-2.Genesis CloudにSSHキーを登録する

Genesis Cloudのトップページから [Account] -> [SSH Keys] -> [Add New Key]
[Upload file] を押し、公開鍵(id_rsa.pub)をアップロードしてください。
誤って秘密鍵をアップロードしてしまった場合は念のためSSHキーを作り直してください。

Key Nameに任意の名前を入力 -> [Save]

3-3.インスタンスの作成

Genesis Cloudのトップページから [Compute] -> [Create New Instance]

プロパティ 備考
Hostname 任意
Nickname 任意
Type GPU NVIDIA デフォルト
vCPUs 4 デフォルト
Memory 12 デフォルト
Disk 80 デフォルト
Image Ubunntu 18.04 デフォルト
Instance Configuration チェックを外す オンにしていると古めのバージョンのGPUドライバを入れられるのでオフ
Authentication SSH Key 先ほど登録したSSH鍵の名前を選択
Security Groups standard 気になる方は、80と443を閉じたセキュリティグループを作成してください

以上の内容を入力し、[Create Instance]を押します。
インスタンス作成には数分かかるので、その間にローカルPCからSSH接続するための準備をします。

(2021/03/03追記)
"The selected instance configuration exceeds your allowed limits. Request more here."と表示されてインスタンスを作成できない場合、
本記事の「トラブルシューティング」の項を参照してください。

3-4.SSH接続の設定

好みのターミナルソフトがあるような方には解説不要かと思うので好きに設定してください。
IPアドレスはインスタンス作成が完了したら表示されます。

SSH接続を行ったことがない方は以下のガイドを参考に設定してください。

まず、Visual Studio Code(VSCode)を入手します。
Download Visual Studio Codeから自分の環境にあったものをインストールします。
インストールの詳しい手順はOS等によって違うため説明を割愛します。「windows vscode インストール 手順」等で検索してください。

インストールが終わったあと、VSCodeを開きます。
まず、日本語化します。
[Ctrl] + [Shift] + [X] -> "Japanese" と入力して Japanese Language Pack for Visual Studio Code を選択し、[Install]を押します。
再起動を求められた場合はVSCodeを再起動します。

続いて、リモートPCにアクセスできるよう設定します。
[Ctrl] + [Shift] + [X] -> "remote" と入力して Remote Development を選択し、[インストール] を選択します。
こちらももしVSCodeの再起動が求められたならば、再起動してください。

[Ctrl] + [Shift] + [P] -> "ssh" と入力して Remote-SSH: Open Configuration File を選択します。
ユーザホームディレクトリ(WindowsならばC:\Users(ユーザ名)以下)の.ssh\configを選択します。

以下の内容を入力して保存します。

Host YOUR_HOST_NAME
    HostName XXX.YYY.ZZZ.WWW
    User ubuntu
    Port 22
    IdentityFile C:\Users\user\.ssh\id_rsa

Host:任意です。Genesis Cloudで設定したHostnameかNicknameと合わせると分かりやすいかと思います。
HostName:インスタンスのIPアドレスです。もうインスタンスは立ち上がっているかと思うので、[Compute] -> [Instances]の"Public IPv4"欄の値を設定してください。
他のパラメータは固定です。SSHキー名をカスタマイズした方は適宜変更してください。

[Ctrl] + [Shift] + [P] -> "ssh" と入力して Remote-SSH: Connect to Host を選択します。
YOUR_HOST_NAMEに該当するものが選択肢として出てくるので、クリックします。

問題なければ2度ダイアログが出るので、Linux -> Continueを選びます。

以上で接続設定は完了しました。

4.ソフトウェアの設定を行いマイニングを開始する

4-1.必要なソフトウェアをインストールする

Genesis Cloudのインスタンスにgitをインストールし、必要なソフトウェアをダウンロードします。
SSHログインしてVSCodeを開いた状態で[Ctrl] + [@]を押すと、画面下半分にターミナルが出現します。
以下のコマンドはそのターミナルに入力して下さい。

sudo apt-get -y update
sudo apt-get -y install git
git clone https://github.com/Polarbear08/ethminer.git

4-2.ソフトウェアの設定を変更する

まず、いまダウンロードしたディレクトリをVSCodeで開きます。
[Ctrl] + [K] -> [Ctrl] + [O] -> ethminerを選択 -> [OK]
K,Oを入力するときCtrlは押しっぱなしにしておいてください。
([ファイル] -> [フォルダを開く] からも同様の操作を行えます。)

VSCodeが再度開かれ、左側にethminerディレクトリ以下のファイルツリーが表示されます。
(表示されない場合は[Ctrl] + [Shift] + [E]を入力してみてください。)

miner.sh を選択し、内容を編集します。
-P 以降の内容を編集してください。

プロパティ 備考
YOUR_WALLET_ADDRRESS 1-3で控えたウォレットのアドレス
WORKER 任意 NiceHashで表示されるリグの名前です。
プールのアドレス 各自選択 デフォルト値はdaggerhashimoto.eu-west.nicehash.com:3353

4-3.各種スクリプトを実行する

[Ctrl] + [@]でターミナルを開き、以下のコマンドを順番に実行します。

なお、以下のスクリプトを実行することで以下レジストリのコンテナイメージが自動的にダウンロードされます。
自動で意図しないマイニングを始めるものではありませんが、ご了承のうえ実行してください。

コンテナイメージのDockerHubリポジトリ

https://hub.docker.com/repository/docker/polarbear08/ethminer

上記イメージのDockerfileのGitHubリポジトリ

https://github.com/Polarbear08/ethminer

#から始まるのはコメント行なので入力不要です。

# GPUのドライバとDockerをインストールします。
bash setup.sh

# 途中で以下のようなメッセージが出て処理が一度止まるので、Enterを押して続行してください。
# Press [ENTER] to continue or Ctrl-c to cancel adding it.

# GPUドライバのインストール後に再起動が必要なので実施します。
# 一度SSHコネクションが切れるので、3-4の手順を参考に再度接続します。
sudo reboot

一度VSCodeのウィンドウを閉じ、再度開きます。数分ほどかかる可能性があるので、気長にお待ちください。
(30分、1時間たっても再起動しないようであればサポートに問い合わせた方が良いと思います。)
インスタンスの再起動・SSH再接続後に以下を実行します。

# DockerコンテナがGPUを扱えるようにするソフトウェアをダウンロードし、Dockerデーモンを再起動します。
# また、マイニングを行うコンテナイメージをpullします。
bash after-reboot.sh

# マイニングを実行します。
bash miner.sh

# コンテナの実行ログを確認します。
docker logs -f miner

以下のようなログが流れ出せば成功です。
確認出来たら[Ctrl] + [C]で脱出しましょう。

ethminer 0.19.0-17+commit.ce52c740
Build: linux/release/gnu

 i 09:41:17 ethminer Configured pool daggerhashimoto.eu-west.nicehash.com:3353
 i 09:41:17 ethminer Selected pool daggerhashimoto.eu-west.nicehash.com:3353
 i 09:41:17 ethminer Stratum mode : EthereumStratum/1.0.0 (NiceHash)
 i 09:41:17 ethminer Established connection to daggerhashimoto.eu-west.nicehash.com [172.65.226.105:3353]
 i 09:41:17 ethminer Spinning up miners...
cu 09:41:17 cuda-0   Using Pci Id : 00:05.0 GeForce GTX 1080 Ti (Compute 6.1) Memory : 10.78 GB
 i 09:41:17 ethminer Extranonce set to d31bfa
 i 09:41:17 ethminer Authorized worker 3ERo3KCh1LrWQs6GJLdQDCstucRVAV8Zdq.genesis
 i 09:41:17 ethminer Epoch : 398 Difficulty : 1.41 Gh
 i 09:41:17 ethminer Job: 62b34198… daggerhashimoto.eu-west.nicehash.com [172.65.226.105:3353]
cu 09:41:22 cuda-0   Generating DAG + Light(on GPU) : 4.17 GB
 m 09:41:22 ethminer 0:00 A0 0.00 h - cu0 0.00
 m 09:41:27 ethminer 0:00 A0 0.00 h - cu0 0.00
 i 09:41:29 ethminer Job: 044c7380… daggerhashimoto.eu-west.nicehash.com [172.65.226.105:3353]
 m 09:41:32 ethminer 0:00 A0 0.00 h - cu0 0.00
cu 09:41:33 cuda-0   Generated DAG + Light in 10955 ms. 6.61 GB left.
 m 09:41:37 ethminer 0:00 A0 136.45 Kh - cu0 136.45
 i 09:41:41 ethminer Job: d5ff4005… daggerhashimoto.eu-west.nicehash.com [172.65.226.105:3353]

以上で、作成したインスタンスでマイニングを開始できました。
しばらくするとNiceHashでマイニングの状態を確認できるようになります。

送金について

本記事では解説の対象外ですが、送金にあたって注意点があるため記載します。

マイニングから送金の流れは以下の通りです。

1.マイニングを実施
↓↓↓
2.報酬をマイニングサービスの自分のアカウントのウォレットに移動
↓↓↓
3.自分の国内外の取引所等のウォレットに移動

まず、たいていのマイニングプールにはマイニング報酬支払の最低金額があります。
また、送金についても必要最低額が設定されていることが多いです。
つまり、1→2、2→3のいずれの移動についても、一定の金額が必要ということです。
プールによっては、無料枠の範囲で得られるコインでは最低報酬額や最低送金額に届かない可能性があります。

本記事でNiceHashを選択しているのは、始めるのが簡単であるのに加えて少額の報酬受け取り・少額の送金を実行できるためです。
ただしそれでも下限はあるので、ご確認のうえ実行してください。

Nicehashでは基本的に送金できる最低額 ≥ マイニングの最低報酬なので、送金できる額をチェックすると良いと思います。

https://www.nicehash.com/support/general-help/nicehash-service/fees

トラブルシューティング

(2021/03/03追記)インスタンスを作成できない

「3-3.インスタンスの作成」で、記事の設定どおりであるにもかかわらず以下のようなメッセージが出てインスタンスを作成できないケースがあると判明しました。

The selected instance configuration exceeds your allowed limits. Request more here.

手順通りに進めてインスタンス作成で詰まってしまった方は申し訳ないです。
この場合、"here"に設定されたリンクをクリックし、"Submit a ticket"ページに移動します。

以下のようにフォーム入力し、[SUBMIT]を選択します。
support
(本文コピペ用)
Hi,

Could you let me spin up a single GPU instance?
quota request
GPU: 1

I appreciate your support.

メールアドレスとユーザ名は自分のものを入力してください。
SUBMITを選択後Genesis Cloudサポートページへのサインアップを求められたら、Genesis Cloudのアカウントと同じ情報を入力してください。

サポートページには通常24時間以内に返信しますとは書いていましたが、だいたい2日後に返信が来る印象です。

SIGSEGVによるプロセスの中断

根本原因は不明ですが、SIGSEGVを受け取ってプログラムが終了してしまうことがあります。
restart_cron.shをcronで定期実行するとダウンタイムの長期化を防げます。
吐かれたログの中にSIGSEGVがないかを確認し、あればコンテナを削除、再度作成するという処理を行っています。
crontabの詳しい設定方法については、「crontab ubuntu」等でインターネット検索してください。
設定例

* * * * * bash /home/ubuntu/ethminer/restart_cron.sh

想定問答集

ライセンス違反では?

2021/02/28現在、Genesis Cloudは無料クレジットを利用したマイニングについて規定を設けていません。
参考:Terms of Service(利用規約)

また、仮想通貨のマイニングについても禁止はしておらず、報酬は利用者に帰属すると明記しています。

In addition, the Customer shall be the beneficial owner of any cryptocurrencies generated and/or received as a result of the Customer’s use of the Services under this Agreement.
(Terms of Service 14.1より抜粋)

ただし、利用規約は変更される可能性があるので、登録するタイミングで必ず確認してください。
英語分からなくても大丈夫です。利用規約の中を"crypto", "mining", "restriction" 等でページ内検索し、関係がありそうな部分をDeepL等で翻訳して大意をつかみましょう。

注意していただきたいのですが、他のクラウドプロバイダは多くの場合、無料利用枠でのマイニングを明示的に禁止しています。
本記事で解説した手法はGenesis Cloud以外でも使用できますが、利用規約を確認したうえで実施してください。

何か裏がある?

はい、すみません。あります。

当記事はDockerを使った仮想通貨マイニングの方法を解説することと同時に、
Genesis Cloudのリファラルプログラムでの収益を得ることも目的としています。

所定のURLで登録していただいたのは、このプログラムのためです。
詳細:Referral Links; Gift $50 and earn $110

これを説明するのは、皆さんににある種の納得感を持っていただくためです。
儲け話には裏があるとは言いますが、裏に納得したうえで乗っていただければお互い幸せになれると考えています。

私に多くのリファラル対価が入ることに納得できない方は、以下の2通りの方法をお試しください。

  1. 普通のURLからGenesis Cloudに登録する
    • 付与されるクレジットは15USDのみになります。
    • 私にリファラル対価は入りません。
  2. リファラル用URLで登録し、50USDを使い切る前にGenesis Cloudの利用をやめる
    • マイニングで採算が取れる場合、追加の利益が得られません。
    • 私にはリファラル対価が10USD入ります。

現実的にはGenesis CloudのインスタンスをMonthlyで使っても採算がとれるか微妙なところなので、ただ試してみたいだけであれば50USDを使い切らないうちに利用をやめるのがおすすめです。
Genesis Cloudに限った話ではありませんが、時間課金のリソースは放っておくと無限に課金額が増えていくので注意してください。
(私は過去にAWSに1月で6桁円支払ったことがあります。。。)

その他

Genesis Cloudは2021/03/05まで継続的メンテナンスを実施中です。
ユーザへの影響は想定されていませんが、念のためご注意ください。

https://genesiscloud.statuspage.io/incidents/ygqcj6c4whyr

また、2021/02/28には12時間サービスをストップさせてのメンテナンスが行われました。
以降も高頻度ではないといえ同等の内容のメンテナンスが入る可能性があります。

ベータ版のサービスなので、その辺は仕方ないと割り切りましょう。