本ファイルは、第3章で入力するコマンドなどを記述しています。

*irohaコンテナとsome-postgresコンテナが動作している状況で実施してください
 sudo docker start iroha some-postgres

[3.1.4　irohaコンテナ]
参考：秘密鍵と公開鍵の作成方法(第4章にて解説します)
cd ~/node_modules/iroha-helpers/example
node ed25519_keygen.js

ブロックストア(Terminal 3-1-1:irohaコンテナ)
sudo docker exec -it iroha /bin/bash
ls /tmp/block_store/ -l
exit


[3.1.5　some-postgresコンテナPostgreSQLデータベース World State View]
World State Viewの構造(Terminal 3-1-2:some-postgresコンテナ)
sudo docker exec -it some-postgres /bin/bash
psql -U postgres postgres
\dt;

accountテーブル(Terminal 3-1-3:some-postgresコンテナ)
select * from account;

account_has_assetテーブル(Terminal 3-1-4:some-postgresコンテナ)
select * from account_has_asset;

account_has_grantable_permissionsテーブル(Terminal 3-1-5:some-postgresコンテナ)
select * from account_has_grantable_permissions;

account_has_rolesテーブル(Terminal 3-1-6:some-postgresコンテナ)
select * from account_has_roles;

account_has_signatoryテーブル(Terminal 3-1-7:some-postgresコンテナ)
select * from account_has_signatory;

assetテーブル(Terminal 3-1-8:some-postgresコンテナ)
select * from asset;

domainテーブル(Terminal 3-1-9:some-postgresコンテナ)
select * from domain;

height_by_account_setテーブル(Terminal 3-1-10:some-postgresコンテナ)
select * from height_by_account_set;

index_by_creator_heightテーブル(Terminal 3-1-11:some-postgresコンテナ)
select * from index_by_creator_height;

peerテーブル(Terminal 3-1-12:some-postgresコンテナ)
select * from peer;

position_by_account_assetテーブル(Terminal 3-1-13:some-postgresコンテナ)
select * from position_by_account_asset;

position_by_hashテーブル(Terminal 3-1-14:some-postgresコンテナ)
select * from position_by_hash;

roleテーブル(Terminal 3-1-15:some-postgresコンテナ)
select * from role;

role_has_permissionsテーブル(Terminal 3-1-16:some-postgresコンテナ)
select * from role_has_permissions;

signatoryテーブル(Terminal 3-1-17:some-postgresコンテナ)
select * from signatory;

tx_status_by_hashテーブル(Terminal 3-1-18:some-postgresコンテナ)
select * from tx_status_by_hash;

\q
exit

[3.2.1　iroha-cliコマンドの概要]

*irohaコンテナでirohadプロセスが起動している状態で実施します
 sudo docker exec -it iroha /bin/bash
 irohad --config config.docker --keypair_name node0
 この端末は放置して別の端末で以下を実施します

iroha-cliコマンドの起動例(以後はメニュー出力は省略)(Terminal 3-2-1:irohaコンテナへ接続)
sudo docker exec -it iroha /bin/bash 
iroha-cli -account_name admin@test
> : Ctrl+C


[3.2.2　情報確認]
adminロールに付与されている権限を一覧表示する操作 (Terminal 3-2-2:irohaコンテナ)
iroha-cli -account_name admin@test
> : 2
> : 1
admin
> : 1


> : Ctrl+C


coin#testアセットの情報を表示する操作 (Terminal 3-2-3:irohaコンテナ)
iroha-cli -account_name admin@test
> : 2
> : 3
coin#test
> : 1


> : Ctrl+C


admin@testアカウントの情報を表示する操作 (Terminal 3-2-4:irohaコンテナ)
iroha-cli -account_name admin@test
> : 2
> : 9
admin@test
> : 1


> : Ctrl+C


