fixups, add validator-x to sanity

This commit is contained in:
Rob Walker
2018-08-03 14:56:35 -07:00
parent 19792192a7
commit c998199954
4 changed files with 33 additions and 28 deletions

View File

@ -9,7 +9,7 @@ source ci/upload_ci_artifact.sh
./multinode-demo/setup.sh ./multinode-demo/setup.sh
backgroundCommands="drone leader validator" backgroundCommands="drone leader validator validator-x"
pids=() pids=()
for cmd in $backgroundCommands; do for cmd in $backgroundCommands; do

View File

@ -77,8 +77,7 @@ mint_path="$SOLANA_CONFIG_PRIVATE_DIR"/mint.json
set -e set -e
for i in "$SOLANA_CONFIG_DIR" "$SOLANA_CONFIG_PRIVATE_DIR" "$SOLANA_CONFIG_VALIDATOR_DIR" for i in "$SOLANA_CONFIG_DIR" "$SOLANA_CONFIG_PRIVATE_DIR" "$SOLANA_CONFIG_VALIDATOR_DIR"; do
do
echo "Cleaning $i" echo "Cleaning $i"
rm -rvf "$i" rm -rvf "$i"
mkdir -p "$i" mkdir -p "$i"

4
multinode-demo/validator-x.sh Executable file
View File

@ -0,0 +1,4 @@
#!/bin/bash
here=$(dirname "$0")
exec "$here"/validator.sh -x "$@"

View File

@ -4,78 +4,80 @@ here=$(dirname "$0")
source "$here"/common.sh source "$here"/common.sh
usage() { usage() {
if [[ -n "$1" ]]; then if [[ -n $1 ]]; then
echo "$*" echo "$*"
echo echo
fi fi
echo "usage: $0 [rsync network path to solana repo on leader machine] [network ip address of leader]" echo "usage: $0 [-x] [rsync network path to solana repo on leader machine] [network ip address of leader]"
echo ""
echo " -x: runs a new, dynamically-configured validator"
exit 1 exit 1
} }
if [[ "$1" = "-h" || -n "$3" ]]; then if [[ $1 = -h || -n $3 ]]; then
usage usage
fi fi
if [[ "$1" == "-x" ]]; then if [[ $1 == -x ]]; then
self_setup=1 self_setup=1
shift shift
else else
self_setup=0 self_setup=0
fi fi
if [[ -d "$SNAP" ]]; then if [[ -d $SNAP ]]; then
# Exit if mode is not yet configured # Exit if mode is not yet configured
# (typically the case after the Snap is first installed) # (typically the case after the Snap is first installed)
[[ -n "$(snapctl get mode)" ]] || exit 0 [[ -n $(snapctl get mode) ]] || exit 0
# Select leader from the Snap configuration # Select leader from the Snap configuration
leader_address="$(snapctl get leader-address)" leader_address="$(snapctl get leader-address)"
if [[ -z "$leader_address" ]]; then if [[ -z $leader_address ]]; then
# Assume public testnet by default # Assume public testnet by default
leader_address=35.230.65.68 # testnet.solana.com leader_address=35.230.65.68 # testnet.solana.com
fi fi
leader="$leader_address" leader=$leader_address
else else
if [[ -z "$1" ]]; then if [[ -z $1 ]]; then
leader=${1:-${here}/..} # Default to local solana repo leader=${1:-${here}/..} # Default to local solana repo
leader_address=${2:-127.0.0.1} # Default to local leader leader_address=${2:-127.0.0.1} # Default to local leader
elif [[ -z "$2" ]]; then elif [[ -z "$2" ]]; then
leader="$1" leader=$1
leader_address=$(dig +short "$1" | head -n1) leader_address=$(dig +short "$1" | head -n1)
if [[ -z "$leader_address" ]]; then if [[ -z $leader_address ]]; then
usage "Error: unable to resolve IP address for $leader" usage "Error: unable to resolve IP address for $leader"
fi fi
else else
leader="$1" leader=$1
leader_address="$2" leader_address=$2
fi fi
fi fi
leader_port=8001 leader_port=8001
if [[ -n "$SOLANA_CUDA" ]]; then if [[ -n $SOLANA_CUDA ]]; then
program="$solana_fullnode_cuda" program=$solana_fullnode_cuda
else else
program="$solana_fullnode" program=$solana_fullnode
fi fi
if (( ! self_setup)); then if ((!self_setup)); then
[[ -f "$SOLANA_CONFIG_VALIDATOR_DIR"/validator.json ]] || { [[ -f $SOLANA_CONFIG_VALIDATOR_DIR/validator.json ]] || {
echo "$SOLANA_CONFIG_VALIDATOR_DIR/validator.json not found, create it by running:" echo "$SOLANA_CONFIG_VALIDATOR_DIR/validator.json not found, create it by running:"
echo echo
echo " ${here}/setup.sh" echo " ${here}/setup.sh"
exit 1 exit 1
} }
validator_json_path="$SOLANA_CONFIG_VALIDATOR_DIR"/validator.json validator_json_path=$SOLANA_CONFIG_VALIDATOR_DIR/validator.json
SOLANA_LEADER_CONFIG_DIR="$SOLANA_CONFIG_VALIDATOR_DIR"/leader-config SOLANA_LEADER_CONFIG_DIR=$SOLANA_CONFIG_VALIDATOR_DIR/leader-config
else else
validator_id_path="$SOLANA_CONFIG_PRIVATE_DIR"/validator-id-x$$.json validator_id_path=$SOLANA_CONFIG_PRIVATE_DIR/validator-id-x$$.json
$solana_keygen -o "$validator_id_path" $solana_keygen -o "$validator_id_path"
validator_json_path="$SOLANA_CONFIG_VALIDATOR_DIR"/validator-x$$.json validator_json_path=$SOLANA_CONFIG_VALIDATOR_DIR/validator-x$$.json
$solana_fullnode_config --keypair="$validator_id_path" -l -b $((9000+($$%1000))) > "$validator_json_path" $solana_fullnode_config --keypair="$validator_id_path" -l -b $((9000 + ($$ % 1000))) > "$validator_json_path"
SOLANA_LEADER_CONFIG_DIR="$SOLANA_CONFIG_VALIDATOR_DIR"/leader-config-x$$ SOLANA_LEADER_CONFIG_DIR=$SOLANA_CONFIG_VALIDATOR_DIR/leader-config-x$$
fi fi
rsync_leader_url=$(rsync_url "$leader") rsync_leader_url=$(rsync_url "$leader")
@ -85,7 +87,7 @@ tune_networking
rm -rf "$SOLANA_LEADER_CONFIG_DIR" rm -rf "$SOLANA_LEADER_CONFIG_DIR"
set -ex set -ex
$rsync -vPrz --max-size=100M "$rsync_leader_url"/config/ "$SOLANA_LEADER_CONFIG_DIR" $rsync -vPrz --max-size=100M "$rsync_leader_url"/config/ "$SOLANA_LEADER_CONFIG_DIR"
[[ -r "$SOLANA_LEADER_CONFIG_DIR"/ledger.log ]] || { [[ -r $SOLANA_LEADER_CONFIG_DIR/ledger.log ]] || {
echo "Unable to retrieve ledger.log from $rsync_leader_url" echo "Unable to retrieve ledger.log from $rsync_leader_url"
exit 1 exit 1
} }