前提条件
- Docker、node.js、npmはインストール済み
- 使用PC:M1 Mac
- Docker Desktopは起動済み
- 作業ディレクトリは~/User/development/
Docker環境のイメージ
Hyperledger Irohaの1ノード(ここでは1台のPCだと思ってください)にはHyperledger Iroha APIとデータベースが必要になります。以下ではiroha入門者が各所でPostgresを利用していることに鑑みて、データベース = PostgresSQLとします。
環境構築
コンテナ作成&起動
APIとDBの各コンテナが通信を行うためのネットワークを作成
docker network create iroha_network
コンテナ外部にブロックチェーンを格納するための領域を確保
docker volume create blockstore
DBコンテナをsome-postgresという名前で作成&起動
sudo docker run -it -d --name some-postgres \
-e POSTGRES_USER=postgres \
-e POSTGRES_PASSWORD=mysecretpassword \
-p 5432:5432 \
--network=iroha-network \
postgres:9.5
Iroha API起動に必要な環境をクローン
sudo git clone https://github.com/hyperledger/iroha --depth=1
APIコンテナをirohaという名前で作成&起動
sudo docker run --platform linux/amd64 \
-it -d --name iroha \
-p 50051:50051 \
-v $(pwd)/iroha/example:/opt/iroha_data \
-v blockstore:/tmp/block_store \
--network=iroha-network \
--entrypoint=/bin/bash \
-e KEY='node0' \
hyperledger/iroha:latest
APIサーバ起動
irohad --config config.docker --genesis_block genesis.block --keypair_name node0
最終状態
Tips
コンテナの起動&停止
sudo docker start some-postgres iroha
sudo docker stop iroha some-postgres
各コンテナへの接続
sudo docker exec -it iroha /bin/bash
sudo docker exec -it some-postgres /bin/bash
まとめ
iroha環境構築は情報がとても少ないので、Irohaは勿論ですがDockerオプションの学習もかなりしました。次回は「iroha-cliでAPIにアクセス」を投稿する予定です。