2018-12-07 10:00:35 -08:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
#
|
|
|
|
# Start the bootstrap leader node
|
|
|
|
#
|
2019-07-29 21:25:28 -07:00
|
|
|
set -e
|
2018-12-07 10:00:35 -08:00
|
|
|
|
|
|
|
here=$(dirname "$0")
|
2019-07-29 21:25:28 -07:00
|
|
|
# shellcheck source=multinode-demo/common.sh
|
|
|
|
source "$here"/common.sh
|
|
|
|
|
|
|
|
if [[ -n $SOLANA_CUDA ]]; then
|
|
|
|
program=$solana_validator_cuda
|
|
|
|
else
|
|
|
|
program=$solana_validator
|
|
|
|
fi
|
|
|
|
|
|
|
|
args=()
|
|
|
|
while [[ -n $1 ]]; do
|
|
|
|
if [[ ${1:0:1} = - ]]; then
|
|
|
|
if [[ $1 = --init-complete-file ]]; then
|
|
|
|
args+=("$1" "$2")
|
|
|
|
shift 2
|
2019-07-30 15:53:03 -07:00
|
|
|
elif [[ $1 = --gossip-port ]]; then
|
|
|
|
args+=("$1" "$2")
|
|
|
|
shift 2
|
2019-08-01 14:37:59 -07:00
|
|
|
elif [[ $1 = --dynamic-port-range ]]; then
|
|
|
|
args+=("$1" "$2")
|
|
|
|
shift 2
|
2019-09-17 10:05:41 -07:00
|
|
|
elif [[ $1 = --limit-ledger-size ]]; then
|
|
|
|
args+=("$1")
|
|
|
|
shift
|
2019-07-29 21:25:28 -07:00
|
|
|
else
|
|
|
|
echo "Unknown argument: $1"
|
|
|
|
$program --help
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
else
|
|
|
|
echo "Unknown argument: $1"
|
|
|
|
$program --help
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
|
|
|
|
if [[ -z $CI ]]; then # Skip in CI
|
|
|
|
# shellcheck source=scripts/tune-system.sh
|
|
|
|
source "$here"/../scripts/tune-system.sh
|
|
|
|
fi
|
|
|
|
|
|
|
|
setup_secondary_mount
|
|
|
|
|
|
|
|
# These keypairs are created by ./setup.sh and included in the genesis block
|
2019-07-30 22:43:47 -07:00
|
|
|
identity_keypair=$SOLANA_CONFIG_DIR/bootstrap-leader/identity-keypair.json
|
|
|
|
vote_keypair="$SOLANA_CONFIG_DIR"/bootstrap-leader/vote-keypair.json
|
|
|
|
storage_keypair=$SOLANA_CONFIG_DIR/bootstrap-leader/storage-keypair.json
|
2019-07-29 21:25:28 -07:00
|
|
|
|
2019-08-05 12:42:52 -07:00
|
|
|
ledger_dir="$SOLANA_CONFIG_DIR"/bootstrap-leader
|
2019-07-30 22:43:47 -07:00
|
|
|
[[ -d "$ledger_dir" ]] || {
|
|
|
|
echo "$ledger_dir does not exist"
|
|
|
|
echo
|
|
|
|
echo "Please run: $here/setup.sh"
|
|
|
|
exit 1
|
|
|
|
}
|
2019-07-29 21:25:28 -07:00
|
|
|
|
|
|
|
args+=(
|
2019-07-30 22:43:47 -07:00
|
|
|
--accounts "$SOLANA_CONFIG_DIR"/bootstrap-leader/accounts
|
2019-07-29 21:25:28 -07:00
|
|
|
--enable-rpc-exit
|
|
|
|
--identity "$identity_keypair"
|
2019-07-30 22:43:47 -07:00
|
|
|
--ledger "$ledger_dir"
|
2019-07-29 21:25:28 -07:00
|
|
|
--rpc-port 8899
|
2019-07-31 17:58:10 -07:00
|
|
|
--snapshot-interval-slots 100
|
2019-07-29 21:25:28 -07:00
|
|
|
--storage-keypair "$storage_keypair"
|
|
|
|
--voting-keypair "$vote_keypair"
|
|
|
|
--rpc-drone-address 127.0.0.1:9900
|
|
|
|
)
|
2019-07-30 15:53:03 -07:00
|
|
|
default_arg --gossip-port 8001
|
2019-07-29 21:25:28 -07:00
|
|
|
|
|
|
|
set -x
|
|
|
|
# shellcheck disable=SC2086 # Don't want to double quote $program
|
|
|
|
exec $program "${args[@]}"
|