AMB-NET・マスターノード

AMB - Apolloマスターノードの設定手順(AWS編)

更新日:

この記事では、Amazon Web Service(AWS)を使ったAmbrosusマスターノード(アポロ)のオンボーディング手順を説明します。

AWSの利用、ドメインの登録にはお金がかかります。

また、マスターノードの適切な設定、維持、管理、ウォレットやサーバーの秘密鍵の安全な管理は自己責任で行ってください。何があってもこちらでは責任が取れませんのでご了承ください。

注意:この記事ではアポロの設定方法を説明します。アトラスの設定方法はこちら

事前準備

自分がステークする分のAMBと、それとは別に最低110AMB、さらに手数料分のETHが必要です。

110AMBの内、100AMBはブリッジ1回分の手数料、10AMBは報酬発生前のスマートコントラクトのコールに必要になります。例えばオメガなら最低75110AMBは必要になります。ブリッジを1回目は少額で試す場合など、複数回使うのであれば、使用回数x100AMBがさらに必要になります。

つまり、ブリッジを利用して自分のメインネットアドレスに送るべきAMBの最低枚数は、オメガなら75010枚、シグマなら30010枚、ゼータなら10010枚です。それとは別にブリッジの手数料1回100AMBと、さらにETHが必要になります。

ETHの手数料はネットワークの混雑などにより変動するのでご注意ください。

マスターノードの設定には、Metamask(メタマスク)が必要です。

MyEtherWalletなどを使っている場合は、そのウォレットの秘密鍵をMetamaskにインポートしてください。秘密鍵はマスターノードのセットアップ時に入力が必要になるので、秘密鍵を取り出すことができないハードウォレット(LedgerNanoやTrezorなど)は使えません。この秘密鍵は安全に管理し、絶対に誰にも教えないようにしてください。

複数のノードを建てる場合は、ノード数分のMetamaskウォレットが必要になります。同じウォレットアドレスから複数のノードは建てられません。

この記事を読んで分からないことがあれば、日本語テレグラムでご確認ください。

AWSへの登録、ログイン、地域設定

こちらからAWSに登録します。

登録の流れは、全てAWSの公式サイトのこちらのページに分かりやすく載っています。

AWSにログインしたら、まずは右上のタブでサーバーの地域を選択します。

地域はそれぞれの好みで選べば良いでしょう。どこの地域を選んでもマスターノードを稼働できます。

地域を選んだらEC2をクリックしてください。EC2をクリックしてから地域を変更することも可能です。

インスタンスの作成

マスターノードを稼働するサーバーをセットアップしていきます。

「インスタンスの作成」をクリックします。

 

マーケットプレイスには一般の人が作成したマシンイメージも混ざっているので、Ubuntu公式(Canocical Group Limited)の18.04を選択。

「Continue」をクリックして次に進みます。

インスタンスタイプは最低でもt3.small以上のスペックを選択し、「次の手順: インスタンスの詳細の設定」ボタンをクリックします。アトラスもアポロもメモリ1GBでは足りません。最低2GB以上を選択しましょう。アポロの場合、t3.medium以上を選択している人も多くいます。スペックによって料金が異なるので注意してください。

削除保護を有効化すると、AWSのログイン画面で誤ってインスタンスを削除してしまうリスクを減らせます。

ボリュームのサイズを増やします。デフォルトは8GBですが、今後しばらく増やさなくても良いように、ここでは50GBを設定しています。自分でディスクサイズを適宜調整できる方は、はじめはもっと少なくても大丈夫かもしれません。アポロの場合、アトラスと違ってそこまで大きなディスクサイズは必要にならないと思いますが、ある程度余裕をもたせておいた方が良いでしょう。サイズによって当然料金が異なります。

ボリュームタイプは凡用SSD(gp2)が無難でしょう。マグネティック(HDD)よりコストは大きくなります。

「タグの追加」をクリック。

自分が分かればなんでもOKです(この手順は必須ではありません)。

後でいくらでも変えられるので、とりあえず適当に決めて先に進みましょう。セキュリティグループの設定は画像の通りにしてください(画像をクリックで拡大)。

「新しいセキュリティグループを作成する」を選択します。アポロとアトラスのセキュリティグループの設定はそれぞれ異なります。

