海外VPSのLinodeにSugarchainマイニング環境を構築する

Sugarchain mining on Linode

これまで、自宅の自作PCを使ってSugarchainやBellcoinなどのコインをマイニングしてきましたが、パソコンから出火して火事になった話を聞いて心配になり、VPS(レンタルサーバー)を試してみることにしました。

国内VPSと海外VPS

海外VPSは使いにくいか?

VPS業者は国内外にたくさんあります。

国内VPSならば、説明文や操作画面が日本語で表記されており、「普通に読める」安心感があります。

しかし、全作業の99%はVPSにSSHでリモートログインしての作業になります。実際の運用で日本語はそれほど必要とされません。

VPSが日本から遠い場所にあるとレスポンス速度が遅くなります。私は、ある業者の、シンガポールと米国東部に置かれているVPSを利用したことがありますが、シンガポールのVPSは速度面で日本に置かれているものとほとんど変わらない印象で、米国東部のものはこちらがコマンドを実行してから返答があるまで一瞬待たされる感がありました。

海外VPSの中でも、なるべく日本に近い場所に設置できるものを選べば、実際はほとんど困ることもないのではないでしょうか。

Linode

今回は海外VPSのLinodeを使ってみることにします。

Linode Green Image

Linodeの特徴

Linodeは、2003年に米国ペンシルベニア州で設立されたVPS業者です。海外VPSではありますが、Webサイトは日本語表示可能です。ただし、VPS管理画面(コントロールパネル)は英語のみの表記のようです。

東京を含めた世界各地にデータセンターがあるので、この東京(またはシンガポール)のVPSを選べば、他の国内VPSと同じようなレスポンス速度で利用できます。

どのデータセンターのVPSを利用しても値段は変わりませんが、支払いはUSDになります。

ここからアカウント作成すると60日間 $100 ドル分の無料体験ができます。

MEMO
アカウント作成時にクレジットカードの登録が必要ですが、初めの60日間、最大 $100 ドル分は課金されません。

仮想通貨マイニングはOKなのか?

利用規約で仮想通貨のマイニングを禁止しているVPS業者も少なくないようですが、Linodeの利用規約では禁止されておらず、公式コミュニティでも「CPUの使用率を75%くらいに抑えてくれれば容認」のように回答されているので、節度を守ればマイニング利用もOKなのだと思われます。

There’s nothing in our Acceptable Use Policy (AUP) that says you cannot run Ethereum or any mining tools. However, typical mining can lead to excessive CPU, which is against our AUP. We recommend either put rate-limiting in place for the CPU to around 75% or use a dedicated CPU instance. Dedicated CPU instances you can use all the CPU without worrying about generating a Terms of Service complaint about excessive CPU, it’s yours to use as you want.

当社の利用規約(AUP)には、Ethereumやマイニングツールを実行できないという記述はありません。しかし、典型的なマイニングはCPUのパワーを過剰に消費する可能性があり、これは当社の利用規約に反するものとなります。したがって、CPUの使用率を75%程度に制限するか、専用のCPUインスタンスを使用することを推奨します。専用CPUインスタンスでは、すべてのCPUを使用することができるので、CPUを使用しすぎて利用規約違反となることを心配する必要はなくなります。(意訳 by まなぶ)

引用 Linode Community

マイニング環境の構築手順

それでは、実際にLinodeでVPSを立ち上げて、マイニング用プログラム(マイナー)をインストールし、マイニング環境をセットアップするまでの手順を紹介します。

VPSを立ち上げる

ログイン画面からログインし、VPSの一覧管理画面を表示します。

[Create] > [Linode] または [Create a Linode] を選択します。

新しい「Linode」を作成する

VPSのスペックを設定する画面が表示されます。

サーバーのスペック設定

[Choose a Distribution] で、VPSにインストールするLinuxのディストリビューション(Linuxの種類)を選択します。Ubuntu 20.04 LTS か Ubuntu 18.04 LTS を選択すれば間違いないです。

[Region] は Tokyo か Singapore を選択しましょう。

[Linode Plan] では CPU やメモリ容量を選択します。ここでは一番小さなの「Nanode 1GB」を選ぶことにしますが、より大きくパワフルなものを選んでも良いでしょう。

MEMO
他のプランの名称が「Linode」の中、この最小プランの名称だけが「Nanode」になっていますが、「とても小さい」を意味する「Nano」をかけているだけで、何か特別な仕様になっているわけではありません。

画面を下へスクロールします。

VPS作成

[Linode Label] 欄でVPSの名前を設定します。

[Root Password] には管理者ログイン用のパスワードを入力します。これを紛失するとVPSにログインできなくなるので注意しましょう。

[SSH Keys] では公開鍵暗号方式でログインするための公開鍵を登録できます。公開鍵暗号方式を使うことでセキュリティを高め、さらにログイン時にパスワードを入力する必要がなくなるのですが、説明が長くなるため、ここでは割愛します。

