NEMスーパーノード構築 第1回(インフラ準備編)
NEMのスーパーノードを構築するにあたって、インフラの準備をする必要があります。
私の場合、最小構成のインフラで構築を行っていますが、今後のトランザクションの増加やクライアントの数の増加を考えた場合、サーバーには少し余力を残した状態で構築するのが望ましいです。
1. スーパーノードのハードウェア必要要件
最も重要な事は、スーパーノードとして開始するために必要な最小限のXEMバランスを確保する事です。少なくとも以下のハードウェア条件を満たす必要があり、自宅サーバもしくはVPSのレンタルをする必要があります。
項目 | 要求 |
RAM | 最低限1GB推奨 (最低限NISには768MB、サーバントには128MB) |
CPU | 1GHz以上のシングルコアかそれ以上推奨 |
アップストリーム | 少なくとも5Mbps |
ポート開放 | FireWall及びルータ上のTCP 7778,7880,7890ポートのインバウンドとアウトバウンドを開放 |
追記(2017/12/28):
現状1GBのRAMの運用は高トランザクションの負荷を処理できません。この文書を追記した時点での最低推奨値は、物理RAM 4GB(NIS:2,800MB, Servant 256MB)です。
追記(2018/7/28):
現状1GBのRAMの運用は高トランザクションの負荷を処理できません。この文書を追記した時点での最低推奨値は、物理RAM 4GB(NIS:2,500MB, Servant 256MB)です。
追記(2018/11/6):
ポート開放欄で、7880と記述すべきところが、7808と誤った値が記述されていましたので修正。
2. スーパーノードの実行パフォーマンス必要要件
スーパーノードは、6時間毎に任意のタイミングで下記のテスト項目のチェックが行われています。1日にすると4回のラウンドテストが行われます。
ラウンドテストは、ラウンドNo.が4の倍数+1で始まり、それを含めた計4個のラウンドテスト(24時間)に合格した場合に、スーパーノード報酬を得る事ができます。
テスト 項目 |
要求 | 備考 |
帯域幅 | 5000kbps以上 | |
チェーンの高さ | 同期されている事 | 4ブロック以上遅れてはいけない。 |
チェーン部分 | 正確なチェーンの一部50ブロックをアップロードする事 | ノードからダウンロードされたHashは、正確性の基準となるチェーンと比較されます。 |
計算速度 | 2,000hash/s以上 | 32byteのシードを10,000回繰り返し計算し、スピード及び精度が測定されます。 |
保証金 | 3,000,000XEM以上 | 3,000,000XEMを保有するアカウントのデリゲートキーで起動する必要があります。 |
NISのバージョン | 最新 | 管理者はすぐにアップデートすべきです。 |
Ping | 200ms以下 | 他の全てのノードで計測されたPing性能のうち、少なくとも1つは試験に合格しなければいけません。 |
応答性 | 連続10回のブロックチェーンの高さに応答できる事 | 少なくとも9回応答し、全体で1秒以下であれば合格する事ができる。 |
3. スーパーノードラウンドテストの実例(今回構築したサーバ)
以下が 2. で述べたテスト結果となります。このページは、NEM Node Rewards にアクセスし、自分のノードを選択する事で閲覧可能です。スーパーノードを立てた際にはここの情報を見て、きちんと動作しているのかチェックする必要があります。
ここには、今までテストを行い判定された結果が表示されています。新しい結果が上に表示され最大で過去5回分を閲覧できます。
ここでの1日は、4の倍数+1 から始まる4回分ですので、Round1665〜1668迄がスーパーノード報酬の対象となります。画像ではラウンド1667と1668はまだ結果がでていませんが、この後PASSしておりますので、下記の様にスーパーノード報酬が通常のTransfer Transactionとして入金されています。
メッセージの部分に、"Node rewards payout: round 1665-1668"と書かれていますので、分かりやすいかと思います。
スーパーノード報酬は、NEM Blockchain Explorer v3.2 にアクセスし、送り主及び宛先で検索を行っても表示されないようになっています。
上記サイトにて確認する為には、ハッシュ値で検索しなければ表示されません。
追記(2017/2/13):こちらのサイトでは検索が出来ます→ NEM - BlockChain Explorer
4. スーパーノードのVPSをレンタルしてみた
今回私がレンタルしたサーバを紹介していきます。実運用ではなくテスト運用という理由から、初期費用が発生ぜず月額料金が安いサーバを選びました。もちろん、業界最低スペッククラスです。
DTI ServersMan@VPS Entry メモリ1GB HDD 50GB構成を選びました。
手数料がありませんので月額467円と非常に安く、スーパーノード報酬が2回得られればサーバレンタル料は回収出来るという訳です。
※ こちらのEntryタイプを選択し、ラウンドテストが時々通らない事例報告もあります。実運用される方は注意して下さい。
またサーバのOSとしては、スーパーノード構築で実績の多い Ubuntu(今回は Ubuntsu 14.04 LTS (64bit))を利用する事にしました。
シンプルセットという事もあり、実質初回ログイン時にある程度メモリーを消費してしまうプログラムはhttpdぐらいしか動作しておりませんでした。
この様な初期状態のOSの場合、不必要なプログラムを停止する作業の工数が減り非常に楽な作業となりました。
追記(2017/12/28):
現在のサーバ運用の為の最低メモリーは、4GBとなっております。注意してください。
次回は、OSの設定もしくはスーパーノードの設定を行っていきたいと思います。