セキュリティグループ名と説明は、自分で分かれば何でも良いです。参考までに、ここでは以下のようにしています。

セキュリティグループ名: Apollo security group (任意)

説明: Security group for Ambrosus Apollo MasterNode (任意)

画像の通りに入力したら、「確認と作成」をクリックします。

入力に間違いがなければ、起動しましょう。

注意

この部分は、混乱を避けるためにあえてアトラス向けのガイドと同じにしています。以下ではキーペアの名前を「aws_atlas」にしていますが、アポロの場合でもこれで問題ありません。意味が分からない方は、以下の通りaws_atlasとして先に進めてください。

自分のPCからインスタンス(サーバー)に遠隔でアクセスするための秘密鍵と公開鍵を作成します。2つ目以降のアトラスを設定する場合は、既存のキーペア(1つ目のアトラス設定の時にこの画面で作成したキーペア)を使用するのでも構いません。

キーペア名は分かりやすければ何でも大丈夫です。ここでは「aws_atlas」としました。以下の説明では「aws_atlas」というキーペア名を前提にしていますが、違う名前にした場合は適宜読み替えてください。

キーペア名を入力したら、秘密鍵ファイルをダウンロードします。「キーペア名.pem」というファイル名になっているはずです。

このpemファイルは後で使うので、保存場所を覚えていてください

固定IPアドレスの割り当て

アトラスではこの手順の前にドメインの取得を行いますが、アポロではドメインの取得は必要ありません。ただしAWSの場合、アポロでも固定IPアドレスの設定が必要になります。

固定IPアドレスの設定

AWSの場合、初期設定のままではIPアドレスが固定されていません。これではサーバー(インスタンス)をシャットダウンするたびにIPアドレスが変わってしまいます。

AWSで固定IPアドレスを設定するには、以下の方法で行います。

EC2ダッシュボード(サイドバー)を下にスクロールし、「ネットワーク & セキュリティ」の項目にある「Elastic IP」をクリックします。

「新しいアドレスの割り当て」をクリック。

このIPアドレス(Elastic IP)は後で使うので、どこか分かりやすいところにメモしておいてください

固定IPアドレス(Elastic IP)が取得できたので、次にこのIPアドレスを自分のインスタンス(サーバー)に紐づけます。「閉じる」をクリックすると先ほどの「Elastic IP」のトップ画面に戻ります。

「アクション」タブから「アドレスの関連付け」をクリック。

これでインスタンスを再起動したりしてもIPアドレスが変わらないようになりました。Elastic IPは、インスタンスに関連付けられている限り利用料金は発生しないはずです。

インスタンス(サーバー)へのSSH接続

起動したインスタンスに自分のPCから接続して、マスターノードのソフトウェアを実行していきます。ここでは、まずは接続の部分を説明します。

以下の手順に進む前に、インスタンスがちゃんと起動している事を確認しましょう。

AWSのEC2ダッシュボードでインスタンスの状態を確認しましょう。上の画像のように、2/2のチェック〜と出ていればOKです。インスタンスが「起動(running)」になっているのにステータスが「2/2のチェック〜」となっていない場合は、そうなるまで数分間待ちましょう。

インスタンスが問題なく起動できている事が確認できたら、SSH接続の準備をしていきます。

この手順のみ、Windows、MacやLinuxなど、使用しているPCのOS(オペレーティングシステム)によって作業が違います。

共通の手順

WindowsでもMacでも必要な手順になります。

まずは、AWSでインスタンスを作成した時にダウンロードした、秘密鍵ファイル(pemファイル)の保存場所を確認しておきましょう。通常は「ダウンロード」ディレクトリ(フォルダ)にあると思います。

次にSSH接続の準備をします。先ほど設定した固定IPアドレスを忘れてしまった場合は、AWSのEC2ダッシュボードに戻り、固定IPアドレス(Elastic IP)を確認しておきましょう。

AWSのEC2ダッシュボードで、「インスタンス」のページを開きます。上記画像の通り、「○○.○○.○○.○○」のような数字とドットの並びがあるので、それを確認しておきましょう。後でこのIPアドレスを入力する場面が出てきます。

Windowsの場合