[Create] をクリックすると、指定したスペックや設定でVPSが作成されます。

暫く待つと左上に緑色の丸と「RUNNING」が表示されます。これでVPSが作成と起動が完了です。

サーバーの起動状態

VPSへのアクセス

Windows環境では「PowerShell」、Mac環境では「ターミナル」などのアプリを起動します。

上図の [SSH Access] 欄に表示されているコマンドをコピーし、アプリに貼り付け、Enterキーを押して実行します。

SSHアクセスするためのコマンドを貼り付けて実行

初回実行時、本当に接続してよいかどうかの確認メッセージが表示されるので、キーボードから「yes」と入力して Enter キーを押します。

パスワードを求められるので、キーボードから入力して Enter キーを押します。入力するパスワードは画面には表示されません。

SSHログイン認証

認証に成功すると、WelcomeメッセージやVPSの情報が表示され、コマンドの入力待ちの状態になります。

Welcomeメッセージとサーバー情報

以上で、VPSへアクセスして「root」アカウントでログインできることを確認できました。

マイニングに最適なCPUかどうかの確認

Linodeのデータセンターで稼働しているコンピューターのCPUにはいくつかの種類があり、VPSにどれが充てられるかはランダムに決まるようです。

CPUの情報は /proc/cpuinfo というファイルに保存されており、cat コマンドを次のように実行して確認できます。

cat /proc/cpuinfo | grep "model name"

私が試した範囲では、次の3種類を確認できました。

CPU名 周波数
AMD EPYC 7542 32-Core Processor 2.9GHz
AMD EPYC 7601 32-Core Processor 2.2GHz
AMD EPYC 7501 32-Core Processor 2.0GHz

CPU性能が高いもの(周波数が高いもの)の方がマイニングに適しています。

性能の低いものが当たってしまった場合は、管理画面から [Delete] を選択してVPSを破棄し、もう一度やり直すと良いでしょう。手間がかかりますけど…。

VPSを破棄する

VPS設定

VPSの基本的な設定を行い、環境を整えます。

最新の状態に更新

今回VPSにインストールしたのは、Linuxの一種である「Ubuntu」というオペレーティング・システムです。

Windowsに「Windows Update」があるように、Ubuntuにもアプリを更新したりセキュリティを最新の状態に保ったりするための機能「apt」があります。

次のコマンドを実行して、Ubuntuを最新の状態に更新します。

apt update && apt -y upgrade

完了するまでにしばらく待ちましょう。

スワップファイルの増設

最小プランである「Nanode」で利用できるメモリの容量は1GBです。デフォルトで0.5GBのスワップが用意されていますが、これではちょっと心もとないですね。

そこで「swapfile」という名前のファイルを作成し、これを追加スワップとして利用することにします。ここでは6GBのスワップを追加します。(マイニングするだけなら1GBもあれば十分です)

fallocate -l 6G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile

これでルートディレクトリに「swapfile」というスワップファイルが作成されました。

ただ、これだけだとVPSを再起動すると無効に戻ってしまいます。再起動しても有効にするには、この swapfile を /etc/fstab に登録します。

テキストエディタ「vi」を使って /etc/fstab ファイルを編集します。

vi /etc/fstab
MEMO
テキストエディタ「vi」はキー操作が特殊なので、慣れが必要ですが、だいたい次を覚えれば事足ります。

  • i キーを押す … 編集モード(挿入モード)になる。
  • ESC キーを押す … 編集モードから閲覧モードに戻る。
  • 閲覧モードで数字キーを押して y キーを2回押す … 現在の行から数字分の行数をコピーする。
  • 閲覧モードで p キーを押す … コピーした内容を現在の行の下にペーストする。
  • 閲覧モードで : キーを押して w をキーを押して Enter キーを押す … 上書き保存する。(終了しない)
  • 閲覧モードで Z キー(大文字)を2回押す … 上書き保存して終了する。
  • 閲覧モードで : キーを押して q! と入力して Enter キーを押す … 編集をキャンセルして終了する。

2行目に既存のスワップの記述があるので、これを3行目にコピーし、行頭を /swapfile に書き換え、ファイルを上書き保存します。

/dev/sda / ext4 defaults 0 0
/dev/sdb none swap defaults 0 0
/swapfile none swap defaults 0 0

これで、VPSが起動するときに /swapfile がスワップとして使用されるようになります。

再起動して free -h コマンドを実行し、スワップの容量が6.5GBになったことを確認します。

VPSの名称変更

コマンドの入力待ちの部分には「root@localhost」と表示されていますが、これは「localhostという名前のサーバーにrootというユーザーでログイン中」という意味です。

