-
Notifications
You must be signed in to change notification settings - Fork 2.6k
/
run-validator.sh
73 lines (60 loc) · 1.76 KB
/
run-validator.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#!/bin/bash
# USAGE examples:
# CLI with env vars: VALIDATOR_PRIVATE_KEY=APrivateKey1... PEERS=core_client_ip_1:4130,core_client_ip_2:4130,... VALIDATORS=validator_ip_1:5000,validator_ip_2:5000,... ./run-validator.sh
# CLI with prompts for vars: ./run-validator.sh
# If the env var VALIDATOR_PRIVATE_KEY is not set, prompt for it
if [ -z "${VALIDATOR_PRIVATE_KEY}" ]
then
read -r -p "Enter the Aleo Validator account private key: "
VALIDATOR_PRIVATE_KEY=$REPLY
fi
if [ "${VALIDATOR_PRIVATE_KEY}" == "" ]
then
echo "Missing account private key. (run 'snarkos account new' and try again)"
exit
fi
# If the env var PEERS is not set, prompt for it
if [ -z "${PEERS}" ]
then
read -r -p "Enter the peers (comma-separated) (e.g., validator_ip_1:4130,validator_ip_2:4130,...,core_client_ip_1:4130,core_client_ip_2:4130,...): "
PEERS=$REPLY
fi
if [ "${PEERS}" == "" ]
then
echo "Missing peers."
exit 1
fi
# If the env var VALIDATORS is not set, prompt for it
if [ -z "${VALIDATORS}" ]
then
read -r -p "Enter the validators (comma-separated) (e.g., validator_ip_1:5000,validator_ip_2:5000,...): "
VALIDATORS=$REPLY
fi
if [ "${VALIDATORS}" == "" ]
then
echo "Missing validators."
exit 1
fi
COMMAND="cargo run --release -- start --nodisplay --validator --bft 0.0.0.0:5000 --node 0.0.0.0:4130 --peers ${PEERS} --validators ${VALIDATORS} --norest --private-key ${VALIDATOR_PRIVATE_KEY}"
for word in $*;
do
COMMAND="${COMMAND} ${word}"
done
function exit_node()
{
echo "Exiting..."
kill $!
exit
}
trap exit_node SIGINT
echo "Checking for updates..."
git stash
rm Cargo.lock
STATUS=$(git pull)
if [ "$STATUS" != "Already up to date." ]; then
echo "Updated code found, cleaning the project"
cargo clean
fi
echo "Running an Aleo Validator node..."
$COMMAND &
wait