概要
BlockApps社のSTRATOをWindowsローカル環境で起動してみました。
基本的にはチュートリアルに即しています。
STRATOとは
Ethereumのブロックチェーンを操作することができ、ブロックチェーンを利用したアプリケーションの開発環境構築を簡単にするサービスです。
-
Bloc API
ユーザ/アカウントやスマートコントラクトの管理をするAPIが提供されています。 -
STRATO API
ブロックやトランザクションなどブロックチェーンを管理するAPIが提供されています。
起動方法
0. STRATO Testnetに登録する(省略可)
https://signup.blockapps.net/
STRATOにアカウントの申請(無料)をします。
1. クローン
git clone https://github.com/blockapps/strato-getting-started.git
cd strato-getting-started
2. docker login
docker login -u blockapps-repo -p P@ssw0rd registry-aws.blockapps.net:5000
Docker for Windowsはサポートしていないと記載がありますが、仮想化を有効にしていれば問題なく動作します。
3. 起動
strato.sh --single
docker-compose.ymlを取得するため、wgetが入っていないと動きません。
Creating strato_kafka_1 ... error
\\run\\\\docker.sock:/var/run/docker.sock"\nis not a valid Windows path'
上記のエラーが出たら、パスを修正しましょう。
docker-compose.ymlの最下部にあります。
volumes:
- C:\var\run\docker.sock:/var/run/docker.sock
再び起動すると、13個ものコンテナがあがってきます。
strato-getting-started>docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9fec7c940206 registry-aws.blockapps.net:5000/blockapps-repo/nginx:3.1.2 "/docker-run.sh" 6 seconds ago Up 5 seconds 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp strato_nginx_1
b38f7e8d13af registry-aws.blockapps.net:5000/blockapps-repo/smd:3.1.2 "sh /usr/src/app/doc…" 7 seconds ago Up 6 seconds 3002/tcp strato_smd_1
b2112d318223 registry-aws.blockapps.net:5000/blockapps-repo/apex:3.1.2 "sh /usr/src/app/doc…" 10 seconds ago Up 7 seconds 3001/tcp strato_apex_1
caa4eeee1495 registry-aws.blockapps.net:5000/blockapps-repo/dappstore:3.1.2 "sh /usr/src/app/doc…" 10 seconds ago Up 8 seconds 3000/tcp strato_dappstore_1
c6816d69c065 registry-aws.blockapps.net:5000/blockapps-repo/cirrus:3.1.2 "sh /doit.sh" 11 seconds ago Up 10 seconds 3333/tcp strato_cirrus_1
1007876f283e registry-aws.blockapps.net:5000/blockapps-repo/bloc:3.1.2 "/usr/bin/bloc/doit.…" 12 seconds ago Up 11 seconds 8000/tcp, 8002/tcp strato_bloc_1
064fe3eb3498 registry-aws.blockapps.net:5000/blockapps-repo/strato:3.1.2 "/var/lib/doit.sh" 13 seconds ago Up 12 seconds 3000/tcp, 0.0.0.0:30303->30303/tcp, 0.0.0.0:30303->30303/udp strato_strato_1
9ccb0d987bc9 wurstmeister/kafka:1.1.0 "start-kafka.sh" 14 seconds ago Up 13 seconds strato_kafka_1
de49b416c1e9 registry-aws.blockapps.net:5000/blockapps-repo/postgrest:3.1.2 "sh /doit.sh" 5 minutes ago Up 5 minutes 3001/tcp strato_postgrest_1
5b4da01a7185 wurstmeister/zookeeper:3.4.6 "/bin/sh -c '/usr/sb…" 5 minutes ago Up 5 minutes 22/tcp, 2181/tcp, 2888/tcp, 3888/tcp strato_zookeeper_1
70eaab998732 postgres:9.6 "docker-entrypoint.s…" 5 minutes ago Up 5 minutes 5432/tcp strato_postgres_1
ab3ebd559572 redis:3.2 "docker-entrypoint.s…" 5 minutes ago Up 5 minutes 6379/tcp strato_redis_1
df72cabf4aab registry-aws.blockapps.net:5000/blockapps-repo/docs:3.1.2 "sh /usr/share/nginx…" 5 minutes ago Up 5 minutes 8080/tcp strato_docs_1
4. 動作確認
ブラウザでlocalhostと入力すると
ログインを求められるので、下記を入力してください。
username: admin
password: admin
添付画像のような画面が表示されたら成功です。
画面は「STRATO管理ダッシュボード(SMD)」と呼ばれるもので、Bloc APIやSTRATO APIを使用したローカル環境のEthereumブロックチェーンネットワーク用のダッシュボードです。ユーザやコントラクトの管理が可能です。
Swaggerにも対応しているため、APIの挙動確認は以下で実施できます。
strato-api: http://localhost/strato-api/eth/v1.2/docs
bloc api: http://localhost/bloc/v2.2/docs
5. 停止
strato.sh --stop
6. 抹消
以下のコマンドでブロックチェーン内に作成されたトランザクションやデータは削除できます。
strato.sh --wipe
ブロックチェーンのテストでは、再検証の際、ブロックチェーンを一から構築する必要があるので、テストを自動化した方がよいかもしれません。