Raspberry Piで自分専用NKM (New Kind of Miner)を作ろう!

katakoto
Katakoto Tech
Published in
12 min readSep 9, 2018

This original article created by Christian Busch.
Thank you for letting me translate and publish this great instruction in Japanese.

NKN (New Kind of Network)はおそらく2018年で最もエキサイティングなブロックチェーン・プロジェクトです。NKNはネットワーク全体のレイヤーをブロックチェーン化して、コンピューティングとストレージに加え、インターネットの構造の3本目の柱に到達しようとしています。

マイニングの観点から言えば、NKNトークンは、あなたのインターネットのバンド帯域幅をネットワークに提供する事によって稼ぐ事が可能なのです。他の多くのトークンとは対照的に、いかなる大きなサーバーファームも、大きなストレージも必要ありません。- 単なるOSが入ったネットワーク・デバイスとちょっとした設定があればよいのです。NKNマイニング紹介ビデオは、これからマイニングを始めるのにちょうど良いスタート・ポイントです。

日本語訳付きはこちら

さて、ノードを走らせるのに重要な事は何でしょう?明らかに、大きな計算処理能力は必要なく、NKNブロックチェーンをデバイスに保管するためのほんの少しのスペースがあれば良いのです。―それならば、Raspberry Piのような低消費電力コンピューターを使ってみるのはどうでしょう?このチュートリアルでは、どうやってRaspberry piをNKM(New Kind of Miner)、新しいタイプのマイナーに変身させるかを解説しています。

