mijin BaaS 初期設定手順
環境とファイルの確認
mijin を起動するための推奨スペックは以下になります。
- CPU:4コア以上
- メモリ:8GB以上
- ハードディス:250GB以上
- ノード数:5台以上
mijin インストール時に以下ファイルがサーバ内に格納されています。サーバにログインし、ファイルが格納されていることを確認ください。
- serverjars ... mijin プログラムファイル
- nemesis-mijinnet.bin ... 最初にブロックを生成するアカウントの設定ファイル(編集不可)
- config-user.properties ... ノードごとの設定ファイル(編集可)
- peers-config_mijinnet.json ... 各ノードを接続する設定ファイル(編集可)
- startnem.sh ... mijin 起動ファイル(編集不可)
- nemesis-accounts.txt ... nemesis-mijinnet.bin に設定されているアカウントになります。アドレス、公開鍵、秘密鍵の情報になりますので、取り扱いに注意ください。
サーバ環境の設定
mijin を起動するためにデフォルトで以下ポートを開放しております。
- 7895 ... mijin用
- 7778 ... WebSocket用
初期アカウントの変更について
各ノードごとにアカウントが設定されています。このアカウントを第三者が知り得ない状態にするために、起動している mijin のノードの起動アカウントの変更および初期アカウントから別アカウントに xem を送金して利用者のみが管理するプライベートブロックチェーン環境にします。
全体の大まかな流れは下記のようになります。
- アカウントを新規に作成
- 作成したアカウントに初期アカウントが所持するすべての xem を送金
- ノードを停止し、xemを送金したアカウントを起動アカウントに変更し mijin を起動
- 初期アカウントで起動しているノードを1台だけ残して、他のノードはすべて新規アカウントに変更
- ※ 新規アカウントに importance が反映されるまで 1日待つ
- 新規アカウントに importance が反映後、初期アカウントのノードを新規アカウントに変更する
アカウント変更手順
1. アカウントを生成
以下起動中のノードの host からアカウントを発行してください。アカウントはいくつでも発行できますが、1度発行されたアカウントのアドレス・公開鍵・秘密鍵情報は mijin 上には保持されませんので、手元の環境にメモするなどしておいてください。
2. 初期アカウントの所持 xem を確認
初期アカウント(mijin起動で使用しているアカウント以外のアカウント)の所持 xem を確認します。
3. 初期アカウントから作成したアカウントに xem を送金
初期アカウントから作成したアカウントに所持 xem を送金します。
4. 送金がブロックチェーンに書き込まれたことを確認
アカウントへの送金されたことおよび初期アカウントから xem がなくなったことを確認します。
5. config-user.properties を編集
以下箇所を編集します。
// xem を送金したアカウントの秘密鍵を記入 nis.bootKey = 56f3366cce8c643cbfbd4884ad9ed231e58915e64998ed667edcaf2ad05816cd
6. peers-config_mijinnet.json を編集
起動しているノードからファイルをダウンロードし、変更するノードの public-key に nis.bootKey に設定したアカウントの公開鍵を記入します。
{ "_info": "this file contains a list of all trusted peers and can be shared", "knownPeers": [ { "endpoint": { "host": "27.133.131.154", "port": 7895, "protocol": "http" }, "identity": { "name": "mijin01", "public-key": "442159366e13c9b899e53d4f0b64e6139910a6679fc30d6941e234de13f587e5" } } { "endpoint": { "host": "27.133.154.6", "port": 7895, "protocol": "http" }, "identity": { "name": "mijin02", "public-key": "f7321ebe78dc09dac511893984ac1e194dfcffa3c3c3224192156ee94c304780" } } . . . ] }
7. ファイルをアップロード・mijin を再起動
編集した下記ファイルおよび nemesis-mijinnet.bin ファイルをアカウントを変更するノードにアップロードし、mijin を再起動します。
- peers-config_mijinnet.json
- config-user.properties
- nemesis-mijinnet.bin
再起動は以下手順で行います。
$ ps aux | grep java
root 14925 2.0 82.3 8315404 837156 pts/2 Sl+ 18:20 4:53 java -Xms6G -Xmx6G -XX:+PrintGC -XX:+PrintGCDateStamps -Xloggc:./gc.txt -cp .:./serverjars/* org.nem.deploy.CommonStarter
root 15227 0.0 0.0 9032 660 pts/0 S+ 22:20 0:00 grep --color=auto java
上記の場合、14925 が該当
// プロセス番号を指定し停止
$ kill -9 プロセス番号
// mijin 再起動
$ screen -S mijin -d -m /home/[アカウント名]/mijin/startnem.sh
または
$ nohup ./startnem.sh &
8. mijin の起動確認
起動させた mijin の状態を確認します。再起動時に、保持しているハッシュDBを読み取りメモリにアクティブなアドレス等を記録するため、起動に時間がかかる(数分ほど)場合があります。
9. ファイルを削除
起動した mijin 上にあるノードから下記ファイルをバックアップを取り削除します。
- config-user.properties
- nemesis-mijinnet.bin
10. 同様の手順を他のノードにも実施
上記 1.〜9. の手順を各ノードに対して実施します(1台だけ初期起動のアカウントを残します)。
11. 設定したアカウントの importances を確認
新規に設定したアカウントの重要度(ブロックをチェーンにつなぐための権限)を確認します。新規で作成したアカウントに xem を送金後、重要度に反映されるまでは 1日かかります。
12. 残りのノードを新規アカウントに移行
新規で設定したアカウントの "importance" の isSet が 1 になったら残りのノードを新規アカウントに変更します。変更手順は上記と同様です。
残っている初期アカウントから他のアカウントへ xem 送金
初期アカウントで、xem を所持したままになっているアカウントについて、他のアカウントへ xem を送金し、初期アカウントから xem をなくします。それにより、初期アカウントの不正利用を防ぎます。
- 初期アカウントから xem をなくす
- アカウントの変更後トランザクション処理が正常に行われているかどうかの確認
以下手順になります。
1. 送金先アカウントを生成
2. 送金元アカウントの所持 xem を確認
送金元アカウントの所持 xem を確認します。
3. 作成したアカウントに xem を送金
4. アカウントの所持 xem を確認
アカウントの所持 xem を確認し送金されたことを確認します。
上記が完了すると、nemesis-accounts.txt のアカウントから xem がなくなり、初期アカウントは xem を持たないただのアカウントになります。