Windowsでは、Tera Termというフリーソフトを使ってSSH接続します。Puttyなど他に使い慣れているソフトがある方は、そちらで接続して下さい。

(Windows) TeraTermのインストール

Tera Termを使えば、マスターノードを稼働するVPSサーバーにSSH接続することが可能です。

こちらのページからTera Termをダウンロードします。

「ダウンロードパッケージ一覧」の下にある最新版のexeファイル(zipではなく)をダウンロードします。「teraterm-4.103.exe」のような名前のファイルです。

ダウンロードしたインストーラを起動し、Tera Termをインストールしましょう。色々と聞かれますが全てそのまま「次へ」をクリックし、インストール完了すればOKです。

(Windows) Tera TermでAWSのインスタンスに接続する

Tera Termを開くと以下の画面が自動的に開くと思います。

ホスト(T)欄に、先ほど確認したインスタンス(サーバー)の固定IPアドレス(AWSの場合Elastic IP)を入力します。

 

初回のみ上記の警告が出ます。入力したIPアドレスに間違いが無いことを確認したら画像の通りにチェックを入れ、続行をクリックします。

ユーザー名に「ubuntu」と入力します。「RSA/DSA/ECDSA/ED25519鍵を使う」にチェックを入れ、秘密鍵ファイルの場所を指定してOKをクリックします。

秘密鍵ファイルは、AWSでインスタンスを作成した際に作った場合(このページの手順通りに全て行った場合)はpemファイルです。ここではaws_atlas.pemというファイル名で作成したものです。

OKを押すと、以下の黒い画面でサーバーを操作できるようになります。

接続を切る場合は、Tera Termのメニューバーから「ファイル」→「接続断」をクリックするか、上記画面で「exit」と入力してエンターキーを押せば接続が切れます。

これは遠隔操作の接続を切るだけで、サーバーは稼働したままです。アトラスやアポロなど、マスターノードを稼働する場合は当然サーバーを稼働したままにする必要があるので、これで構いません。

Mac(Linux)の場合

MacやLinuxの場合、元々インストールされているターミナルを使ってSSH接続が可能です。

Macの場合、⌘(コマンド)とスペースキーを同時に押すとSpotlight検索が出てくるので、「terminal」と入力してリターンキーを押せばターミナルが開きます。Linuxの場合もそれぞれに応じてターミナルを開いて下さい。

(Mac & Linux) 最初の1回だけ実行すること(1度やれば、今後実行する必要はありません)

以下のコマンドを1行ずつ順番に実行します。まずは.sshディレクトリの作成と、適切なパーミッションの設定です。

$は省いてください。#以下はコメントですが、そのままコピペしても問題ありません。

$ mkdir -p ~/.ssh #.sshディレクトリを作成

$ chmod 700 ~/.ssh #パーミッションの設定

次に、AWSのインスタンスに接続するための秘密鍵ファイル(pemファイル)を.sshディレクトリに移動し、このファイルにも適切なパーミッションを設定しましょう。

ここでは、秘密鍵ファイルが「~/Downloads/aws_atlas.pem」にあるとします。ファイル名は、キーペア名をどのように入力したかで人によって違います。画像の通りに入力していれば、同じ(aws_atlas.pem)になっているはずです。

秘密鍵ファイルの名前がaws_atlas.pemと異なっている場合は、以下の「aws_atlas.pem」を自分の秘密鍵のファイル名に置き換えて実行してください。

$ mv ~/Downloads/aws_atlas.pem ~/.ssh #秘密鍵ファイルを.sshディレクトリに移動

$ chmod 600 ~/.ssh/aws_atlas.pem #パーミッションの設定

これで接続する準備が出来ました。

(Mac & Linux) 今後インスタンスに接続する時は、以下のコマンドを実行する

以下のコマンドを実行し、インスタンスにSSH接続できることを確認しましょう。

$ cd ~/.ssh #.sshディレクトリに移動

$ ssh -i aws_atlas.pem ubuntu@xx.xx.xx.xx #最初に確認したインスタンスの固定IPアドレスをxx.xx.xx.xxの代わりに入力してください

ターミナルに「Welcome to Ubuntu」などのメッセージや、サーバーの使用状況などが表示され、ubuntuを操作できるようになっているはずです。確認できたら、「exit」と入力してリターンキーを押せばSSH接続からログアウトできます

