このガイドでは、 Symbol を使用して、独自のプライベートネットワークをセットアップする手順を説明します。
ネットワークを実行するため、 Symbol Bootstrap パッケージを使用します。このパッケージの動作をより理解するために Symbol Bootstrap の使用 ガイドを読むことを推奨します。
bootstrap
プリセットSymbol Bootstrap には、複数のノードを持つ、次のアーキテクチャのネットワークをインスタンス化する bootstrap
のプリセットがあります:
"Internal" とラベル付けされたノードは Symbol Bootstrap によって作成されており、REST API からアクセス可能です:
peer-node (1 と 2): Peer ノードは API がトランザクションを P2P ネットワークにプッシュすると、それを検証します。ノードはコンセンサスアルゴリズムを実行して、新しいブロックを作成して、ネットワークを通して変更を伝播します。
api-node: API ノードはトランザクションが検証された後に MongoDB データベースにデータを保存します。これらはパーシャルなアグリゲートボンドトランザクションを識別して保存もします。
rest-gateway は HTTP と WebSockets をブロックチェーン上で読み書きアクションが実行できるように構成します。
bootstrap
プリセットで start
コマンド (Symbol Bootstrap の使い方 ガイドで説明) を使用します。
symbol-bootstrap start -p bootstrap
1 つのコマンドで、ネットワークを作成して、起動します。新しいブラウザタブを開き、次の場所に移動して、稼働していることを確認します:
localhost:3000/chain/info
API ノードからレスポンスを取得します。
Symbol Bootstrap は対応するアカウントを持つ、複数のノードを作成しました。これらアカウントのいずれかと対話 (たとえば、モザイクをそのアカウント へ 転送) するには、そのアドレスまたは公開鍵が必要です。アカウントの完全な制御 (たとえば、モザイクをアカウント から 転送) には、その秘密鍵が必要です。
すべての情報は target
フォルダ内の YAML ファイルから取得できます:
target/addresses.yml
例:
networkType: 152
nemesisGenerationHashSeed: 7BFC536990108CA923B2715DE6B8E47E6BB56C945293BF4FC22C5AF895F61E62
nodes:
-
signing:
# Keys for the account of the peer-node-0
privateKey: ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
publicKey: C2BD21E4F9261247A4CBE75DA8683978E0F1FFF34AAB17BEBC21E7B9E0E17A9F
address: TAMEGYVY6GVGXCLBIEH72XU4D2OSTH2MIOOY4QQ
vrf:
privateKey: ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
publicKey: D67601AC6767F8A3C97FFDB0D9D737A943FFFA6E69C2C6527B0ED32A4E41B443
address: TCR6ZWX3UP3TKJK3BSE6ARJ4WAF3KHFFUWJ7EWI
voting:
privateKey: ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
publicKey: 921ED0839EA3C8590CA1D6562DDD3BFEDA44CCE05DD82DF8C79DED2A3F816A1B
address: TA77BJJJMRXR2OLJKZNUFTRMLHLQ4T2PPHZRX5I
ssl:
privateKey: ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
publicKey: 3d68cdaa4e48a14bd875d4ca18e044522be5f602e8c4f37c1c65eafdfaa19110
type: peer-node
name: peer-node-0
friendlyName: peer-node-0
注釈
シークレットキーは常に秘匿してください!
symbol-cli を使用して、これらアカウントのいずれかをインポートできます。アクセスを容易にするコマンドラインツール (詳細については symbol-cli ガイド を参照してください):
symbol-cli profile import --private-key <PRIVATE_KEY> --network TEST_NET --url http://localhost:3000
この新しいプロファイルに名前を付けることで、たとえば、アカウントの残高を取得するために使用できます:
symbol-cli account info --profile <PROFILE_NAME>
Symbol Bootstrap によって作成されたノードが表示され、実験の開始するために、いくつかの通貨 (異なる モザイク) がすでに含まれています:
Balance Information
┌──────────────────┬──────────────────┬──────────────────┬───────────────────┐
│ Mosaic Id │ Relative Amount │ Absolute Amount │ Expiration Height │
├──────────────────┼──────────────────┼──────────────────┼───────────────────┤
│ 3ECBB73A05A147BC │ 1,124,874,999.75 │ 1124874999750000 │ Never │
├──────────────────┼──────────────────┼──────────────────┼───────────────────┤
│ 2B19203C86F9A668 │ 3,000 │ 3000000 │ Never │
└──────────────────┴──────────────────┴──────────────────┴───────────────────┘
Symbol Bootstrap は モザイク を事前に保有する、いくつかのテストアカウントを生成します。これらのアカウントは開発または学習目的のために存在します。
これらのアカウントの鍵は、上記の target /addresses.yml
ファイルに、 mosaics
セクションにあります:
mosaics:
-
id: 56631872BA6657A1
name: currency
type: currency
# These are accounts containing the main currency
accounts:
-
privateKey: ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
publicKey: 91A9513EBEB50DEFCD928032611B2FBC046FA894089D2ACED115D6EDEB0BFD2A
address: NBO3P2AM3A6242V2NFMUIG5RQ3ZFDRKS5QNRBJA
-
privateKey: ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
publicKey: 4E9CC90B45265691C2CF0C68785A06602D28DB50ACFB91F8389B976898239132
address: NCDFN3W2AP3E4I2XYITUJHHGVSYKOIR2IUTXKXY
-
id: 079C43E0DFC44B38
name: harvest
type: harvest
# These are account containing the network currency used for harvesting
accounts:
-
privateKey: ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
publicKey: D617FC0C746681849D93DBEB5FE0E390F26535E4EA76F02AB206AD053B72FAB8
address: NBFFJ3MNPMHP474KD7JLBJWAYSYSAUEW7L7262Q
-
privateKey: ●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
publicKey: BBB04EC2CF67658B755F94FC347DDC4AAFFBFC24B84298AEF41CDA2485FA216E
address: NCQBYJE3U4Q36AA2E6HFTGKCUXIBUB2NMIGAFDA
例えば、上記のコマンドラインツールの symbol-cli を使用することで、これらのアカウントに秘密鍵でアクセスします。
ブロックファイナライゼーション プロセスは、ブロックチェーンに追加する前に、ネットワークノードがブロックの正確性について投票を要求されます。各ノードは投票者として登録するかどうかを選択します。
bootstrap
プリセットによって作成される、すべてのノードはデフォルトで投票者です。これが不要な場合は、カスタムプリセットで次の行を提供し、各ノードの投票を無効にします。
nodes:
- voting: false # peer-node-0
- voting: false # peer-node-1
- voting: false # api-node-0
注釈
投票ノードが無い場合、ファイナライズは発生しません。 localhost:3000/chain/info
を参照すると、チェーン高が増加していることがわかりますが、 latestFinalizedBlock
高はゼロのままです。
カスタマイズ可能なネットワーク関連の設定については ネットワークプロパティの設定 ガイドを参照してください。
各ノードは投票者として登録するかどうかを選択します。 localhost:3000
で提供される API ノードを介して疎通することもできます。
Symbol の機能の学習を続けるために 他のガイド も参照してみてください!