Hyperledger Iroha の環境構築 / iroha-cliを試す

2019年8月2日

Hyperledger Iroha の環境を構築し、CLI(コマンドラインインターフェース)である「iroha-cli」によってアセット移動(送金)などのトランザクションを実行してみます。

 

開発環境

macOS Mojave バージョン 10.14

 

はじめにDockerを利用してIrohaの環境を構築していきます。手順は公式ページを参照し適度な説明を加えていきます。Docker自体については関連ページをご参照下さい。

 

関連ページ

Docker入門 [Hello World] コマンドの基本

 

 

Irohaの環境構築


 

IrohaはPostgreSQLを利用しています。そのためIrohaとPostgreSQLのコンテナ同士の通信をするためのネットワークが必要となります。今回は、公式ページ通りの「iroha-network」という名前のネットワークを作成しました。ネットワークは「docker network ls」コマンドで確認できます。

 

次にPostgreSQLコンテナを生成し起動させます。

5行目

ネットワークオプションに、はじめに作成した「iroha-network」を指定しています。-pなどのオプションについては下記関連ページをご覧下さい。

 

関連ページ

DockerでMySQLを利用する

 

 

データの永続化


 

Irohaコンテナを生成し起動させる前に、ブロックチェーン等のデータを永続化するためのデータボリュームを作成します。公式ページ通りに名前を「blockstore」にしています。作成したデータボリュームは「docker volume ls」コマンドで確認できます。

 

関連ページ

Docker-MySQLのデータボリュームによる永続化

 

Data Volume Container について [Dockerの永続化]

 

 

Irohaコンテナの生成と起動


 

Irohaのリポジトリをローカルにクローンします。

 

Irohaコンテナを起動させます。

4行目

あらかじめ作成していたデータボリューム「blockstore」を指定しています。Irohaコンテナ内の/tmp/block_storeディレクトリと同期させています。

 

上記コマンドでirohaコンテナが生成され起動に成功すると、実際にirohaのコンテナ内に入り下記のように表示されます。

 

別ターミナル画面を開き、コンテナの状態を確認してみます。STATUSがUpになっています。

 

 

iroha-cliを試す


 

以降のコマンドはIrohaコンテナ内での操作です。

 

Irohaのノードを起動させます。ログが表示されるようになります。

 

別ターミナル画面を開き、Irohaコンテナに接続します。

 

 

実行すること


 

2.3.1. CLI guide: sending your first transactions and queries を参照しています。

 

コイン(Asset)を発行し、admin@testユーザーからtest@testユーザーへコインを送金してみます。また最後には、保有する量を超えたコインを送金しようとしてリジェクトされる様子を記述しています。

 

Irohaでアクションを実行するためのアカウントを指定します。すでに用意されているtestドメインのadminユーザーを指定しています。ドメインはグループ化のための機能です。

 

トランザクションを生成するため「1」を入力し確定します。

 

アセットを生成する項目を選択します。

 

アセットの名前・ドメインID・precisionを指定します。precisionは小数点のことで、2に指定すると10.50のようにアセットを指定することができます。仮に10.500だと無効となります。

 

更にコマンドを実行しトランザクションに加える項目を選択します。

 

アセットの量を決める項目を選択。

 

coolcoin#testに、20050の量を保有させます。

 

引き続きコマンドを実行しトランザクションに加える項目を選択します。

 

次にアセットを移動させる項目を選択します。

 

admin@test から test@test へ10050の量だけ移動させます。

 

トランザクションをIrohaのPeer(ノード)に送信します。

 

Peerのアドレスとポート番号を設定。

 

 

実際にアセットが移動したかを確認するため、クエリーを選択します。

 

アカウントのアセット量を調べる項目を選択。

 

調べるアカウントとアセットIDを設定。

 

Peerに送信。

 

実際にtest@testユーザーのBalanceが10050であることを確認できました。

 

admin@testの残高も確認してみます。以下一連のコマンド操作です。

 

 

トランザクションのリジェクト


 

次にアセットの移動において超過額を指定し、わざとトランザクションをPeerに受け付けないようにします。最終的にトランザクションがPeerからリジェクトされていることを確認します。

 

 

 

超過額を指定しています。

 

 

 

下記で表示されたhash値を利用します。

 

トランザクションのステータスを調べます。

 

調べるhash値(3feac〜)を設定し、Peerに送信します。

 

トランザクションが拒否されていることを確認。

 

 

 

参照ページ


 

Hyperledger Iroha

 

2. はじめる

 

2.3.1. CLI guide: sending your first transactions and queries

 

 

LINEで送る
Pocket

Copyright © 2019 思考の葉 All Rights Reserved.  プライバシーポリシー