exitコマンドは遠隔操作の接続を解除するだけで、サーバーは稼働したままです。アトラスやアポロなど、マスターノードを稼働する場合は当然サーバーを稼働したままにする必要があるので、これで構いません。

インスタンス(サーバー)上で行う操作

ここではいよいよ、サーバー上でAmbrosusマスターノードのプログラムを実行していきます。

事前準備. ネイティブAMBトークンへの交換(スワップ)

AMB-NET(メインネット)でマスターノードに必要な枚数のAMBをステークするには、Ambrosusブリッジを使ってERC20のAMBからネイティブAMBに交換しておく必要があります。

最初に説明した通り、メタマスクを使って行いましょう。普段MEWなどのウォレットを使っている方でも、そのウォレットの秘密鍵をメタマスクにインポートすることが可能です。

この秘密鍵は後ほど直に入力する場面が出てきますので、いつでも確認できるようにしておいてください。また、ウォレットの秘密鍵をAmbrosusチームが聞いてくることはありません。秘密鍵は絶対に誰にも教えないようにして、安全に保管してください

自分がステークする分のAMBと、それとは別に最低110AMB、手数料としてさらにETHが必要です。

110AMBの内、100AMBはブリッジ1回分の手数料、10AMBは報酬発生前のスマートコントラクトのコールに必要になります。例えばオメガなら最低75110AMBは必要になります。ブリッジを1回目は少額で試す場合など、複数回使うのであれば、使用回数x100AMBがさらに必要になります。

つまり、ブリッジを利用して自分のメインネットアドレスに送るべきAMBの最低枚数は、オメガなら75010枚、シグマなら30010枚、ゼータなら10010枚です。それとは別にブリッジの手数料1回につき100AMBと、さらに手数料分のETHが必要になります。

必要なETHの量はネットワークの混雑などにより変動する可能性があるのでご注意ください。

Ambrosus Bridgeの使い方

操作手順1. state.jsonファイルの作成とホワイトリスト入り

現時点では、以下の手順を実行して自動生成されるファイルの内容を、Ambrosusの開発チームにメールで送って、ホワイトリストに入れてもらう必要があります。

まずインスタンス(サーバー)にSSH接続してください。

接続したら、Ubuntuのターミナルで以下を1行ずつ順番に実行します。

$は省いてください(行を区別するために付けています)。

$ wget https://nop.ambrosus.com/setup.sh

$ chmod +x setup.sh

$ sudo ./setup.sh

Ubuntuサーバー上でコマンドを実行した際、画面が止まったかのように見えることがあります。実際には裏でプログラムが動いているので、しばらく待って下さい。数分かかることもあります。

最後のコマンドを実行すると以下のような画面になり、色々質問されるので順番に答えていきましょう。

メインネットを選択しましょう。マウスではなくキーボードの↑↓キーで選択します。決定はもちろんエンターキー(リターンキー)です。

必ず上の「Input existing key manually」を選択してください。下の「Generate new key automatically」はテスト用の機能です。

自分のウォレットの秘密鍵を入力してください。メタマスクで複数のアドレスを管理している方は、AMBを保管しているアドレスの秘密鍵であることを確認しましょう。

メタマスクで自分のETHウォレットの秘密鍵(ETHアドレスではありません)を確認するには、以下の手順を実行してください。秘密鍵は通常64文字の、アルファベットと数字から成る文字列です(シードフレーズでもありませんのでご注意ください)。

・メタマスクを開いて右上の「・・・」をクリック
・Account Detailsをクリック
・Export Privatekeyをクリック
・メタマスクのパスワードを入力

Your address is:の後に表示されているアドレスが、これからAMBをステークする自分のETHアドレスと同じであることを確認してください。

画像ではアトラスを選択していますが、ここではアポロ(Apollo)を選択します。

アポロを選択すると、「Please provide the amount (in AMB) that you would like to deposit.」と聞かれます。アポロの場合、最低25万枚のステークが必要です。例えば50万枚ステークしたい場合は、500000と入力してください

IPアドレスの入力もアトラスと異なります。Please provide the IP address, which you will be using for your node:と聞かれたら、固定IPアドレスをそのまま入力してください。http://などをIPアドレスの前に付ける必要はありません