複数のVPSを運用する場合、どのVPSにログインしても「root@localhost」と表示されるので、自分がどのVPSを操作しているのかわからなくなり、混乱しがちです。

そこで、VPSの名前「localhost」をわかりやすいものに変更しましょう。ここでは「myvps1」という名前に変更します。

次のコマンドを実行すると、/etc/hostname ファイルに「myvps1」という名前が記入されます。

echo "myvps1" > /etc/hostname

次のコマンドを実行してVPSを再起動します。実行した瞬間にSSHの接続が強制解除されます。

shutdown -r now

VPSの再起動が完了するまでしばらく待ち、再び手元のPCから ssh コマンドを実行してVPSに接続します。

ssh root@172.104.104.250

下図のように、設定した名称が反映されていることを確認します。

SSHでVPSに再接続

ファイアウォールの設定

デフォルトでは、ファイアウォール機能である「UFW」がインストールされています。UFWの状況は、以下の方法で確認できます。

ufw status

デフォルトでは「Status: inactive」というメッセージが表示されます。これは、インストールされているが有効になっていない(無効状態)であることを表しています。

今回のVPSは、マイニング用プログラムを実行するだけのためのもの。自分のPCからSSHで接続する以外、外部からのアクセスは不要なので、SSH以外のポートを塞ぎます。

MEMO
ポートとは、VPSという建物に入るためのドアのようなものです。SSH用のドア以外を閉ざすことで、外部から進入される可能性を低下させ、セキュリティを高められます。

次のコマンドを実行してSSH用のポートを開きます。(TCP 22番ポートを開きます)

ufw allow ssh

必要に応じて他のポートを追加することもできます。例えば、TCP 80番ポートを開く場合は次のようにします。

ufw allow 80/tcp

開くポートの指定が済んだら、次のコマンドを実行してUFWを実行します。

ufw enable

「Command may disrupt existing ssh connections. Proceed with operation (y|n)?(コマンドを実行すると既存のSSH接続が解除されるかもしれません。実行して良いですか?)」というメッセージが表示されます。キーボードから「y」を入力して Enter キーを押します。

再び ufw status コマンドを実行し、UFWの状況を確認します。

root@myvps1:~# ufw status
Status: active

To Action From
-- ------ ----
22/tcp ALLOW Anywhere
22/tcp (v6) ALLOW Anywhere (v6)

上記の結果からは、SSHが使用するTCP 22番ポートが許可 (ALLOW) されていて(開いていて)、他は何も許可されていないことがわかります。

注意
SSHが使用するTCP 22番ポートを開かないままUFWを実行すると、外部(自分のPC)からのSSH接続も拒否され、VPSにログインできなくなってしまいます。正しく設定するように注意してください。

マイニング用プログラムの設置

基本的なVPSの設定が済んだので、いよいよマイニング用プログラム(マイナー)を設置します。

マイニング用プログラムの設置手順は、次の記事でも詳しく紹介しています。

Sugarchainマイナー(マイニング用プログラム)のセットアップ方法 Sugarchainを掘る!マイニング用プログラムの設置

重複する説明も多いのですが、今回はLinode VPS環境での手順を簡単に紹介します。

Sugarmaker ダウンロード

マイニング用プログラムの「Sugarmaker」をGitHubのページからダウンロードします。

参考 Sugarmaker ReleasesGitHub Sugarmaker

「〜linux64.zip」のリンクを右クリックし、リンクのアドレスをコピーします。

ダウンロードするファイルのアドレスをコピー

VPSにログインし、「wget」と入力した後に半角スペースを入力し、コピーしたアドレスを貼り付け、Enter キーを押して実行します。

wget https://github.com/decryp2kanon/sugarmaker/releases/download/v2.5.0-sugar4/sugarmaker-v2.5.0-sugar4-linux64.zip

下図のようにダウンロードされます。

Sugarmakerのダウンロード

Unzip 展開

デフォルトでは、ファイルを展開するための「UNZIP」がインストールされていません。次のコマンドを使ってインストールします。

apt -y install unzip

Sugarmakerのパッケージを展開します。

unzip sugarmaker-v2.5.0-sugar4-linux64.zip

「sugarmaker-v2.5.0-sugar4-linux64」というフォルダが作成され、その中にプログラムが展開されます。

パッケージは不要なので rm コマンドで削除します。

rm sugarmaker-v2.5.0-sugar4-linux64.zip

cd コマンドを使って「sugarmaker-v2.5.0-sugar4-linux64」フォルダの中へ移動します。

cd sugarmaker-v2.5.0-sugar4-linux64

ls -l コマンドを使ってフォルダの中のファイルを一覧表示します。

