diff --git a/.circleci/config.yml b/.circleci/config.yml index 118a455..1c46009 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -8,7 +8,7 @@ orbs: environment: TARGET_NETWORK: development jobs: - init: + init_tss: executor: bridge/node-dev steps: - checkout @@ -16,12 +16,36 @@ jobs: - setup_remote_docker: version: 18.09.3 docker_layer_caching: true - - run: docker build -t tss -f ./src/tss/Dockerfile-local ./src/tss - - run: docker save -o /home/tss.tar tss + - run: docker build -t tss ./src/tss + - run: docker save tss | gzip ./workspace/tss.tar.gz - persist_to_workspace: - root: /home + root: ./workspace paths: - - tss.tar + - tss.tar.gz + + init_blockchains: + executor: bridge/node-dev + steps: + - checkout + - run: git submodule update --init + - setup_remote_docker: + version: 18.09.3 + docker_layer_caching: true + - run: ./demo/start-environment.sh + - run: touch ./src/test-services/.keys.$TARGET_NETWORK + - run: ./src/test-services/ethereumSend/run.sh 0x4db6b4bd0a3fdc03b027a60f1c48f05c572312aa 100 + - run: ./src/test-services/ethereumSend/run.sh 0xf7ca4aed1795e424433498cef43f6a3825c88731 100 + - run: ./src/test-services/ethereumSend/run.sh 0xad6c8127143032d843a260c5d379d8d9b3d51f15 100 + - run: docker kill ganache_side ganache_home + - run: docker run --rm -v "ganache_side_data:/ganache_side_data" -v "ganache_home_data:/ganache_home_data" -d --name tmp alpine:3.9.4 + - run: docker cp "tmp:/ganache_side_data" "./workspace/ganache_side_data" + - run: docker cp "tmp:/ganache_home_data" "./workspace/ganache_home_data" + - run: docker kill tmp + - persist_to_workspace: + root: ./workspace + paths: + - ganache_side_data + - ganache_home_data run_tests: executor: bridge/node-dev @@ -29,12 +53,16 @@ jobs: - checkout - run: git submodule update --init - attach_workspace: - at: /home + at: ./workspace - setup_remote_docker: version: 18.09.3 docker_layer_caching: true - - run: docker load -i /home/tss.tar + - run: docker load -i ./workspace/tss.tar.gz - run: docker images + - run: docker run --rm -v "ganache_side_data:/ganache_side_data" -v "ganache_home_data:/ganache_home_data" -d --name tmp alpine:3.9.4 + - run: docker cp "./workspace/ganache_side_data" "tmp:/ganache_side_data" + - run: docker cp "./workspace/ganache_home_data" "tmp:/ganache_home_data" + - run: docker kill tmp - run: command: ./tests/init.sh environment: @@ -43,7 +71,9 @@ workflows: version: 2 main: jobs: - - init + - init_tss + - init_blockchains - run_tests: requires: - - init + - init_tss + - init_blockchains diff --git a/DEMO.md b/DEMO.md index 8f51cf2..6294efe 100644 --- a/DEMO.md +++ b/DEMO.md @@ -72,7 +72,7 @@ The public Binance Chain testnet will keep a BEP2 token. ``` * (1.10) Build TSS to be used in the bridge oracles: ``` - docker build -t tss -f ./src/tss/Dockerfile-local ./src/tss + docker build -t tss ./src/tss ``` 2. Run test environment * 2.1 Running in development mode (using local ganache networks): diff --git a/demo/start-environment.sh b/demo/start-environment.sh index 1cf6371..3747465 100755 --- a/demo/start-environment.sh +++ b/demo/start-environment.sh @@ -20,7 +20,7 @@ start_dev_blockchain_networks() { docker kill ganache_side > /dev/null 2>&1 || true docker network create blockchain_side > /dev/null 2>&1 || true - docker run -d --network blockchain_side --rm --name ganache_side -v "$SIDE_GANACHE_DB:/app/db" \ + docker run -d --network blockchain_side --rm --name ganache_side -v "ganache_side_data:/app/db" -v "$SIDE_GANACHE_DB:/app/db" \ -p "7545:8545" \ trufflesuite/ganache-cli:latest \ -m "shrug dwarf easily blade trigger lucky reopen cage lake scatter desk boat" -i 33 -q --db /app/db -b 3 --noVMErrorsOnRPCResponse @@ -29,7 +29,7 @@ start_dev_blockchain_networks() { docker kill ganache_home > /dev/null 2>&1 || true docker network create blockchain_home > /dev/null 2>&1 || true - docker run -d --network blockchain_home --rm --name ganache_home -v "$HOME_GANACHE_DB:/app/db" \ + docker run -d --network blockchain_home --rm --name ganache_home -v "ganache_home_data:/app/db" -v "$HOME_GANACHE_DB:/app/db" \ -p "8545:8545" \ trufflesuite/ganache-cli:latest \ -m "shrug dwarf easily blade trigger lucky reopen cage lake scatter desk boat" -i 44 -q --db /app/db -b 3 --noVMErrorsOnRPCResponse diff --git a/src/tss/Dockerfile b/src/tss/Dockerfile index 5921579..9b509e8 100644 --- a/src/tss/Dockerfile +++ b/src/tss/Dockerfile @@ -3,24 +3,24 @@ FROM ubuntu:19.10 RUN apt-get update && \ apt-get install -y curl build-essential git openssl pkg-config libssl-dev libgmp3-dev -RUN curl https://sh.rustup.rs -sSf | sh -s -- --default-toolchain nightly -y - +RUN curl https://sh.rustup.rs -sSf | sh -s -- --default-toolchain nightly-2019-08-28 -y ENV PATH=/root/.cargo/bin:$PATH - -WORKDIR /repo - -RUN git clone https://github.com/KZen-networks/multi-party-ecdsa.git . - -RUN mkdir -p /tss/src && \ - cp /repo/Cargo.toml /tss/ && \ - cp /repo/src/lib.rs /tss/src/ +RUN cargo --version WORKDIR /tss +COPY ./multi-party-ecdsa/Cargo.lock ./multi-party-ecdsa/Cargo.toml /tss/ +COPY ./multi-party-ecdsa/src/lib.rs /tss/src/lib.rs + +# Download all dependencies +RUN cargo fetch + +# Build dependencies RUN cargo build --release || true -RUN cp -Tr /repo /tss +COPY ./multi-party-ecdsa /tss/ +# Build final executables RUN cargo build --release CMD echo Done diff --git a/src/tss/Dockerfile-local b/src/tss/Dockerfile-local deleted file mode 100644 index b0770df..0000000 --- a/src/tss/Dockerfile-local +++ /dev/null @@ -1,24 +0,0 @@ -FROM rust:1.38 - -RUN rustup default nightly-2019-08-28 && \ - cargo --version && \ - apt-get update && \ - apt-get install -y curl build-essential git openssl pkg-config libssl-dev libgmp3-dev - -WORKDIR /tss - -COPY ./multi-party-ecdsa/Cargo.lock ./multi-party-ecdsa/Cargo.toml /tss/ -COPY ./multi-party-ecdsa/src/lib.rs /tss/src/lib.rs - -# Download all dependencies -RUN cargo fetch - -# Build dependencies -RUN cargo build --release || true - -COPY ./multi-party-ecdsa /tss/ - -# Build final executables -RUN cargo build --release - -CMD echo Done diff --git a/tests/init.sh b/tests/init.sh index 94da659..860ec1b 100755 --- a/tests/init.sh +++ b/tests/init.sh @@ -3,12 +3,8 @@ set -e set -v -docker build -t tss -f ./src/tss/Dockerfile-local ./src/tss ./demo/start-environment.sh echo "FOREIGN_PRIVATE_KEY=$FOREIGN_PRIVATE_KEY" > ./src/test-services/.keys.$TARGET_NETWORK -./src/test-services/ethereumSend/run.sh 0x4db6b4bd0a3fdc03b027a60f1c48f05c572312aa 100 -./src/test-services/ethereumSend/run.sh 0xf7ca4aed1795e424433498cef43f6a3825c88731 100 -./src/test-services/ethereumSend/run.sh 0xad6c8127143032d843a260c5d379d8d9b3d51f15 100 ./src/test-services/binanceSend/run.sh tbnb14r3z8xk7qsar3vwj05w8cd8gqwk7g6gfurlt5l 100 0.1 ./src/test-services/binanceSend/run.sh tbnb1efjg7xt98t67ql2cmwjc5860lgayet9l8m55ym 100 0.1 ./src/test-services/binanceSend/run.sh tbnb12epcy4p7ktas0nlyrfuektcyh0e83dwzuq73f4 100 0.1