メールアドレスを入力すると、利用規約(Terms of Use)が表示されます。全て読み、同意する場合のみホワイトリストに入れます。

利用規約に同意する場合は、「I, 苗字 名前, read and agreed with the terms and conditions above.」と入力する必要があります。

コンマやドットなども正確に入力しないとエラーになるはずです。名前の部分はもちろんローマ字に置き換えます(Tanaka Tarouなど)。

上の画像のようなものが表示されるはずですので、{から}まで含めて全てコピーし、メールの本文に貼り付けてください。

これでホワイトリストに入れてもらう準備が出来ました。これと同時に、ambrosus-nopディレクトリ(フォルダ)の中のoutputディレクトリ中に、TOS.txtファイルが生成されているはずです。

このファイルをダウンロードし、メールに添付してambrosusの開発チームに送りましょう。

TOS.txtファイルのダウンロード方法は以下で説明します。

TOS.txtファイルのダウンロード方法 (Windowsの場合)

このままTera Termで操作します。

(もし接続を切っていた場合は再度Tera Termを起動し、最初にSSH接続したときと同じ手順でインスタンス(サーバー)に接続します。)

Tera Termのメニューバー(左上)にある「ファイル」から「SSH SCP...」をクリックしてください。

今回はファイルをサーバーから自分のPCにダウンロードするので、下半分のReceive(受け取り)を使います。

From欄には /home/ubuntu/ambrosus-nop/output/TOS.txt と入力し、

To欄の右にある四角い枠(...)をクリックして保存先を自由に選んで下さい。

最後に「Receive」をクリックするとTOS.txtファイルがダウンロードできます。

エラーが出た場合はFrom欄に入力間違いがないか確認してください。

このTOS.txtファイルを先ほどのメールに添付して、開発チームにメールを送って下さい(詳しくは以下で解説します)。

TOS.txtファイルのダウンロード方法 (Mac, Linuxの場合)

一旦ubuntuサーバーからログアウトします。先ほどまで操作していたubuntuのターミナルで「exit」と入力してリターンキーを押せば、サーバーから自分のPCに操作が戻ります。

サーバーからログアウトしたらMac(Linux)のターミナル上で、以下のコマンドを順番に実行してください。$は省いてください。

$ cd ~/.ssh

$ scp -i aws_atlas.pem ubuntu@xx.xx.xx.xx:/home/ubuntu/ambrosus-nop/output/TOS.txt ~/Downloads/

aws_atlas.pemはAWSに接続するための秘密鍵ファイル名です。自分のファイル名に置き換えてください。また、xx.xx.xx.xxは自分のAWSインスタンス(サーバー)の固定IPアドレスです。

これらは、最初にサーバーにSSH接続したときのものと同じです。

これでDownloadsディレクトリにTOS.txtファイルがダウンロードされますので、先ほどのメールに添付して開発チームにメールを送って下さい(詳しくは以下で解説します)。

開発チームにメールを送る

それでは、NOPで出力された情報と、TOS.txtファイルを開発チームにメールで送りましょう。

メールの件名は何でも良いので以下を参考にしてください。

宛先: tech~(正確なアドレスは上の画像、もしくはNOPの出力画面を参照してください。スパム防止のため省略します)

件名: Node whitelisting

添付ファイル: TOS.txt(添付を忘れないようにしましょう)

本文:

Hello, I'm 【自分のお名前】, from Japanese community.

I'd like to let you know my onboarding information for whitelisting.