[3.2.3　ドメインの作成]
nihonドメインを作成する操作(Terminal 3-2-5:irohaコンテナ)
iroha-cli -account_name admin@test
> : 1
> : 10
nihon
money_creator
> : 2


> : Ctrl+C


トランザクションの結果を確認する操作(Terminal 3-2-6:irohaコンテナ)
iroha-cli -account_name admin@test
> : 3
> : 1
> : ドメイン作成のトランザクションのハッシュ値
> : 1


> : Ctrl+C


[3.2.4　アカウントの作成]

参考(第4章で実行可能になります)
ed25519_keygen.jsプログラムによるキーペアの作成(Terminal 3-2-7)
cd ~/node_modules/iroha-helpers/example
node ed25519_keygen.js
node ed25519_keygen.js
node ed25519_keygen.js


irohaコンテナのホームディレクトリでキーペアファイルを作成する操作(Terminal 3-2-8:irohaコンテナ)
cd /opt/iroha_data/
echo "cb51d458e1031c6a3bc4c1f81baca6ef043893b30c0ae89458432124a97ec02e" > kanri@nihon.pub
echo "a5d6f8fa4d0c358dc5218e4bcaf46e175b0fbc4cb80d0a00e562e1dc50f6d4a6" > kanri@nihon.priv
echo "94a53212a5deb227eadc135ddee911644e21a25bed30576d0604e256a09ed1e2" > tantou@nihon.pub
echo "df78364693db14fcc782fcc8e009100c82418b630e379aa2c77deb9526a20d03" > tantou@nihon.priv
echo "c1a418fe14f99cc5dcfab88773b2ee9f5710478a585d30763db68e8cb2737e90" > user@nihon.pub
echo "ea0c98a8eeaa6d637f1e0a01a3a62152518dd567c400bcfa9f4974182773bad0" > user@nihon.priv


3つのアカウント（kanri@nihon、tantou@nihon、user@nihon）を作成する操作(Terminal 3-2-9:irohaコンテナ)
iroha-cli -account_name admin@test
> : 1
> : 12
kanri
nihon
cb51d458e1031c6a3bc4c1f81baca6ef043893b30c0ae89458432124a97ec02e
> : 1
> : 12
tantou

94a53212a5deb227eadc135ddee911644e21a25bed30576d0604e256a09ed1e2
> : 1
> : 12
user

c1a418fe14f99cc5dcfab88773b2ee9f5710478a585d30763db68e8cb2737e90
> : 2


> : Ctrl+C


admin@testアカウントに詳細情報の設定および詳細情報を確認する操作(Terminal 3-2-10:irohaコンテナ)
iroha-cli -account_name admin@test
> : 1
> : 4
admin@test
BD
20190812
> : 1
> : 4

Expires
20220906
> : 2


> : 2
> : 9
admin@test
> : 1


> : Ctrl+C


[3.2.5　アセット作成]
3つのアセット（prepay#nihon、ticket#nihon、total#nihon）を作成する操作(Terminal 3-2-11:irohaコンテナ)
iroha-cli -account_name admin@test
> : 1
> : 14
prepay
nihon
2
> : 1
> : 14
ticket

0
> : 1
> : 14
total

1
> : 2


> : Ctrl+C


[3.2.6　アセットの加算]
kanri@nihonアカウントにprepay#nihonアセットとticket#nihonアセットと total#nihonアセットを加算する操作(Terminal 3-2-12:irohaコンテナ)
iroha-cli -account_name kanri@nihon
> : 1
> : 16
prepay#nihon
100.55
> : 1
> : 16
ticket#nihon
20
> : 1
> : 16
total#nihon
300.5
> : 2


> : Ctrl+C


kanri@nihonアカウントのアセット残高確認する操作(Terminal 3-2-13:irohaコンテナ)
iroha-cli -account_name admin@test
> : 2
> : 8
kanri@nihon
prepay#nihon
> : 1


> : Ctrl+C


