|
1 | 1 | #!/bin/bash
|
2 | 2 |
|
3 |
| -# check if DELA_REPLICAS environment variable is set |
4 |
| -if [ -z ${DELA_REPLICAS} ]; then |
5 |
| - echo "DELA_REPLICAS environment variable needs to be set to use this script"; |
6 |
| - exit 1; |
7 |
| -fi |
8 |
| - |
9 |
| -LEADER_IP=$(docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' d-voting-dela-1); |
10 | 3 | MEMBERS="";
|
11 | 4 |
|
| 5 | +# create signing keys |
| 6 | +for container in dela-leader dela-worker-1 dela-worker-2; do |
| 7 | + docker compose exec "$container" crypto bls signer new --save /data/private.key; |
| 8 | +done |
| 9 | + |
12 | 10 | # share the certificate
|
13 |
| -for i in $(seq 2 "$DELA_REPLICAS"); do |
14 |
| - TOKEN_ARGS=$(docker exec d-voting-dela-1 /bin/bash -c 'LLVL=error memcoin --config /tmp/node minogrpc token'); |
15 |
| - docker exec d-voting-dela-"$i" memcoin --config /tmp/node minogrpc join --address //"$LEADER_IP":2000 $TOKEN_ARGS; |
| 11 | +for container in dela-worker-1 dela-worker-2; do |
| 12 | + TOKEN_ARGS=$(docker compose exec dela-leader /bin/bash -c 'LLVL=error memcoin --config /data/node minogrpc token'); |
| 13 | + docker compose exec "$container" memcoin --config /data/node minogrpc join --address //dela-leader:2000 $TOKEN_ARGS; |
16 | 14 | done
|
17 | 15 |
|
18 | 16 | # create a new chain with the nodes
|
19 |
| -for i in $(seq 1 "$DELA_REPLICAS"); do |
| 17 | +for container in dela-leader dela-worker-1 dela-worker-2; do |
20 | 18 | # add node to the chain
|
21 |
| - MEMBERS="$MEMBERS --member $(docker exec d-voting-dela-$i /bin/bash -c 'LLVL=error memcoin --config /tmp/node ordering export')"; |
| 19 | + MEMBERS="$MEMBERS --member $(docker compose exec $container /bin/bash -c 'LLVL=error memcoin --config /data/node ordering export')"; |
22 | 20 | done
|
23 |
| -docker exec d-voting-dela-1 memcoin --config /tmp/node ordering setup $MEMBERS; |
| 21 | +docker compose exec dela-leader memcoin --config /data/node ordering setup $MEMBERS; |
24 | 22 |
|
25 | 23 | # authorize the signer to handle the access contract on each node
|
26 |
| -for i in $(seq 1 "$DELA_REPLICAS"); do |
27 |
| - docker exec d-voting-dela-"$i" /bin/bash -c 'memcoin --config /tmp/node access add --identity $(crypto bls signer read --path /data/private.key --format BASE64_PUBKEY)'; |
| 24 | +for container in dela-leader dela-worker-1 dela-worker-2; do |
| 25 | + docker compose exec "$container" /bin/bash -c 'memcoin --config /data/node access add --identity $(crypto bls signer read --path /data/private.key --format BASE64_PUBKEY)'; |
28 | 26 | done
|
29 | 27 |
|
30 |
| -IDENTITY=$(docker exec d-voting-dela-1 crypto bls signer read --path /data/private.key --format BASE64_PUBKEY); |
| 28 | +IDENTITY=$(docker compose exec dela-leader crypto bls signer read --path /data/private.key --format BASE64_PUBKEY); |
31 | 29 | # update the access contract
|
32 |
| -docker exec d-voting-dela-1 memcoin --config /tmp/node pool add\ |
| 30 | +docker compose exec dela-leader memcoin --config /data/node pool add\ |
33 | 31 | --key /data/private.key\
|
34 | 32 | --args go.dedis.ch/dela.ContractArg\
|
35 | 33 | --args go.dedis.ch/dela.Access\
|
|
0 commit comments