必要なモノ

  • ネットワーク・インターフェイス付きのRaspberry pi (Raspberry pi 1 Model Bかそれ以上)もしくは適切なMicro SD Card (16GB+)付きのRaspberry pi zero W
  • SSHターミナル付きのパーソナル・コンピューター(Windowsの場合は、Putty https://www.putty.org/ を推奨)
  • マイクロSDカードをRaspian Imageでフォーマットする方法
    (推奨:Etcher https://etcher.io/)
  • インターネット接続

さあ始めよう

マイナーの設定を始める前に、Raspberry piの準備をしなければいけません。次のパートでは、どうやってデバイスを最新のRaspberry OS (Raspian) で動かし、SSHを通して接続する事ができるような必要な設定を有効にするかを説明します。

1. Raspian OSをインストール

Raspberry piにOSをインストールするのはとても簡単です。まず最初に、OSイメージをダウンロードします。このチュートリアルでは、最新のRaspian Stretch Liteイメージを使用しています。こちらで入手できます。
https://www.raspberrypi.org/downloads/raspbian/
好きなディレクトリに保管しましょう。

ダウンロードが終わったら、マイクロSDカードをコンピューターに挿入して、フォーマット・ソフトウェアを起動します。ダウンロードしたイメージを選択し、マイクロSDカードに書き込み、それが終わるまで待ちましょう。書き込みが終わるとEtcherのようないくつかのソフトウェアは自動的にマイクロSDカードをイジェクトします。まだ作業が終わっていませんので、そのような場合は再度、マイクロSDカードを挿入する必要があります。

もしすべてが順調に終われば、エクスプローラー上に“Boot”という名前の外部デバイスが表示されます。Raspberry piのモデルに応じて、その後の簡単なインストール手順を続行します。

2a. Raspberry pi 1 Model B(とそれ以上)での簡単なインストール手順

おそらく、このチュートリアルで最も簡単なステップです。Raspberry pi 1 Model Bかそれ以上なら、“ssh”(拡張子なし)という名前の空のファイルをマイクロSDカードにコピーするだけです。
もし、Windows上でファイル拡張子がないファイルをうまく作れない場合は、このサイトを参考にしてください。https://www.techwalla.com/articles/how-to-create-a-file-without-an-extension-with-notepad.

2b. Raspberry pi zero W での簡単なインストール手順

Raspberry pi zero Wでの簡単なインストール手順も、Wifi設定のための追加ファイル以外は基本的には他のRaspberryと同じです。

  • “ssh”(拡張子なし)という名前の空のファイル
  • 下記のコードを含んだ“wpa_supplicant.conf”という名前のファイル。country code、ssidそしてpskを必要に応じて変更する。
country=DEctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdevupdate_config=1network={ssid="SSID_NAME"scan_ssid=1psk="PASSWORD"key_mgmt=WPA-PSK}

さて、それでは準備ができましたので始めましょう!PCから安全にマイクロSDカードをイジェクトし、Raspberry piに挿入します。電源を入れ、起動するのに約1分間ほど待ちましょう。下記の方法でSSHソフトウェアを通じて接続しアクセスできます。

Host: raspberrypi
User: pi
Password: raspberry

うまくいきましたか?オッケー。それではついにマイナーの設定に取りかかります!

Raspberry piでのインストール手順

もし上記の手順をスキップしたなら、Raspberry piにSSHを通じて接続している事、Rasberry pi ホーム・ディレクトリーに変更されている事を確認してください。簡単に言うと、もしあなたの画面に下記が表示されているなら大丈夫です。☺

pi@raspberrypi:~ $

3. 最新バージョンGolangのインストール

デフォルトのRaspianでは、古いバージョンのGoがインストールされています。 — 古すぎるためNKNで使用する事ができません。そのため、最初に最新バージョンをインストールする必要があります。下記のラインをターミナルにコピー&ペーストします:

最新バージョンのGoを検索し、ダウンロードパスを“url”に保存:

url=`curl https://golang.org/dl/ | grep armv6l | sort --version-sort | tail -1 | grep -o -E https://dl.google.com/go/go[0-9]+\.[0-9]+((\.[0-9]+)?).linux-armv6l.tar.gz`

ファイルをダウンロード:

wget ${url}

go environmentを/usr/local に展開:

sudo tar -C /usr/local -xvf `echo ${url} | cut -d '/' -f5`

最後に環境変数を正しく設定:

cat >> ~/.bashrc << 'EOF'> export GOPATH=$HOME/go> export PATH=/usr/local/go/bin:$PATH:$GOPATH/bin> EOF

やりましたね!これであとはbashを下記のようにre-sourceするだけです。

source ~/.bashrc

これで準備は完了のはずです!下記をタイピングして確認しましょう。

go version

これでRaspberry piは1.11もしくはそれ以上のバージョンのGoがインストールされているはずです。これによりNKNプログラムをダウンロード、ビルドできるようになりました。

4. NKNノードをダウンロード、ビルドする

執筆段階では、NKNはあらかじめ定義されたフォルダー構造内でビルドされる必要があります。さっそく、この長いコマンドで一足とびに作成してしまいましょう:

mkdir ~/go && mkdir ~/go/src && mkdir ~/go/src/github.com && mkdir ~/go/src/github.com/nknorg && cd ~/go/src/github.com/nknorg

ここからは、NKNをビルドするために公式ガイドに従いましょう。https://github.com/nknorg/nkn

NKNレポジトリーのクローン作成:

git clone https://github.com/nknorg/nkn.git

新しいフォルダにディレクトリを変更:

cd nkn

glideパッケージ管理をインストール:

make glide

ビルドの依存関係をダウンロード

make vendor

makeでソースコードをビルド

make

簡単、でしょ?今やメインの2つの実行可能ファイル nkncnknd がビルドされ、マイニング作業ができる準備が整いました!

6.Testnet設定とウォレット作成

ノードをスタートさせる前に、正しいコンフィグ・ファイルをリネームし、ウォレットを作成しなければなりません。

NKNノードのコンフィギュレーションは config.jsonに保存されています。ありがたい事に、NKNは既にテストネット用コンフィグ・ファイルを用意してくれていますので、リネームするだけです。こうタイプするだけです。

mv config.testnet.json config.json

これで完了!

もしNKN用の新しいウォレットを作成したい場合は、下記のようにタイプします:

./nknc wallet -c

パスワードを選んで、全てのデータを安全な場所に保存します。

もし既に他のマシンでウォレットを持っていた場合は、wallet.dat を sftpクライアント (sshと同じ資格情報)で/home/pi/go/src/github.com/nknorg/nkn にコピーするだけです。

7. テスト・マイニング

おお!やりましたね!これで全て準備完了でマイニングをスタートできます!ノードを下記のようにスタートさせましょう。

./nknd -p YOUR_WALLET_PASSWORD

そしてノードが正常にネットワークに接続しているかテストします。もしうまくいかない場合は、おそらくルーターの30000から30003へのポート転送設定を忘れています。この設定はお使いのモデルの仕様によりますので手始めにhttps://portforward.com/ をご確認ください。

ノードが適切に接続された場合、最後にやるべきことが一つだけ: NKMを完璧なプラグ&プレイ機に設定しましょう。 — クラッシュによる再起動やシステム起動時に自動スタートさせるための設定

8. プラグ&プレイNKM

ホーム・ディレクトリに切り替える

cd ~

そしてnanoで “nkn.service”という名前の新しいファイルを開く

nano nkn.service

下記の内容をコピー&ペースト。your wallet passwordを置き換えるのを忘れないように。

[Unit]
Description=nkn
[Service]
User=pi
WorkingDirectory=/home/pi/go/src/github.com/nknorg/nkn
ExecStart=/home/pi/go/src/github.com/nknorg/nkn/nknd --no-check-port -p YOUR_WALLET_PASSWORD'
Restart=always
RestartSec=300
[Install]
WantedBy=default.target

これにより自動的にノードをスタートさせ、予期せぬ終了時には5分後に再起動させるプロセスを作成するサービスファイルが作られる。

このファイルをrootで /etc/systemd/system にコピーする:

sudo cp nkn.service /etc/systemd/system/nkn.service

そしていよいよグランドフィナーレです。サービスをブート時に起動させます。

sudo systemctl enable nkn.service

デバイスを再起動して完了です!

sudo reboot

さあ、リラックスして自動マイナー機を楽しみましょう — まさに本物のNew Kind of Minerを!

この記事に関して何か質問がある場合は、遠慮せずに尋ねてください。このチュートリアルは規則的に更新・追記していきます。NKNディスコード・チャンネル(https://discord.gg/c7mTynX — #ChrisT)やTwitter(@ChristianoBusch)もしくはNKNテレグラム・チャンネル(#ChrisT)で連絡が可能です。

Home: https://nkn.org/

Email: contact@nkn.org

Telegram: https://t.me/nknorg

Twitter: https://twitter.com/NKN_ORG

Medium: https://medium.com/nknetwork

Linkedin: https://www.linkedin.com/company/nknetwork/

Github: https://github.com/nknorg

Reddit:https://www.reddit.com/r/nknblockchain

Discord: https://discord.gg/c7mTynX

--

--

katakoto
Katakoto Tech

Hello, world! Katakoto means "Talking like a baby" in Japanese. I've just started talking and exploring new world like an unconditioned baby seeing the world!