diff --git a/multinode-demo/leader.sh b/multinode-demo/leader.sh index 4013c32877..7616743b2e 100755 --- a/multinode-demo/leader.sh +++ b/multinode-demo/leader.sh @@ -11,7 +11,9 @@ if [[ -d "$SNAP" ]]; then fi [[ -f "$SOLANA_CONFIG_DIR"/leader.json ]] || { - echo "$SOLANA_CONFIG_DIR/leader.json not found, run ${here}/setup.sh first" + echo "$SOLANA_CONFIG_DIR/leader.json not found, create it by running:" + echo + echo " ${here}/setup.sh -t leader" exit 1 } diff --git a/multinode-demo/setup.sh b/multinode-demo/setup.sh index dde6f7df81..01c006b471 100755 --- a/multinode-demo/setup.sh +++ b/multinode-demo/setup.sh @@ -5,8 +5,13 @@ here=$(dirname "$0") source "$here"/common.sh usage () { + exitcode=0 + if [[ -n "$1" ]]; then + exitcode=1 + echo "Error: $*" + fi cat < "$SOLANA_CONFIG_DIR"-private/mint.json -echo "Creating $SOLANA_CONFIG_DIR/genesis.log" -$solana_genesis < "$SOLANA_CONFIG_DIR"-private/mint.json > "$SOLANA_CONFIG_DIR"/genesis.log +if $node_type_leader; then + rm -rvf "$SOLANA_CONFIG_DIR"-private + mkdir -p "$SOLANA_CONFIG_DIR"-private -echo "Creating $SOLANA_CONFIG_DIR/leader.json" -$solana_fullnode_config "${leader_address_args[@]}" > "$SOLANA_CONFIG_DIR"/leader.json + echo "Creating $SOLANA_CONFIG_DIR/mint.json with $num_tokens tokens" + $solana_mint <<<"$num_tokens" > "$SOLANA_CONFIG_DIR"-private/mint.json -echo "Creating $SOLANA_CONFIG_DIR/validator.json" -$solana_fullnode_config "${validator_address_args[@]}" > "$SOLANA_CONFIG_DIR"/validator.json + echo "Creating $SOLANA_CONFIG_DIR/genesis.log" + $solana_genesis < "$SOLANA_CONFIG_DIR"-private/mint.json > "$SOLANA_CONFIG_DIR"/genesis.log -ls -lh "$SOLANA_CONFIG_DIR/" + echo "Creating $SOLANA_CONFIG_DIR/leader.json" + $solana_fullnode_config "${leader_address_args[@]}" > "$SOLANA_CONFIG_DIR"/leader.json +fi + + +if $node_type_validator; then + echo "Creating $SOLANA_CONFIG_DIR/validator.json" + $solana_fullnode_config "${validator_address_args[@]}" > "$SOLANA_CONFIG_DIR"/validator.json +fi + +ls -lh "$SOLANA_CONFIG_DIR"/ +if $node_type_leader; then + ls -lh "$SOLANA_CONFIG_DIR"-private/ +fi diff --git a/multinode-demo/validator.sh b/multinode-demo/validator.sh index 7fa785733e..5735895800 100755 --- a/multinode-demo/validator.sh +++ b/multinode-demo/validator.sh @@ -57,7 +57,9 @@ fi [[ -f "$SOLANA_CONFIG_DIR"/validator.json ]] || { - echo "$SOLANA_CONFIG_DIR/validator.json not found, run ${here}/setup.sh first" + echo "$SOLANA_CONFIG_DIR/validator.json not found, create it by running:" + echo + echo " ${here}/setup.sh -t validator" exit 1 } diff --git a/snap/hooks/configure b/snap/hooks/configure index c062f4610b..46f39885b7 100755 --- a/snap/hooks/configure +++ b/snap/hooks/configure @@ -12,17 +12,19 @@ fi ip_address_arg=-p # Use public IP address (TODO: make this configurable?) num_tokens="$(snapctl get num-tokens)" -$SNAP/bin/setup.sh ${num_tokens:+-n $num_tokens} ${ip_address_arg} case $mode in leader+drone) + $SNAP/bin/setup.sh ${num_tokens:+-n $num_tokens} ${ip_address_arg} -t leader snapctl start --enable solana.daemon-leader snapctl start --enable solana.daemon-drone ;; leader) + $SNAP/bin/setup.sh ${num_tokens:+-n $num_tokens} ${ip_address_arg} -t leader snapctl start --enable solana.daemon-leader ;; validator) + $SNAP/bin/setup.sh ${ip_address_arg} -t validator snapctl start --enable solana.daemon-validator ;; *)