[3.2.7　アセットの転送]
kanri@nihonアカウントからtantou@nihonアカウントへのアセットを転送する操作(Terminal 3-2-14:irohaコンテナ)
iroha-cli -account_name kanri@nihon
> : 1
> : 5
kanri@nihon
tantou@nihon
prepay#nihon
10.5
> : 1
> : 5


ticket#nihon
2
> : 1
> : 5


total#nihon
30.1
> : 2


> : Ctrl+C


tantou@nihonアカウントとkanri@nihonアカウントのアセット残高を確認するための操作(Terminal 3-2-15:irohaコンテナ)
iroha-cli -account_name admin@test
> : 2
> : 8
tantou@nihon
prepay#nihon
> : 1


> : 2
> : 8
kanri@nihon
prepay#nihon
> : 1


> : Ctrl+C


[3.2.8　トランザクションの内容確認]
トランザクションを参照する操作(Terminal 3-2-16:irohaコンテナ)
iroha-cli -account_name admin@test
> : 2
> : 2
ドメイン作成のトランザクションのハッシュ値
> : 1


> : Ctrl+C

*irohadプロセス停止とirohaコンテナからDockerホストり各コンテナの停止
Ctrl+C
exit
sudo docker stop iroha some-postgres


*アドバイス：Dockerインストール終了時点で仮想PCをクローンするなど現在の状態を保存することをお薦めします。
 第4章は、この時点からスタートすることを想定しています。


[3.3.1　Hyperledger Iroha環境の再構築方法]
genesis.blockファイルをデスクトップにコピーする操作(Terminal 3-3-1:Dockerホスト)
sudo cp ~/iroha/example/genesis.block ~/デスクトップ
sudo chmod u+w,g+w,o+w ~/デスクトップ/genesis.block


genesis.blockファイルの変更内容(追加部分のみ)(Chart 3-3-1:Dockerホスト) 
"can_create_role",
"can_append_role",
"can_detach_role",

"can_subtract_asset_qty",


genesis.blockファイルのバックアップとコピーする操作(Terminal 3-3-2:Dockerホスト)
sudo cp ~/iroha/example/genesis.block ~/iroha/example/genesis.block.org
sudo cp ~/デスクトップ/genesis.block ~/iroha/example/


irohadプロセスの起動(強制的に初期化)(Terminal 3-3-4:irohaコンテナ)
sudo docker exec -it iroha /bin/bash
irohad --config config.docker --genesis_block genesis.block --keypair_name node0 --overwrite_ledger

 この端末は放置して別の端末で以下を実施します


[3.3.2　ロールの作成と権限の確認]
testロールを作成する操作(Terminal 3-3-5:irohaコンテナ)
sudo docker exec -it iroha /bin/bash
iroha-cli -account_name admin@test
> : 1
> : 3
test
1
1
1
1
1
1
1
1
> : 2


> : Ctrl+C


testロールの権限を確認するための操作(Terminal 3-3-6:irohaコンテナ)
iroha-cli -account_name admin@test
> : 2
> : 1
test
> : 1


> : Ctrl+C


admin@testアカウントへのtestロールの付与および確認する操作(Terminal 3-3-7:irohaコンテナ)
iroha-cli -account_name admin@test
> : 1
> : 2
admin@test
test
> : 2


> : 2
> : 9
admin@test
> : 1


> : Ctrl+C


[3.3.3　アセットの減算]
admin@testアカウントのcoin#testアセットの減算と残高確認の操作(Terminal 3-3-8:irohaコンテナ)
iroha-cli -account_name admin@test
> : 2
> : 8
admin@test
coin#test
> : 1


> : 1
> : 7
coin#test
3.1
> : 2


> : 2
> : 8


> : 1


> : Ctrl+C


*irohadプロセスを停止してDockerホストに戻り各コンテナ停止
Ctrl+C
exit
sudo docker stop iroha some-postgres
