2019-02-28 21:21:29 +00:00
|
|
|
#!/bin/bash
|
|
|
|
|
2019-11-02 21:58:07 +00:00
|
|
|
set -e
|
2019-02-28 21:21:29 +00:00
|
|
|
|
2019-10-03 01:51:44 +00:00
|
|
|
NODE_ID=${1}
|
|
|
|
shift
|
|
|
|
|
2019-11-02 21:58:07 +00:00
|
|
|
# Read in variables
|
2019-11-14 17:37:51 +00:00
|
|
|
# shellcheck source=/dev/null
|
2019-09-05 10:55:47 +00:00
|
|
|
source "$(dirname "$0")/vars.sh"
|
2019-11-02 21:58:07 +00:00
|
|
|
|
2019-11-25 19:56:28 +00:00
|
|
|
if [[ ! -z "$1" ]]; then
|
|
|
|
BOOTSTRAP_NODE_ID=$1
|
|
|
|
BOOTSTRAP_ADDRESS_FILE="${SIMULATION_DIR}/node-${BOOTSTRAP_NODE_ID}/beacon_node.address"
|
|
|
|
shift
|
|
|
|
else
|
|
|
|
BOOTSTRAP_NODE_ID=$MASTER_NODE
|
|
|
|
BOOTSTRAP_ADDRESS_FILE=$NETWORK_BOOTSTRAP_FILE
|
|
|
|
fi
|
|
|
|
|
2019-11-02 21:58:07 +00:00
|
|
|
# set up the environment
|
2019-11-14 17:37:51 +00:00
|
|
|
# shellcheck source=/dev/null
|
2019-11-02 21:58:07 +00:00
|
|
|
source "${SIM_ROOT}/../../env.sh"
|
|
|
|
|
2019-03-28 15:18:59 +00:00
|
|
|
cd "$GIT_ROOT"
|
2019-02-28 21:21:29 +00:00
|
|
|
|
2019-10-03 01:51:44 +00:00
|
|
|
DATA_DIR="${SIMULATION_DIR}/node-$NODE_ID"
|
2019-11-11 01:28:13 +00:00
|
|
|
PORT=$(( BASE_P2P_PORT + NODE_ID ))
|
2019-03-19 18:57:57 +00:00
|
|
|
|
2019-04-18 00:02:14 +00:00
|
|
|
NAT_FLAG="--nat:none"
|
2019-03-19 18:57:57 +00:00
|
|
|
if [ "${NAT:-}" == "1" ]; then
|
2019-04-18 00:02:14 +00:00
|
|
|
NAT_FLAG="--nat:any"
|
2019-03-19 18:57:57 +00:00
|
|
|
fi
|
2019-03-07 13:59:28 +00:00
|
|
|
|
2019-11-21 09:15:10 +00:00
|
|
|
mkdir -p "$DATA_DIR/validators"
|
2019-03-28 22:36:39 +00:00
|
|
|
rm -f $DATA_DIR/validators/*
|
2019-05-14 13:31:19 +00:00
|
|
|
|
2019-11-11 01:28:13 +00:00
|
|
|
if [[ $NODE_ID -lt $TOTAL_NODES ]]; then
|
|
|
|
FIRST_VALIDATOR_IDX=$(( (NUM_VALIDATORS / TOTAL_NODES) * NODE_ID ))
|
|
|
|
LAST_VALIDATOR_IDX=$(( (NUM_VALIDATORS / TOTAL_NODES) * (NODE_ID + 1) - 1 ))
|
|
|
|
|
2019-11-21 09:15:10 +00:00
|
|
|
pushd "$VALIDATORS_DIR" >/dev/null
|
|
|
|
cp $(seq -s " " -f v%07g.privkey $FIRST_VALIDATOR_IDX $LAST_VALIDATOR_IDX) "$DATA_DIR/validators"
|
2019-11-11 01:28:13 +00:00
|
|
|
popd >/dev/null
|
|
|
|
fi
|
2019-03-28 22:36:39 +00:00
|
|
|
|
2019-12-03 11:32:27 +00:00
|
|
|
rm -rf "$DATA_DIR/dump"
|
|
|
|
mkdir -p "$DATA_DIR/dump"
|
|
|
|
|
2020-01-23 21:16:48 +00:00
|
|
|
NODE_BIN=$BEACON_NODE_BIN
|
|
|
|
if [[ $NODE_ID == $MASTER_NODE ]]; then
|
|
|
|
NODE_BIN=$BOOTSTRAP_NODE_BIN
|
|
|
|
fi
|
|
|
|
|
2020-02-14 12:35:23 +00:00
|
|
|
# if you want tracing messages, add "--log-level=TRACE" below
|
2020-02-04 15:03:39 +00:00
|
|
|
cd "$DATA_DIR" && $NODE_BIN \
|
2019-11-25 19:56:28 +00:00
|
|
|
--bootstrap-file=$BOOTSTRAP_ADDRESS_FILE \
|
2019-10-28 23:04:52 +00:00
|
|
|
--data-dir=$DATA_DIR \
|
|
|
|
--node-name=$NODE_ID \
|
|
|
|
--tcp-port=$PORT \
|
|
|
|
--udp-port=$PORT \
|
2019-03-19 18:57:57 +00:00
|
|
|
$NAT_FLAG \
|
2019-10-28 23:04:52 +00:00
|
|
|
--state-snapshot=$SNAPSHOT_FILE \
|
2019-07-18 11:36:53 +00:00
|
|
|
$DEPOSIT_WEB3_URL_ARG \
|
2019-10-28 23:04:52 +00:00
|
|
|
--deposit-contract=$DEPOSIT_CONTRACT_ADDRESS \
|
2020-02-17 18:24:14 +00:00
|
|
|
--verify-finalization=on \
|
2019-10-28 23:04:52 +00:00
|
|
|
--metrics-server=on \
|
|
|
|
--metrics-server-address="127.0.0.1" \
|
|
|
|
--metrics-server-port="$(( $BASE_METRICS_PORT + $NODE_ID ))" \
|
2019-11-12 17:45:57 +00:00
|
|
|
"$@"
|
2019-10-03 01:51:44 +00:00
|
|
|
|