nemには実際に値段の付いているxemを扱うメインネットと、メインネットと同等のネットワークですが、nem自体やnemアプリケーションの実験、テスト、開発用として無価値とされるxemが流通するテストネットが存在します。

アプリケーション開発においていきなりメインネットのxemを使うとなると、意図しないバグなどでせっかく仕入れたxemを吹き飛ばしかねませんし、バグのたびにxemを買い集めていたら資金がなくなってしまいます。

そこでテストネットのxemを利用するわけです。

もちろんテストネットでも既存で立ち上がっているノードを使えばNIS APIを利用できますが、テストネットのノードはメインネットとくらべてとても少なく、承認に時間がかかったりする場合があるので、自分で立てる選択をする必要があるかもしれません。

すでに公式にはこのような記事があります。

ちょっと内容が古いので、すでに更新されなくなったNCC(フルノードが必要なウォレットみたいなものです)の画像があったりしますが、ノードを立ち上げるという部分だけみれば手順は同じです。

ダウンロードと設定

アップされている中で必要なバージョンのアーカイブをダウンロードしてください。

nem-nis-testnet-01

特に理由がなければ最新版がよいでしょう。(現時点ではnis-0.6.95.tgz)

アーカイブを展開したら、nis/config.propertiesを開いて編集します。

ファイル内にnem.network = mainnetの記述があるので、nem.network = testnetに書き換えます。

nem-nis-testnet-02

あとはmacOSやLinuxならnix.runNis.shのシェルスクリプトを、WindowsならrunNis.batのバッチファイルで立ち上がります。

チェーン情報のダウンロードが必要なのでしばらく待ちましょう。

API自体は数分すれば応答可能になります(チェーン情報が足りなければ最新の情報は返してくれませんが)

最新のテストネット版を手に入れる

メインネット版にリリースされるよりも前に、テストネット版でより新しいバージョンのNISが公開されます。

beta-testnetというディレクトリがあるので、その中にアップロードされています。

アーカイブの内容は同じなので、同様にノードの立ち上げをすればよいです。

こちらからダウンロードした場合は、最初からnem.network = testnetが指定されているので、立ち上げるだけでテストネットのノードとなります。

ローカルノードについて

ローカルで動いているノードに対してのみ許可されているAPIというのがあります。

  • /account/generate
  • /local/account/transfers/all
  • /local/account/transfers/incoming
  • /local/account/transfers/outgoing
  • /local/chain/blocks-after
  • /node/boot
  • /shutdown
  • /transaction/prepare-announce

これらをリモートノードで呼ぶと、remote 123.45.67.89 attempted to call local /node/bootみたいなエラーがでます(たしか)

なんらかの事情でトランザクションの暗号化が実施できない環境でも、秘密鍵さえあれば/transaction/prepare-announceを使ってトランザクションを発信できます。

/account/generateはランダムでキーペアを生成してくれたり、/shutdownはNISを停止させることができます。

ちょっとデンジャーなAPIですが、ローカルからのみ利用できるようになっています。

パッと確認したいときのためにチートシートっぽいものも作ってますのでよければ参考に。

スーパーノードでなくてもネットワーク貢献にはなる

ちなみにテストネットだろうとメインネットだろうとノードを立ち上げれば、それはネットワークの安定性への貢献になります。

スーパーノードとの違いは、財団からスーパーノード運用報酬が貰える基準にあるかないかの差。

スーパーノードが「仕様」のように語られることを見かけますが、スーパーノード報酬は財団からネットワークへの貢献に対してのインセンティブが貰える「制度」です。

まず財団への申請が必要ですし、財団からのノードの監視(?)にパスして初めて、保有者が申請したアドレスに対して報酬が送られます(たぶん、そんな感じの流れ)

だからnemの「仕様」ではなく「制度」なのです。

テストネットはメインネットに比べると圧倒的にノード数が少ないため、結構承認までの時間がかかることがあります。

テストネットでノードを立ち上げる事自体になんのリターンがないのでしょうがないことですが、いかんせんアプリ開発などでなかなか承認されない、など待たされることが多くなりがちです。

最近はハッカソンのチームが建てたらしきノードを見かけますが、それでも少ないです。

もし余裕があれば、ローカルノードを必要としない開発を行う場合でも、開発を行う間くらいでよいので、自前のノードを立ち上げて、少しでもテストネットのネットワークが増強されることに貢献できると良いかと思います。

(もっともスーパーノードのように安定したノードを提供していれば若干の報酬が財団から出る、とかそうゆう制度があったらいいんですが。アプリ開発が盛んになればそうゆうことも見当されるかな…)

なお、テストネットのxemはフォーセットから入手できます。

もし数千xemなど大きな量が欲しい場合はフォーラムで書き込むと送ってくれます。

また、もし使わなくなったテストネットxemがありましたら、各所フォーセットのアドレスにでも送ってくれると、他に使いたいひとのためになりますので、ご協力お願いいたします。