6
6

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 3 years have passed since last update.

Raspberry Pi ではじめるCPUマイニング(Koto編)

Last updated at Posted at 2019-12-11

1. はじめに

  • 今回は、前回のBitZeny編に引き続き、Koto編として自分自身への備忘録を兼ねて、Raspberry PiでCPUマイニングをはじめる方法を、お伝えしたいと思います。
  • 手順はおおむね前回のBitZeny編と同じですが、計算アルゴリズムが異なるらしくKoto用のcpuminerをビルドする必要があります。(BitZeny編のcpuminerをそのまま用いると、 (yay!!!)とはならずに(booooo)となるかと思います。)
  • マイニングプールアドレスと、Koto受信アドレスをKoto用に書き換える必要もあります。
  • BitZeny編との違いとしては、ウォレットに「もにゃ」Web版(PWA版)を利用しています。

koto_logo_color2048.png

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

  • Raspberry PiでKoto(アルトコイン)をCPUマイニングできるようになる。

3. 必要なもの

  • Raspberry Pi(この記事では Raspberry Pi3 を利用しました)
  • SDカード
  • インターネット環境
  • パソコン(Windows10など)
  • sshクライアントソフト(TeraTerm

4. Raspbian Buster Liteの入手

  • 以下のURLから、OSイメージファイル(Raspbian Buster Lite)をダウンロードする。
  • 今回はCPUパワーを100%活用するため、画面なしヘッドレス(CUI版)のRaspbian Buster Liteを採用しました。
  • 画面ありGUI版の「Raspbian Buster with desktop」でも問題なく動作すると思います。
Raspbian_Buster_LiteダウンロードサイトURL
https://www.raspberrypi.org/downloads/raspbian/

参考:この記事作成時のファイルバージョン:2019-09-26-raspbian-buster-lite.zip

5. microSDカードのフォーマット

6. microSDカードへOSイメージの書き込み(所要時間:15分)

  • Etcherなどのソフトを用いて、使用するmicroSDカードへOSイメージを書き込む。

7. Raspberry Pi のSSH有効化の設定

  • microSDカード直下フォルダにファイル名「ssh」(空ファイル拡張子なし)で新規作成する。保存の際は、不要なファイル拡張子(.txt等)が付かないよう注意すること。

8. Raspberry Pi のWi-Fi設定

  • あらかじめWi-Fi設定を済ませておく。
  • microSDカード直下フォルダにファイル名「wpa_supplicant.conf」(改行コード:LF、文字コード:UTF-8)で新規作成し、ファイルの内容を以下のとおり設定する。(ssidとパスワードpskは、各自の環境に合わせて設定してください。)
wpa_supplicant.conf
country=JP
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
        ssid="----Your-WiFi-SSID----"
        psk="----PLAIN-PASSPHRASE----"
}

9. microSDカード の完成

  • 完成した microSDカード を、PCからおもむろに抜き取る。

10. Raspberry Piの起動

  • Raspberry PiにmicroSDカードを挿入し、Raspberry Piを起動する。

11. SSHクライアントでRaspberry Piに接続

  • PCで、SSHクライアント(TeraTerm 等)を起動し、ホストにRaspberry PiのIPアドレス「192.168.XXX.XXX」またはホスト名「raspberrypi.local」を入力し、OKボタンをクリックし、ssh接続する。
  • SSH認証画面で、ユーザ名とパスフレーズを入力し、「OK」ボタンをクリックする。
  • SSHクライアントの使い方がわからない、またはRaspberry PiのIPアドレスがわからない、ホスト名接続できない方は、Raspberry PiにHDMIモニタ、マウス、キーボードを接続して以降の操作をおこなっても大丈夫です。
デフォルトユーザ名/パスワード
ユーザ名 :pi
パスワード:raspberry

11. ネットワーク疎通確認

ネットワーク疎通確認コマンド
$ ping www.yahoo.co.jp
  • このコマンドで、yahooさんにつながったならネットワークは問題ありません。
  • ネットワークが不通の場合は、以降の手順がおこなえないため、ネットワーク環境を確認しましょう。

12. cpuminer/minerdのセットアップ

  • 以下のコマンドを順次実行し、cpuminer/minerdをセットアップします。
コマンドプロンプト
// リポジトリ一覧を更新
$ sudo apt update

// アップグレードの実行(5分程度)
$ sudo apt upgrade
途中、Yキー押下
途中、qキー押下

// gitインストール
$ sudo apt install git

// CPUリミットのインストール
$ sudo apt install cpulimit

// ディレクトリ移動
$ cd /opt/

// cpuminerの取得(Koto用)
$ sudo git clone https://github.com/KotoDevelopers/cpuminer-yescrypt cpuminer-koto

// ディレクトリ移動
$ cd /opt/cpuminer-koto/

// automakeインストール
$ sudo apt install automake

// gccコンパイラインストール
$ sudo apt install gcc

// libcurl4-openssl-devインストール
$ sudo apt install libcurl4-openssl-dev

// ビルド(メイク)
$ sudo ./autogen.sh

$ sudo ./configure CFLAGS="-O3 -march=native -funroll-loops -fomit-frame-pointer"

$ sudo make

13. CPUマイニングの実行

  • 以下のコマンドを実行し、CPUマイニングを実行します。