{

略(NOPで出力された{から}までを貼り付けてください

}

Thank you.

このメールを送ったら、ホワイトリストに入れてもらうまで数日間待ちましょう。24時間以内に入れてもらえる場合もあります。

返信を待つ必要はありません。定期的に次の手順のコマンドを実行すれば、ホワイトリストに入ったかどうかを自分で確認可能です。

操作手順2. マスターノードの稼働

Ambrosusチームからホワイトリストに入れてもらったら、いよいよマスターノードを稼働します。

この先に進む前に、必ずブリッジで必要な枚数のAMBをメインネットに送っておいてください

ホワイトリストに入っていない状態で以下のコマンドを実行しても、特に問題はありません。定期的に実行して、ホワイトリストに入ったかどうかを確認しましょう。

まず先程と同じやり方でサーバーにSSH接続しましょう。やり方を忘れた場合はさかのぼって確認してください。

ログインしたらそのまま以下のコマンドを実行してください。

$ sudo ./setup2.sh

もしまだホワイトリストに入っていなければ、以下のようなエラーメッセージが出ます。

? Docker is installed
Network: main
? Private key verified. Your address is [AMBのアドレス]
Address is not whitelisted yet ←まだホワイトリストに入っていません
[選択したノードの種類]
Node URL defined as [申請したドメイン]
Your email address is [メールアドレス]
To finish requesting process, copy following form and mail it to [開発チームのメールアドレス] or send to #onboarding in Slack.

このようなメッセージが出ますが、再度開発チームに自分からメールを送る必要は一切ありません。もしも先程送ったメールに何か問題があれば、チームから返信が来ます。今後も数時間ごとにsetup2.shを実行し、ホワイトリストに入ったかどうかを確認しましょう。

Additionally attach your signed Terms of Service file (output/TOS.txt)
{
途中でコピーし、メールしたノードの情報
}
Done in 3.35s.
ERROR:
Can't find a suitable configuration file in this directory or any
parent. Are you in the right directory?

Supported filenames: docker-compose.yml, docker-compose.yaml

setup2.shのコマンドを実行した時点で無事ホワイトリスト入りされていれば、後は以下の画像のように進めていけばオンボーディング完了となります。

Minimal depositに表示されている枚数が、本当に自分がステークしたい枚数と一致しているかどうかを確認しましょう。0が1つ多くなっていないか少なくなっていないかなど、注意してください。

問題なければステーク枚数をここでも入力し、最後にYesを選択すれば完了です。その後の処理が完了するまで、SSHの接続を切らずにそのまま待ちましょう

 

全て完了するまでしばらく待ってください。

アポロを起動するには、以下の「ノードの起動」のコマンドを実行してください

これでひとまずは完了です。お疲れ様でした!

自分のノードの状態はAmbrosusエクスプローラーで見ることが出来ます。アポロがオンラインになるまで、通常は数時間かかります

ノードのソフトウェアアップデート時やサーバーを再起動する時などは、ノードを停止してから行いましょう。ノードの停止と起動は以下のコマンドで行えます。

ノードの停止

$ cd ~/ambrosus-nop/output/ && sudo docker-compose stop

ノードの起動

cd ~/ambrosus-nop/output/ && sudo docker-compose up -d

今後の注意点

マスターノードの設定、運営、管理の責任は、全て運営者本人にあります。定期的なマスターノードの最新バージョンの確認や、必要に応じてアップデートも重要になってくるでしょう。

マスターノードを稼働してただ放置するのではなく、必要な知識を学び、常にテレグラムで最新の情報を得るようにしましょう。

 

おすすめ記事

不正な開封を防止するスマートインク技術 1

通常スマートサプライチェーン管理は、追跡機能、最適化されたデータの共有、偽造防止ソリューション、自動支払い処理など、さまざまな機能に関連しています。ブロックチェーンとIoTを追跡と追跡調査の目的で使用 ...

国連に支援されたネットワーク 2

Ambrosusが国連(国際連合)の消費者情報プログラムに参加 食品と薬品サプライチェーンにおける品質保証のためのブロックチェーン・IoTプラットフォームであるAmbrosus(アンブロサス)が、国際 ...

AmbrosusがNDSと提携し、メガマートで販売される牛肉をAMBブロックチェーンで追跡 3

ソウル、韓国 - 2018年10月10日 - グルーバルに分散したブロックチェーンとIoTプラットフォームのAmbrosus(アンブロサス)は、革新的な食品の追跡可能性(トレーサビリティ)プラグラムに ...

ambrosusとマダガスカル産ブルボンのサプライチェーン 4

Ambrosus(アンブロサス)がPremium Goodsと提携し、バニラの品質や産地、流通経路を証明可能に 目次1 バニラのサプライチェーンについて2 ブルボンバニラ企業Premium Googs ...

-AMB-NET・マスターノード
-,

Copyright© Ambrosus Japan - 次世代のサプライチェーン管理(SCM) , 2019 All Rights Reserved.