ls -l
total 1520
drwxr-xr-x 2 root root 4096 Mar 21 13:00 .
drwx------ 5 root root 4096 Mar 21 13:01 ..
-rwxrwxr-x 1 root root 49 Mar 23 2020 run-bench.sh
-rwxrwxr-x 1 root root 126 Mar 23 2020 run-mainnet-pool.sh
-rwxrwxr-x 1 root root 148 Mar 23 2020 run-mainnet-solo.sh
-rwxrwxr-x 1 root root 134 Mar 23 2020 run-testnet-pool.sh
-rwxrwxr-x 1 root root 148 Mar 23 2020 run-testnet-solo.sh
-rwxrwxr-x 1 root root 1527272 Mar 23 2020 sugarmaker

6つのファイルが展開されましたが、必要なものは sugarmaker だけで、拡張子 .sh が付いた他の5つのファイルは不要です。削除してもOKです。(残しておいても問題ありません)

マイニングの実行

Cpulimit 導入

Sugarmakerは、利用できるCPUパワーをすべて使ってマイニングを行います。

そのまま実行すると、CPU使用率がVPSの許容値を超え、LinodeからBAN(利用禁止措置)されるかもしれません。

そこで、CPU使用率を抑えるプログラム「cpulimit」をインストールします。

apt -y install cpulimit

マイニング用プールの選択

ここではお手軽なプールマイニングを行うことにします。

Sugarchainプールマイニングのやり方を詳しく紹介します Sugarchainを掘る!手軽にプールマイニング

Sugarchainのマイニングプールは世界中にいくつもありますが、ここでは公式マイニングプールの 1pool.sugarchain.org を使ってみましょう。

Sugarmaker 実行

次のコマンドを実行します。

cpulimit -l 66 -- ./sugarmaker -o stratum+tcp://1pool.sugarchain.org:5555 -u (ウォレットのアドレス) -t1

cpulimit -l 66 は、「CPU使用率を66%に抑える」という意味です。

最後の -t1 は、「CPUのスレッドを1つ使用する」という意味です。

これらのパラメーターを誤るとCPUを過度に使用することがあるので注意しましょう。

実行して下図のように「yay!!!」が表示されれば成功です。

Running sugarmaker

MEMO
「yay!!!」が表示されてすぐにSUGARがウォレットに送金されるわけではなく、自分がマイニングした量がある程度貯まるまで待つ必要があります。1poolの場合、50 SUGARです。

マイニング状況の確認

1poolのサイトにアクセスし、[Worker] タブから自分のアドレスを探します。

1pool Workers

リンクをクリックすると、次のような画面が表示され、ハッシュレートやシェアを確認できます。

マイニング状況

MEMO
「ハッシュレート」とはマイニングの速さ、「シェア」はプール全体に対して自分のハッシュレートがどのくらいの力を持っているかを示す割合です。上図左側の折れ線グラフを見てわかるように、ハッシュレートは時間ともに変わります。

Sugarmaker 停止

通常、実行中のプログラムは Ctrl + C キーを押すことで停止できますが、今回の sugarmakercpulimit を介して実行しているため、Ctrl + C キーを押しても停止されません。

そこで、別のPowerShellまたはターミナルを起動し、同じVPSにSSHでログインし、sugarmaker に対して kill コマンドを実行して停止させます。

VPSにログインしたら次のコマンドを実行します。

ps aux | grep sugarmaker

次のような結果が表示されます。

root 1164 69.0 1.0 242924 10900 pts/0 Sl 14:38 10:03 ./sugarmaker -o stratum+tcp://1pool.sugarchain.org:5555 -u sugar1q0c6lm4hmjr6mvp8ya5evp9htlk9t5a8w3xnvrl -t1
root 1165 0.1 0.0 2700 112 pts/0 S< 14:38 0:01 cpulimit -l 66 -- ./sugarmaker -o stratum+tcp://1pool.sugarchain.org:5555 -u sugar1q0c6lm4hmjr6mvp8ya5evp9htlk9t5a8w3xnvrl -t1
root 1337 0.0 0.0 5192 736 pts/1 S+ 14:52 0:00 grep --color=auto sugarmaker

1行目に表示されている「1164」が、実行中のsugarmakerプログラムのPID(プログラムの識別番号)です。

この「1164」を指定して kill コマンドを実行します。

kill -2 1164

これで sugarmaker が停止します。

まとめ

以上、海外VPSのLinodeでサーバーを立ち上げてSugarchainのマイニングをする手順を紹介しました。

本格的に使用するならば、一般ユーザーの作成や公開鍵暗号方式での接続など、セキュリティを高める設定を行うべきですが、今回は単純なマイニング用途ということで、この辺りの説明は割愛しました。

サーバーを立ち上げ、基本中の基本的な設定を済ませ、マイニング用プログラムを設置するだけ。順を追っていけば意外と簡単です。

繰り返しになりますが、利用する際には、他の利用者の迷惑にならないよう、CPU使用率を抑えることを忘れないようにしてください。

この記事がお役に立てば幸いです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です