コマンドプロンプト
// マイニング実行コマンドの例
$ /opt/cpuminer-koto/minerd -a yescrypt -o stratum+tcp://koto.mofumofu.me:3301 -u k1KFxjGhCUy8cPmgEajZpqwdPRaGUjDQkxn
$ /opt/cpuminer-koto/minerd -a yescrypt -o stratum+tcp://koto.mofumofu.me:3301 -u {この部分にご自身のKoto受信アドレスを設定}
  • 今回はウォレットの「もにゃ」を利用しました。
  • ウォレットをまだお持ちでない方は、「もにゃ」の「いますぐ使う」リンクから新規登録をおこない、ウォレット作成後に「+コインを追加」から「Koto」を追加し、「受信」から「Koto」を選択しKoto用の「アドレスコピー」から、ご自身の「Koto受信アドレス」をコピーしてお使いください。
  • マイニングプールについては、登録不要で使えるKotoのマイニングプール(NOMP:Node Open Mining Portal)である「mofumofu.me」を利用しています。

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

  • CPUマイニングに成功すると、「(yay!!!)」とログに出力されるかと思います。
  • ただし、マイニングに成功してもすぐにKoto受信アドレスに受け取り反映されるわけではありません。受け取り反映されるルールについては、利用するマイニングプールのルールによって異なります。Raspberry PiのCPU処理能力は高くないため、半月から1か月程度、気長に待ってみましょう。
コマンドプロンプト
[2019-12-11 12:05:40] thread 1: 44 hashes, 0.01 khash/s
[2019-12-11 12:05:40] thread 0: 120 hashes, 0.01 khash/s
[2019-12-11 12:05:40] thread 2: 96 hashes, 0.01 khash/s
[2019-12-11 12:05:40] thread 3: 126 hashes, 0.01 khash/s
[2019-12-11 12:05:56] thread 2: 213 hashes, 0.01 khash/s
[2019-12-11 12:05:56] accepted: 16/16 (100.00%), 0.05 khash/s (yay!!!)
[2019-12-11 12:06:00] thread 0: 246 hashes, 0.01 khash/s
[2019-12-11 12:06:00] accepted: 17/17 (100.00%), 0.05 khash/s (yay!!!)
マイニングプールの反映ルール例
最低支払額: 1 KOTO
支払間隔: 60分
使用手数料: 0.5%
支払方法: PROP

15. minerdの自動起動設定ファイルの新規作成

  • 手動でCPUマイニングを起動するのも面倒かと思いますので、systemdを利用した自動起動設定ファイルを新規作成します。
コマンドプロンプト
// 自動起動設定ファイルの新規作成
$ sudo vi /opt/minerd-koto.service
/opt/minerd-koto.serviceファイル内容
[Unit]
Description=minerd is executed and resides at OS startup.
After=network.target

[Service]
WorkingDirectory=/opt/cpuminer-koto
ExecStart=/opt/cpuminer-koto/minerd -a yescrypt -o stratum+tcp://koto.mofumofu.me:3301 -u k1KFxjGhCUy8cPmgEajZpqwdPRaGUjDQkxn
Restart=always
Type=simple
TimeoutStopSec=5
StandardOutput=append:/tmp/minerd-koto.log
StandardError=append:/tmp/minerd-koto.log

[Install]
WantedBy=multi-user.target

16. minerdの起動確認&自動起動有効化

  • 作成した自動起動設定ファイルを所定のディレクトリに移動し、minerdの起動確認および有効化をおこないます。
コマンドプロンプト
// 自動起動設定ファイルを所定ディレクトリに移動
$ sudo mv /opt/minerd-koto.service /etc/systemd/system/

// minerdの起動確認
$ sudo systemctl start minerd-koto.service

// 起動状況確認(設定内容が正しいか動作確認します)
$ sudo systemctl status minerd-koto.service

// minerdの自動起動有効化(再起動後に自動起動するようになります)
$ sudo systemctl enable minerd-koto.service

// OS再起動
$ sudo shutdown -r now

// OS再起動後の実行ログ確認
$ tail -f /tmp/minerd-koto.log
  • 補足:minerd.serviceファイルの設定変更を反映する際は sudo systemctl daemon-reload コマンドを実行して反映する必要があります。

17. おわりに

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

2019/12/11 TAKAHIRO NISHIZONO

18. 追記その1:Raspberry Pi 設定もろもろ

  • 設定しておくと便利なRaspberry Pi 設定もろもろをお伝えします。
コマンドプロンプト
// パスワード変更
$ passwd

// ホスト名変更(Raspberry Piを複数台お持ちの方は一意に変更するとよいかと思います。)
$ sudo vi /etc/hostname
$ sudo vi /etc/hosts

// 再起動(ホスト名変更の反映のため)
$ sudo shutdown -r now

// Raspberry Piの設定(CUIモード)
$ sudo raspi-config

// ファイルシステムの拡張
7 Advanced Options → A1 Expand Filesystem

// ロケール等の変更
4 Localisation Options → I1 Change Locale → ja_JP.UTF-8 UTF-8 → スペース選択* → OK
ja_JP.UTF-8 → OK

// タイムゾーンの変更
4 Localisation Options → I2 Change Timezone → Asia → Tokyo

// Wi-Fi利用国の変更
4 Localisation Options → I4 Change Wi-fi Country → JP Japan

// 終了&再起動
Finish → Yes

19. 追記その2:ログローテートの設定

  • ログファイル(/tmp/minerd-koto.log)がディスク容量を圧迫しないように、ログローテーション設定をお伝えします。
コマンドプロンプト
// ログローテート設定ファイルの定義
sudo vi /etc/logrotate.d/minerd-koto
/etc/logrotate.d/minerd-kotoの内容
/tmp/minerd-koto.log {
    ifempty
    dateformat .%Y%m%d
    missingok
    daily
    rotate 10
    postrotate
        /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
    endscript
}
  • 余談、ログローテートを設定するならば、ログ出力先は/tmp/ディレクトリ配下よりも、/var/log/配下ディレクトリに書き換えた方がかっこいいかもしれません。

/var/log/minerd/minerd-koto.log

6
6
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
6
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?