version: '2.1' services: seth-cli: build: context: . dockerfile: ./cli/Dockerfile args: - ISOLATION_ID=${ISOLATION_ID} - http_proxy - https_proxy - no_proxy image: sawtooth-seth-cli:${ISOLATION_ID} container_name: seth-cli volumes: - ./contracts:/project/sawtooth-seth/contracts - sawtooth:/root/.sawtooth depends_on: - validator working_dir: /project/sawtooth-seth entrypoint: | bash -c " seth config init --url http://seth-rpc:3030 tail -f /dev/null " seth-cli-go: build: context: . dockerfile: ./cli-go/Dockerfile args: - ISOLATION_ID=${ISOLATION_ID} - http_proxy - https_proxy - no_proxy image: sawtooth-seth-cli-go:${ISOLATION_ID} container_name: seth-cli-go volumes: - ./contracts:/project/sawtooth-seth/contracts depends_on: - rest-api working_dir: /project/sawtooth-seth entrypoint: | bash -c " seth init http://rest-api:8008 && if [ ! -f /root/.sawtooth/keys/root.priv ]; then sawtooth keygen fi; tail -f /dev/null " seth-tp: build: context: . dockerfile: ./processor/Dockerfile args: - ISOLATION_ID=${ISOLATION_ID} - http_proxy - https_proxy - no_proxy tty: true stdin_open: true image: sawtooth-seth-tp:${ISOLATION_ID} container_name: seth-tp expose: - 4004 depends_on: - validator command: | bash -c " seth-tp -vv \ -C tcp://validator:4004 " block-info-tp: image: hyperledger/sawtooth-block-info-tp:1.0 container_name: block-info-tp expose: - 4004 depends_on: - validator command: block-info-tp -vv --connect tcp://validator:4004 settings-tp: image: hyperledger/sawtooth-settings-tp:1.0 container_name: settings-tp expose: - 4004 depends_on: - validator command: settings-tp -vv --connect tcp://validator:4004 rest-api: image: hyperledger/sawtooth-rest-api:1.0 container_name: rest-api expose: - 8008 depends_on: - validator entrypoint: | sawtooth-rest-api -vv --connect tcp://validator:4004 --bind rest-api:8008 validator: image: hyperledger/sawtooth-validator:1.0 container_name: sawtooth-validator volumes: - poet-shared:/poet-shared expose: - 4004 - 8800 - 5050 command: | bash -c " if [ ! -f /etc/keys/validator.priv ]; then sawadm keygen --force && \ mkdir -p /poet-shared/validator || true && \ cp -a /etc/sawtooth/keys /poet-shared/validator/ && \ while [ ! -f /poet-shared/poet-enclave-measurement ]; do sleep 1; done && \ while [ ! -f /poet-shared/poet-enclave-basename ]; do sleep 1; done && \ while [ ! -f /poet-shared/poet.batch ]; do sleep 1; done && \ cp /poet-shared/poet.batch / && sawset genesis \ -k /etc/sawtooth/keys/validator.priv \ -o config-genesis.batch && sawset proposal create \ -k /etc/sawtooth/keys/validator.priv \ sawtooth.consensus.algorithm.name=PoET \ sawtooth.consensus.algorithm.version=0.1 \ sawtooth.poet.report_public_key_pem=\ \\\"$$(cat /poet-shared/simulator_rk_pub.pem)\\\" \ sawtooth.poet.valid_enclave_measurements=$$(cat /poet-shared/poet-enclave-measurement) \ sawtooth.poet.valid_enclave_basenames=$$(cat /poet-shared/poet-enclave-basename) \ sawtooth.validator.batch_injectors=block_info \ -o config.batch && sawset proposal create \ -k /etc/sawtooth/keys/validator.priv \ sawtooth.poet.target_wait_time=5 \ sawtooth.poet.initial_wait_time=25 \ sawtooth.publisher.max_batches_per_block=100 \ -o poet-settings.batch && \ sawadm genesis config-genesis.batch config.batch fi; sawtooth-validator -vv \ --endpoint tcp://validator:8800 \ --bind component:tcp://eth0:4004 \ --bind consensus:tcp://eth0:5050 \ --bind network:tcp://eth0:8800 \ --scheduler parallel \ --network-auth trust " environment: PYTHONPATH: "/project/sawtooth-core/consensus/poet/common:\ /project/sawtooth-core/consensus/poet/simulator:\ /project/sawtooth-core/consensus/poet/core" stop_signal: SIGKILL seth-rpc: build: context: . dockerfile: ./rpc/Dockerfile args: - ISOLATION_ID=${ISOLATION_ID} - http_proxy - https_proxy - no_proxy image: sawtooth-seth-rpc:${ISOLATION_ID} container_name: seth-rpc volumes: - sawtooth:/root/.sawtooth depends_on: - validator ports: - 3030:3030 command: | bash -c " seth-rpc --connect tcp://validator:4004 --bind 0.0.0.0:3030 " poet-engine: image: hyperledger/sawtooth-poet-engine:1.1 container_name: sawtooth-poet-engine volumes: - poet-shared:/poet-shared command: "bash -c \"\ if [ ! -f /poet-shared/poet-enclave-measurement ]; then \ poet enclave measurement >> /poet-shared/poet-enclave-measurement; \ fi && \ if [ ! -f /poet-shared/poet-enclave-basename ]; then \ poet enclave basename >> /poet-shared/poet-enclave-basename; \ fi && \ if [ ! -f /poet-shared/simulator_rk_pub.pem ]; then \ cp /etc/sawtooth/simulator_rk_pub.pem /poet-shared; \ fi && \ while [ ! -f /poet-shared/validator/keys/validator.priv ]; do sleep 1; done && \ cp -a /poet-shared/validator/keys /etc/sawtooth && \ poet registration create -k /etc/sawtooth/keys/validator.priv -o /poet-shared/poet.batch && \ poet-engine -C tcp://validator:5050 --component tcp://validator:4004 \ \"" poet-validator-registry-tp: image: hyperledger/sawtooth-poet-validator-registry-tp:1.1 container_name: sawtooth-poet-validator-registry-tp expose: - 4004 command: poet-validator-registry-tp -C tcp://validator:4004 environment: PYTHONPATH: /project/sawtooth-core/consensus/poet/common stop_signal: SIGKILL volumes: sawtooth: poet-shared: