1. はじめに
- 今回は、自分自身への備忘録を兼ねて、Jetson NanoでCPUマイニングをはじめる方法を、お伝えしたいと思います。
2. この記事を読んでできること
- Jetson NanoでBitZeny(アルトコイン)をCPUマイニングできるようになる。
3. 必要なもの
- Jetson Nano
- SDカード(なるべく速いもの A1)
- インターネット環境
- パソコン(Windows10など)
- sshクライアントソフト(TeraTerm)
4. Jetson Nano Developer Kitのセットアップ
- 公式のJetson Download Centerから、Jetson Nano Developer Kitイメージを入手し、Jetson Nanoのセットアップ(アカウント作成)まで済ませておきます。
- 最近は、JetPack なる新たなイメージも登場しているようですので、おもむきに合わせてお選ぶのもよいでしょう。
参考:この記事作成時のファイルバージョン:nv-jetson-nano-sd-card-image-r32.2.3.zip
5. 下準備
- 下準備として、Jetson Nanoのもろもろセットアップを済ませておきます。
- Jetson Nanoにディスプレイ、キーボードおよびマウスを接続し、ターミナル(端末)を起動し、コマンド実行をおこないます。
コマンドプロンプト
// terminalの起動
Ctrl + Alt + T
// IPv4アドレスの確認
$ ifconfig
// IPv6無効化
$ sudo vi /etc/sysctl.conf
# 最終行にIPv6無効化を追記する
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
// ホスト名アクセス(ホスト名.local)の有効化
$ sudo apt install avahi-daemon
// OS再起動
$ sudo shutdown -r now
// 上記コマンド実行後は、sshクライアントから接続できると思います
- sshクライアントを利用しssh接続
- IPアドレス または ホスト名.local を利用
// リポジトリ一覧の更新
$ sudo apt update
// パッケージのアップグレード
$ sudo apt upgrade
途中、Yキー押下
途中、qキー押下
6. cpuminer/minerdのセットアップ
- 以下のコマンドを順次実行し、cpuminer/minerdをセットアップします。
コマンドプロンプト
// gitインストール
$ sudo apt install git
// ディレクトリ移動
$ cd /opt/
// cpuminer-yescryptの取得
$ sudo git clone https://github.com/primenumber/cpuminer-yescrypt.git cpuminer
// ディレクトリ移動
$ cd /opt/cpuminer/
// gitブランチ切り替え
$ sudo git checkout bitzeny-neon
// gitブランチ確認
$ git branch
// automakeインストール
$ sudo apt install automake
// autoconfインストール
$ sudo apt install autoconf
// build-essentialインストール
$ sudo apt install build-essential
// 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
7. CPUマイニングの実行
- 以下のコマンドを実行し、CPUマイニングを実行します。
コマンドプロンプト
// マイニング実行コマンドの例
$ /opt/cpuminer/minerd -a yescrypt -o stratum+tcp://zny.mofumofu.me:3332 -u Ztd9eoSVaX4pehagt5o9PRDnCYRAadbgxn
$ /opt/cpuminer/minerd -a yescrypt -o stratum+tcp://zny.mofumofu.me:3332 -u {この部分にご自身のBitZeny受信アドレスを設定}
- 今回はオンラインウォレットの「BitZeny WALLET」を利用しました。
- ウォレットをまだお持ちでない方は、「BitZeny WALLET」の「新規登録」リンクから新規登録をおこない、ウォレット内の「受信アドレス」からご自身の「BitZeny受信アドレス」をコピーしてお使いください。
- マイニングプールについては、登録不要で使えるBitZenyのマイニングプール(NOMP:Node Open Mining Portal)である「mofumofu.me」を利用しています。
8. CPUマイニング成功時のログ
- CPUマイニングに成功すると、「(yay!!!)」とログに出力されるかと思います。
- ただし、マイニングに成功してもすぐにBitZeny受信アドレスに受け取り反映されるわけではありません。受け取り反映されるルールについては、利用するマイニングプールのルールによって異なります。Jetson NanoのCPU処理能力であれば、数時間から半日程度、気長に待ってみましょう。
マイニングプールの反映ルール例
最低支払額: 0.1 ZNY
支払間隔: 10分
使用手数料: 0.5%
支払方法: PROP
8. minerdの自動起動設定ファイルの新規作成
- 手動でCPUマイニングを起動するのも面倒かと思いますので、systemdを利用した自動起動設定ファイルを新規作成します。
コマンドプロンプト
// 自動起動設定ファイルの新規作成
$ sudo vi /opt/minerd.service
/opt/minerd.serviceファイル内容
[Unit]
Description=minerd is executed and resides at OS startup.
After=network.target
[Service]
WorkingDirectory=/opt/cpuminer
ExecStart=/opt/cpuminer/minerd -a yescrypt -o stratum+tcp://zny.mofumofu.me:3332 -u Ztd9eoSVaX4pehagt5o9PRDnCYRAadbgxn.JetsonNano -t 3
Restart=always
Type=simple
TimeoutStopSec=5
StandardOutput=append:/tmp/minerd.log
StandardError=append:/tmp/minerd.log
[Install]
WantedBy=multi-user.target
9. minerdの起動確認&自動起動有効化
- 作成した自動起動設定ファイルを所定のディレクトリに移動し、minerdの起動確認および有効化をおこないます。
コマンドプロンプト
// 自動起動設定ファイルを所定ディレクトリに移動
$ sudo mv /opt/minerd.service /etc/systemd/system/
// minerdの起動
$ sudo systemctl start minerd.service
// 起動状況確認(設定内容が正しいか動作確認します)
$ sudo systemctl status minerd.service
// minerdの自動起動有効化(再起動後に自動起動するようになります)
$ sudo systemctl enable minerd.service
// OS再起動
$ sudo shutdown -r now
// OS再起動後の実行ログ確認(残念ながらsystemdのバージョンが240に達していないため、ログは出力されていないようです。systemdのバージョンアップを待ちましょう。)
$ tail -f /tmp/minerd.log
- 補足:minerd.serviceファイルの設定変更を反映する際は
sudo systemctl daemon-reload
コマンドを実行して反映する必要があります。
コマンドプロンプト
// minerd.serviceの編集
$ sudo vi /etc/systemd/system/minerd.service
// 設定ファイルの更新反映
$ sudo systemctl daemon-reload
// minerdのリスタート
$ sudo systemctl restart minerd.service
// 起動状況確認(設定内容が正しいか動作確認します)
$ sudo systemctl status minerd.service
10. おわりに
いかがでしたでしょうか?意外と簡単にCPUマイニングを始めることができたのではないかなと思います。
今回の記事が、みなさまの学習の参考になれば幸いです。
2019/12/15 TAKAHIRO NISHIZONO