-
Notifications
You must be signed in to change notification settings - Fork 108
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add scripts for client and relay working environments on docker (#844)
* add scripts for client and relay tests * re structure docker files used for testing * add small explanation on README
- Loading branch information
1 parent
1dd837f
commit e663c6f
Showing
9 changed files
with
228 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
FROM golang:1.17.1-buster AS builder | ||
|
||
ARG major=0 | ||
ARG minor=0 | ||
ARG patch=0 | ||
ARG gitCommit | ||
|
||
ENV GOPATH /go | ||
ENV SRC_PATH $GOPATH/src/github.com/drand/drand/ | ||
ENV GOPROXY https://proxy.golang.org | ||
|
||
# Get the TLS CA certificates, they're not provided by busybox. | ||
RUN apt-get update && apt-get install -y ca-certificates | ||
|
||
COPY go.* $SRC_PATH | ||
WORKDIR $SRC_PATH | ||
RUN go mod download | ||
|
||
COPY . $SRC_PATH | ||
RUN make client | ||
RUN make relay-http | ||
|
||
FROM busybox:1-glibc | ||
|
||
ENV GOPATH /go | ||
ENV SRC_PATH /go/src/github.com/drand/drand | ||
ENV DRAND_HOME /data/drand | ||
|
||
COPY --from=builder $SRC_PATH/drand-client /usr/local/bin/drand-client | ||
COPY --from=builder $SRC_PATH/drand-relay-http /usr/local/bin/drand-relay-http | ||
|
||
VOLUME $DRAND_HOME | ||
ENTRYPOINT [""] | ||
|
||
# Defaults for drand go here | ||
CMD [""] | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
# Instructions | ||
|
||
--- | ||
|
||
In order to run the docker compose file, you will need to build drand and drand-dev images. You will find two commands on Makefile for that. | ||
|
||
The commands are: | ||
- ```make build_docker``` | ||
- ```make build_docker_dev``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
File renamed without changes.
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,108 @@ | ||
################ Insecure mode ################ | ||
############################################### | ||
|
||
# Insecure is used because we are not using TLS to initiate the communication and we are not providing chain hash nor group file | ||
|
||
# Get last random value over http | ||
docker exec drand_client /bin/sh -c 'drand-client --url http://drand_0:8081 --insecure' | ||
docker exec drand_client /bin/sh -c 'drand-client --url http://drand_1:8181 --insecure' | ||
docker exec drand_client /bin/sh -c 'drand-client --url http://drand_2:8281 --insecure' | ||
docker exec drand_client /bin/sh -c 'drand-client --url http://drand_3:8381 --insecure' | ||
|
||
# Get last random value over grpc | ||
docker exec drand_client /bin/sh -c 'drand-client --grpc-connect drand_0:8080 --insecure' | ||
docker exec drand_client /bin/sh -c 'drand-client --grpc-connect drand_1:8180 --insecure' | ||
docker exec drand_client /bin/sh -c 'drand-client --grpc-connect drand_2:8280 --insecure' | ||
docker exec drand_client /bin/sh -c 'drand-client --grpc-connect drand_3:8380 --insecure' | ||
|
||
|
||
# Get random values as they become available over grpc | ||
docker exec drand_client /bin/sh -c 'drand-client --grpc-connect drand_0:8080 --insecure --watch' | ||
docker exec drand_client /bin/sh -c 'drand-client --grpc-connect drand_1:8180 --insecure --watch' | ||
docker exec drand_client /bin/sh -c 'drand-client --grpc-connect drand_2:8280 --insecure --watch' | ||
docker exec drand_client /bin/sh -c 'drand-client --grpc-connect drand_3:8380 --insecure --watch' | ||
|
||
# Get random values generated on round 1050 over grpc | ||
docker exec drand_client /bin/sh -c 'drand-client --grpc-connect drand_0:8080 --insecure --round 1050' | ||
docker exec drand_client /bin/sh -c 'drand-client --grpc-connect drand_1:8180 --insecure --round 1050' | ||
docker exec drand_client /bin/sh -c 'drand-client --grpc-connect drand_2:8280 --insecure --round 1050' | ||
docker exec drand_client /bin/sh -c 'drand-client --grpc-connect drand_3:8380 --insecure --round 1050' | ||
|
||
# Get random values generated on round 1050 over http | ||
docker exec drand_client /bin/sh -c 'drand-client --url http://drand_0:8081 --insecure --round 1050' | ||
docker exec drand_client /bin/sh -c 'drand-client --url http://drand_1:8181 --insecure --round 1050' | ||
docker exec drand_client /bin/sh -c 'drand-client --url http://drand_2:8281 --insecure --round 1050' | ||
docker exec drand_client /bin/sh -c 'drand-client --url http://drand_3:8381 --insecure --round 1050' | ||
|
||
############### With chain hash ############### | ||
############################################### | ||
|
||
# Insecure is kept there because we are not using TLS to initiate the communication | ||
|
||
# Get last random value over http | ||
docker exec drand_client /bin/sh -c 'drand-client --url http://drand_0:8081 --insecure --chain-hash 945ae851f30772add04b090fd6ba3d741969e38eee2f26fc77533e0d20a90493' | ||
docker exec drand_client /bin/sh -c 'drand-client --url http://drand_1:8181 --insecure --chain-hash 945ae851f30772add04b090fd6ba3d741969e38eee2f26fc77533e0d20a90493' | ||
docker exec drand_client /bin/sh -c 'drand-client --url http://drand_2:8281 --insecure --chain-hash 945ae851f30772add04b090fd6ba3d741969e38eee2f26fc77533e0d20a90493' | ||
docker exec drand_client /bin/sh -c 'drand-client --url http://drand_2:8281 --insecure --chain-hash 945ae851f30772add04b090fd6ba3d741969e38eee2f26fc77533e0d20a90493' | ||
|
||
# Get last random value over grpc | ||
docker exec drand_client /bin/sh -c 'drand-client --grpc-connect drand_0:8080 --insecure --chain-hash 945ae851f30772add04b090fd6ba3d741969e38eee2f26fc77533e0d20a90493' | ||
docker exec drand_client /bin/sh -c 'drand-client --grpc-connect drand_1:8180 --insecure --chain-hash 945ae851f30772add04b090fd6ba3d741969e38eee2f26fc77533e0d20a90493' | ||
docker exec drand_client /bin/sh -c 'drand-client --grpc-connect drand_2:8280 --insecure --chain-hash 945ae851f30772add04b090fd6ba3d741969e38eee2f26fc77533e0d20a90493' | ||
docker exec drand_client /bin/sh -c 'drand-client --grpc-connect drand_3:8380 --insecure --chain-hash 945ae851f30772add04b090fd6ba3d741969e38eee2f26fc77533e0d20a90493' | ||
|
||
|
||
# Get random values as they become available over grpc | ||
docker exec drand_client /bin/sh -c 'drand-client --grpc-connect drand_0:8080 --insecure --watch --chain-hash 945ae851f30772add04b090fd6ba3d741969e38eee2f26fc77533e0d20a90493' | ||
docker exec drand_client /bin/sh -c 'drand-client --grpc-connect drand_1:8180 --insecure --watch --chain-hash 945ae851f30772add04b090fd6ba3d741969e38eee2f26fc77533e0d20a90493' | ||
docker exec drand_client /bin/sh -c 'drand-client --grpc-connect drand_2:8280 --insecure --watch --chain-hash 945ae851f30772add04b090fd6ba3d741969e38eee2f26fc77533e0d20a90493' | ||
docker exec drand_client /bin/sh -c 'drand-client --grpc-connect drand_3:8380 --insecure --watch --chain-hash 945ae851f30772add04b090fd6ba3d741969e38eee2f26fc77533e0d20a90493' | ||
|
||
# Get random values generated on round 1050 over grpc | ||
docker exec drand_client /bin/sh -c 'drand-client --grpc-connect drand_0:8080 --insecure --round 1050 --chain-hash 945ae851f30772add04b090fd6ba3d741969e38eee2f26fc77533e0d20a90493' | ||
docker exec drand_client /bin/sh -c 'drand-client --grpc-connect drand_1:8180 --insecure --round 1050 --chain-hash 945ae851f30772add04b090fd6ba3d741969e38eee2f26fc77533e0d20a90493' | ||
docker exec drand_client /bin/sh -c 'drand-client --grpc-connect drand_2:8280 --insecure --round 1050 --chain-hash 945ae851f30772add04b090fd6ba3d741969e38eee2f26fc77533e0d20a90493' | ||
docker exec drand_client /bin/sh -c 'drand-client --grpc-connect drand_3:8380 --insecure --round 1050 --chain-hash 945ae851f30772add04b090fd6ba3d741969e38eee2f26fc77533e0d20a90493' | ||
|
||
# Get random values generated on round 1050 over http | ||
docker exec drand_client /bin/sh -c 'drand-client --url http://drand_0:8081 --insecure --round 1050 --chain-hash 945ae851f30772add04b090fd6ba3d741969e38eee2f26fc77533e0d20a90493' | ||
docker exec drand_client /bin/sh -c 'drand-client --url http://drand_1:8181 --insecure --round 1050 --chain-hash 945ae851f30772add04b090fd6ba3d741969e38eee2f26fc77533e0d20a90493' | ||
docker exec drand_client /bin/sh -c 'drand-client --url http://drand_2:8281 --insecure --round 1050 --chain-hash 945ae851f30772add04b090fd6ba3d741969e38eee2f26fc77533e0d20a90493' | ||
docker exec drand_client /bin/sh -c 'drand-client --url http://drand_2:8281 --insecure --round 1050 --chain-hash 945ae851f30772add04b090fd6ba3d741969e38eee2f26fc77533e0d20a90493' | ||
|
||
############### With chain hash ################# | ||
################ and config file ################ | ||
|
||
# Insecure is kept there because we are not using TLS to initiate the communication | ||
|
||
# Get last random value over http | ||
docker exec drand_client /bin/sh -c 'drand-client --url http://drand_0:8081 --insecure --chain-hash 945ae851f30772add04b090fd6ba3d741969e38eee2f26fc77533e0d20a90493 --group-conf ./data/drand_0/.drand/multibeacon/default/groups/drand_group.toml' | ||
docker exec drand_client /bin/sh -c 'drand-client --url http://drand_1:8181 --insecure --chain-hash 945ae851f30772add04b090fd6ba3d741969e38eee2f26fc77533e0d20a90493 --group-conf ./data/drand_1/.drand/multibeacon/default/groups/drand_group.toml' | ||
docker exec drand_client /bin/sh -c 'drand-client --url http://drand_2:8281 --insecure --chain-hash 945ae851f30772add04b090fd6ba3d741969e38eee2f26fc77533e0d20a90493 --group-conf ./data/drand_2/.drand/multibeacon/default/groups/drand_group.toml' | ||
docker exec drand_client /bin/sh -c 'drand-client --url http://drand_2:8281 --insecure --chain-hash 945ae851f30772add04b090fd6ba3d741969e38eee2f26fc77533e0d20a90493 --group-conf ./data/drand_3/.drand/multibeacon/default/groups/drand_group.toml' | ||
|
||
# Get last random value over grpc | ||
docker exec drand_client /bin/sh -c 'drand-client --grpc-connect drand_0:8080 --insecure --chain-hash 945ae851f30772add04b090fd6ba3d741969e38eee2f26fc77533e0d20a90493 --group-conf ./data/drand_0/.drand/multibeacon/default/groups/drand_group.toml' | ||
docker exec drand_client /bin/sh -c 'drand-client --grpc-connect drand_1:8180 --insecure --chain-hash 945ae851f30772add04b090fd6ba3d741969e38eee2f26fc77533e0d20a90493 --group-conf ./data/drand_1/.drand/multibeacon/default/groups/drand_group.toml' | ||
docker exec drand_client /bin/sh -c 'drand-client --grpc-connect drand_2:8280 --insecure --chain-hash 945ae851f30772add04b090fd6ba3d741969e38eee2f26fc77533e0d20a90493 --group-conf ./data/drand_2/.drand/multibeacon/default/groups/drand_group.toml' | ||
docker exec drand_client /bin/sh -c 'drand-client --grpc-connect drand_3:8380 --insecure --chain-hash 945ae851f30772add04b090fd6ba3d741969e38eee2f26fc77533e0d20a90493 --group-conf ./data/drand_3/.drand/multibeacon/default/groups/drand_group.toml' | ||
|
||
|
||
# Get random values as they become available over grpc | ||
docker exec drand_client /bin/sh -c 'drand-client --grpc-connect drand_0:8080 --insecure --watch --chain-hash 945ae851f30772add04b090fd6ba3d741969e38eee2f26fc77533e0d20a90493 --group-conf ./data/drand_0/.drand/multibeacon/default/groups/drand_group.toml' | ||
docker exec drand_client /bin/sh -c 'drand-client --grpc-connect drand_1:8180 --insecure --watch --chain-hash 945ae851f30772add04b090fd6ba3d741969e38eee2f26fc77533e0d20a90493 --group-conf ./data/drand_1/.drand/multibeacon/default/groups/drand_group.toml' | ||
docker exec drand_client /bin/sh -c 'drand-client --grpc-connect drand_2:8280 --insecure --watch --chain-hash 945ae851f30772add04b090fd6ba3d741969e38eee2f26fc77533e0d20a90493 --group-conf ./data/drand_2/.drand/multibeacon/default/groups/drand_group.toml' | ||
docker exec drand_client /bin/sh -c 'drand-client --grpc-connect drand_3:8380 --insecure --watch --chain-hash 945ae851f30772add04b090fd6ba3d741969e38eee2f26fc77533e0d20a90493 --group-conf ./data/drand_3/.drand/multibeacon/default/groups/drand_group.toml' | ||
|
||
# Get random values generated on round 1050 over grpc | ||
docker exec drand_client /bin/sh -c 'drand-client --grpc-connect drand_0:8080 --insecure --round 1050 --chain-hash 945ae851f30772add04b090fd6ba3d741969e38eee2f26fc77533e0d20a90493 --group-conf ./data/drand_0/.drand/multibeacon/default/groups/drand_group.toml' | ||
docker exec drand_client /bin/sh -c 'drand-client --grpc-connect drand_1:8180 --insecure --round 1050 --chain-hash 945ae851f30772add04b090fd6ba3d741969e38eee2f26fc77533e0d20a90493 --group-conf ./data/drand_1/.drand/multibeacon/default/groups/drand_group.toml' | ||
docker exec drand_client /bin/sh -c 'drand-client --grpc-connect drand_2:8280 --insecure --round 1050 --chain-hash 945ae851f30772add04b090fd6ba3d741969e38eee2f26fc77533e0d20a90493 --group-conf ./data/drand_2/.drand/multibeacon/default/groups/drand_group.toml' | ||
docker exec drand_client /bin/sh -c 'drand-client --grpc-connect drand_3:8380 --insecure --round 1050 --chain-hash 945ae851f30772add04b090fd6ba3d741969e38eee2f26fc77533e0d20a90493 --group-conf ./data/drand_3/.drand/multibeacon/default/groups/drand_group.toml' | ||
|
||
# Get random values generated on round 1050 over http | ||
docker exec drand_client /bin/sh -c 'drand-client --url http://drand_0:8081 --insecure --round 1050 --chain-hash 945ae851f30772add04b090fd6ba3d741969e38eee2f26fc77533e0d20a90493 --group-conf ./data/drand_0/.drand/multibeacon/default/groups/drand_group.toml' | ||
docker exec drand_client /bin/sh -c 'drand-client --url http://drand_1:8181 --insecure --round 1050 --chain-hash 945ae851f30772add04b090fd6ba3d741969e38eee2f26fc77533e0d20a90493 --group-conf ./data/drand_1/.drand/multibeacon/default/groups/drand_group.toml' | ||
docker exec drand_client /bin/sh -c 'drand-client --url http://drand_2:8281 --insecure --round 1050 --chain-hash 945ae851f30772add04b090fd6ba3d741969e38eee2f26fc77533e0d20a90493 --group-conf ./data/drand_2/.drand/multibeacon/default/groups/drand_group.toml' | ||
docker exec drand_client /bin/sh -c 'drand-client --url http://drand_3:8381 --insecure --round 1050 --chain-hash 945ae851f30772add04b090fd6ba3d741969e38eee2f26fc77533e0d20a90493 --group-conf ./data/drand_3/.drand/multibeacon/default/groups/drand_group.toml' | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
## Start drand-relay-http inside running drand containers (Dockerfile) | ||
mkdir -p tmp/relay/node_0 | ||
cd ./tmp/relay/node_0 | ||
nohup docker exec drand_relay /bin/sh -c 'drand-relay-http --url http://drand_0:8081 --insecure --bind 0.0.0.0:9080' & | ||
cd ../../../ | ||
|
||
mkdir -p tmp/relay/node_1 | ||
cd ./tmp/relay/node_1 | ||
nohup docker exec drand_relay /bin/sh -c 'drand-relay-http --url http://drand_1:8181 --insecure --bind 0.0.0.0:9180' & | ||
cd ../../../ | ||
|
||
mkdir -p tmp/relay/node_2 | ||
cd ./tmp/relay/node_2 | ||
nohup docker exec drand_relay /bin/sh -c 'drand-relay-http --url http://drand_2:8281 --insecure --bind 0.0.0.0:9280' & | ||
cd ../../../ | ||
|
||
mkdir -p tmp/relay/node_3 | ||
cd ./tmp/relay/node_3 | ||
nohup docker exec drand_relay /bin/sh -c 'drand-relay-http --url http://drand_3:8381 --insecure --bind 0.0.0.0:9380' & | ||
cd ../../../ | ||
|
||
sleep 5s | ||
|
||
# Fetch round 1050 | ||
curl http://127.0.0.1:9080/public/1050 | ||
curl http://127.0.0.1:9180/public/1050 | ||
curl http://127.0.0.1:9280/public/1050 | ||
|
||
# Fetch latest round | ||
curl http://127.0.0.1:9080/public/latest | ||
curl http://127.0.0.1:9180/public/latest | ||
curl http://127.0.0.1:9280/public/latest | ||
|
||
# Fetch chain info | ||
curl http://127.0.0.1:9080/info | ||
curl http://127.0.0.1:9180/info | ||
curl http://127.0.0.1:9280/info | ||
|
||
# Check how relay is working (difference between last seen and expected round) | ||
curl http://127.0.0.1:9080/health | ||
curl http://127.0.0.1:9180/health | ||
curl http://127.0.0.1:9280/health |