How to use this handy node deployment tool.
このガイドでは、複数のオペレーティングシステム (Windows、Linux、Mac) で Symbol ノードを迅速に設定し、実行できるプログラムである Symbol Bootstrap の概念を説明しています。
また、複数のノードを一度にデプロイして、テストネットワーク環境を素早く構築することもできます。
こちらを読んだ後には ノードの立ち上げ と プライベートテストネットワーク ガイドをより理解することができるでしょう。
このプログラムは以前のツールを置き換えます catapult-service-bootstrap
と symbol-testnet-bootstrap
Symbol Bootstrap はインストール可能なツールとして提供されており、リポジトリからクローンやビルドする必要はありません。ターミナルまたはコマンドプロンプトから次を実行します:
npm install -g symbol-bootstrap
Notes:
新しいバージョンの symbol-bootstrap
が公開されるたびに、上記のコマンドを再度実行することで、最新版をインストールできます。
後述のように、アップグレードする前には symbol-bootstrap
を停止して、その後に再開することを忘れないでください。
パーミッションエラーに遭遇した場合は パッケージのグローバルインストール時における EACCES パーミッションエラーの解決 を参照してください。
ノードの設定は、すべてのネットワークパラメータを指定する YAML設定ファイル を介して行われます。ファイル全体の長さは数百行に及ぶため、処理の簡素化のために プリセット を使用できます。 ‑‑preset
または ‑p
パラメタで指定することができます。
プリセット |
説明 |
---|---|
|
A single node that connects to the current public main network. Nemesis block is copied over. Requires an |
|
Autonomous network with 1 mongo database, 2 peers, 1 api and 1 rest gateway. Nemesis block is generated (configuration file). This is the default preset. |
|
A single node that connects to the current public test network. Nemesis block is copied over. Requires an |
プリセットは、追加パラメータを提供する assembly (または特徴) を指定することで、さらなるカスタマイズが可能です。 ‑‑assembly
または ‑a
パラメータでアセンブリを指定します。
プリセット |
利用可能な構成 |
説明 |
---|---|---|
|
|
The node is a Peer ノード (configuration file). |
|
|
The node is an API ノード (configuration file). |
|
|
The node is both a Peer ノード and an API ノード (configuration file). |
|
|
The node is a Peer ノード (configuration file). |
|
|
The node runs is an API ノード (configuration file). |
|
|
The node is both a Peer ノード and an API ノード (configuration file). |
さらに、追加の設定が必要な場合は カスタムプリセットファイル を使用することができます。このファイルのどの値も、プリセットまたはアセンブリによって設定されたデフォルト値を上書きするので、それらの上位として組み合わせることができます。例えば ネットワークプロパティ または ノードプロパティ のすべてのプロパティはこのファイルを介して設定できます。
カスタムプリセットファイルは ‑‑customPreset
または ‑c
パラメタで指定できます。
注釈
ノードがすでに実行されている状態で、カスタムプリセットファイルを変更した場合は、Bootstrap で作成したノードをアップデートする Bootstrap で作成したノードをアップデートする ガイドで説明されている方法で、ノードをアップグレードする必要があります。
config
コマンドBefore building the node or network a full configuration file has to be created by using the symbol-bootstrap config command:
symbol-bootstrap config -p <preset> -a <assembly> -c <custom_parameters_file.yml>
例:
symbol-bootstrap config -p bootstrap
symbol-bootstrap config -p mainnet -a peer
symbol-bootstrap config -p mainnet -a dual
symbol-bootstrap config -p mainnet -a dual -c custom_parameters.yml
これは、デフォルトで target
( --target
または -t
パラメタで変更できます) フォルダを作成し、ノードまたはネットワークを構築するために使用する、生成された完全な構成ファイル (target/preset.yml
) が含まれます。
注釈
Linux では、ユーザが docker
グループに属していないと Permission denied while trying to connect to the Docker daemon socket
というエラーが表示される場合があります。その場合は次のように追加します:
sudo addgroup $USER docker
compose
コマンドこのコマンドは提供した構成に基づいて、必要な Docker ファイルを準備します:
symbol-bootstrap compose
設定手順と同様に、これも1度だけ実行する必要があります。
run
コマンド最後に、次のコマンドを実行して必要な Docker インスタンスを起動し、ノードまたはネットワークを起動します:
symbol-bootstrap run
プロセスを停止するには Ctrl+C
を押下します。
注釈
ターミナルで Docker コンテナをバックグラウンド実行するには ‑‑detached
または ‑d
パラメータを使用することで、サービスをデタッチモードで実行出来ます。
次に symbol-bootstrap stop
を使用して、それらを停止してください。
start
コマンド上記3つのコマンドは (config
, compose
, run
) 1つにまとまります:
symbol-bootstrap start -p <preset> -a <assembly> -c <custom_parameters_file.yml>
そのとおり、単一のコマンドで Symbol ノード (または多くのノードを持つテストネットワーク) をインスタンス化して起動できます!
1度だけ実行する必要のある手順 (config
と compose
) は繰り返し行わないので、このコマンドを毎回使用できます。
API nodes created using the api
or dual
assemblies accept HTTP commands through port 3000. HTTPS access can also be enabled, as described in the next two sections.
注釈
The certificates used below will only be used for HTTPS communication with the REST API, not as node certificates for inter-node communication.
もし、すでにあなたのホスト向けの SSL をお持ちなら、Symbol Bootstrap にはカスタムプリセットファイル経由で、それを適用できます。
カスタムプリセットファイルを自己完結型とするためには、あなたの証明書の Key ファイルと Crt ファイルを Base64 文字列に変換し、プリセットファイルにコピーする必要があります:
cat restSsl.key | base64 -w 0
cat restSsl.crt | base64 -w 0
このようにセクション内に、これらのコマンド出力をプリセットファイルにコピーします:
nodes:
- friendlyName: My Awesome Node # Use anything you want here
host: awesomenode.mycompany.net # Use your node's host name
gateways:
- restProtocol: HTTPS
openPort: 3001
restSSLCertificateBase64: >-
LS0tLS1CRUdJTiBDRVJUSUZ...Base64...==
restSSLKeyBase64: >-
LS0tLS1CRUdJTiBSU0EgUFJ...Base64...=
提供した証明書は、ホスト名 awesomenode.mycompany.net
に対して正当なものでなければなりません。ドメインはノードの IP アドレスを解決できる必要があります。
後に、証明書の有効期限が切れた場合、カスタムプリセットファイルを更新し、 Bootstrap で作成したノードをアップデートする ガイドにあるように、ノードをアップグレードする必要があります。
このオプションでは、HTTP 3000 番ポートではなく、HTTPS 3001 番ポートのみを開放します。 ファイアウォールまたはセキュリティグループで、ポート 3001 番を開放しておいてください。ポート 3000 番は、もう使用されないので、閉じてもよいです。
Bootstrap は公衆用で無料の Let's Encrypt サービスを利用して、必要な SSL 証明書を取得することもできます。
有効化するには、カスタムプリセットファイルに httpsProxies
セクションを追加してオプトインします:
nodes:
- friendlyName: My Awesome Node # Use anything you want here
host: awesomenode.mycompany.net # Use your node's host name
httpsProxies:
- excludeDockerService: false
awesomenode.mycompany.net
ドメインを所有しており、それがノードの IP アドレスの名前解決をする必要があります。Let's Encrypt サービスは証明書の作成と更新を代行を行います。
ファイアウォールまたはセキュリティグループで、ポート 3001 番と 80 番を開放することを忘れないでください 。ポート 3000 番は閉じていても、いなくても、構いません。 ポート 80 番は Let's Encrypt が必要とします 。
注釈
このオプションは この優良なブログ記事 から大きな影響を受けました。Symbol Bootstrap では、この解決方法を組み合わせて処理を合理的に行います。
Read the complete list of symbol-bootstrap
commands.
こちらの ノードの立ち上げ ガイドに従ってノードを作成してみてください。