symbolプライベートネットワークで実験

symbolをプライベートネットワークで動かして実験します。

1312 views

https://docs.symbolplatform.com/ja/guides/network/creating-a-private-test-net.html
https://github.com/nemtech/symbol-bootstrap
を参考に環境構築を行ったがうまく行かなかったため、動かすための手順をまとめた。
環境構築でうまく行かない場合、基本的に後述する前提プログラムにある注意事項がポイント。

作成する環境については以下と同じ環境である。
bootstrapプリセット

前提プログラム

本環境構築はwindows 10 proで行う。
windowsに以下の前提プログラムがインストールされていること。

  • Node 12.0.0以降
  • Docker 18.3.0以降
  • Docker Compose 1.25.0以降
  • Visual Stdio (本構築手順ではVisual Stdio 2019を使用)

注意事項

  • docker環境はhyper-vで動作すること。wsl2では2021/5/15時点では動作しない
  • CPUはAVX2命令に対応しているCPUであること
  • symbol-cliをインストールする場合は、visualstdioをインストールしておくこと(コンパイルに使用する模様)

[AVX2命令に対応しているかを調べるには]
以下のサイト等を参考に調べることができる。
https://blog.treedown.net/entry/2019/09/06/003000

symbol-cliのインストール

symbol-cliはsymbolサーバにアクセスするためのコマンド。次のコマンドを実行してインストールする。

npm install --global symbol-cli

symbolのインストール

本節では、プライベートネットワークを構築する手順について記す。

symbol-bootstrapをインストールする

1. ディレクトリの作成
作業を行うためのディレクトリを作成して移動する。
本手順では、C:\Users<ユーザ名>\node\symbolで作業する前提である。

C:\Users\<ユーザ名>\node\symbol
cd C:\Users\<ユーザ名>\node\symbol

2. symbol-bootstrapをインストールする
以下のコマンド実行し、symbol-bootstrapをインストールする。
symbol-bootstarpはnpmモジュールである。

npm install -g symbol-bootstrap

3. プライベートネットワークの設定ファイルを作成する
以下のコマンドを実行して、プライベートネットワークの設定ファイルを生成する。

symbol-bootstrap config -p bootstrap

以下の画面が起動したら、自分で決めたパスワードを入力する。

4. 設定ファイルの確認
以下のファイルがあることを確認する。

C:\Users\<ユーザ名>\node\symbol\address.yml

5. 設定ファイルを複合する
3.で作成された設定ファイルには、テスト用のユーザ情報が記述されているがprivate keyが暗号化されているため、次のコマンドを実行してパスワードを復号する。
復号に使用するパスワードは3.で入力したパスワードである。

symbol-bootstrap decrypt --password <パスワード> --source target/addresses.yml --destination tmp_addresses.yml

復号が成功すると、以下のファイルが作成される。

C:\Users\<ユーザ名>\node\symbol\tmp_addresses.yml

6. symbolのプライベートネットワークを起動する
以下のコマンドを実行して、symbolのプライベートネットワークを起動する。

symbol-bootstrap start 

起動時にパスワードを聞かれる。パスワードは3.で指定したパスワードを入力する。

7. 起動の確認1 *
WEBブラウザから以下のURLを入力し、次のようなメッセージが得られることを確認する
*
URL

http://localhost:3000/chain/info

{"scoreHigh":"0","scoreLow":"739501132911546","height":"10","latestFinalizedBlock":{"finalizationEpoch":1,"finalizationPoint":1,"height":"1","hash":"6C4BDD89D7033CB0A86E659DB3A1CF86233653D91E73DB4302F50C884B1566E7"}}

8. 起動の確認2
3.で作成されたtmp_addresses.ymlをテキストエディタで開き、mainユーザのプライベートキー(11行目)をコピーする。
コピーしたプライベートキーを以下のコマンドの<デコードしたプライベートキー>に置き換え、実行する。
注意事項にも記載したが、dockerをwsl2で動かしていると、ここで失敗する。

symbol-cli profile import --private-key <デコードしたプライベートキー> --network TEST_NET --url http://localhost:3000

プロファイル名、パスワード、デフォルトのプロファイルにするかどうかを指定する。

C:\Users\konishi>symbol-cli profile import --private-key <デコードしたプライベートキー> --network TEST_NET --url http://localhost:3000
√ Enter a profile name: ... mytestnet
√ Enter your wallet password: ... ********
√ Do you want to set the account as the default profile? ... yes

Account
┌───────────────┬──────────────────────────────────────────────────────────────────────┐
│ Property      │ Value                                                                │
├───────────────┼──────────────────────────────────────────────────────────────────────┤
│ Address       │ TDTK3D-RDRZ5F-TNFKBI-RPXIYF-G3EJ5O-Y65PR5-4AI                        │
├───────────────┼──────────────────────────────────────────────────────────────────────┤
│ Public Key    │ 9BC7220922D8ACAA02AB70F290AD63CFE3E9BA1C968EDE67F7FA1F9C33D18AB1     │
├───────────────┼──────────────────────────────────────────────────────────────────────┤
│ Private Key   │ <デコードしたプライベートキー>                                       │
├───────────────┼──────────────────────────────────────────────────────────────────────┤
│ Password      │ 入力したパスワード                                                   │
└───────────────┴──────────────────────────────────────────────────────────────────────┘

以下のコマンドを実行する。 <PROFILE_NAME>には上記のコマンドで作成したプロファイル名を入力する(mytestnet)。

symbol-cli account info --profile <PROFILE_NAME>

以下のような画面が表示されることを確認する。

Page 2 of 6.

前のページ 次のページ



[添付ファイル]


お問い合わせ

プロフィール

すぺぺぺ

自己紹介

本サイトの作成者。
プログラムは趣味と勉強を兼ねて、のんびり本サイトを作っています。
フレームワークはdjango。
ChatGPTで自動プログラム作成に取り組み中。

サイト/ブログ

https://www.osumoi-stdio.com/novel/

ツイッター

@darkimpact0626