-
Notifications
You must be signed in to change notification settings - Fork 4.4k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
7 changed files
with
239 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
# |source| me | ||
|
||
upload_ci_artifact() { | ||
echo "--- artifact: $1" | ||
if [[ -r "$1" ]]; then | ||
ls -l "$1" | ||
if ${BUILDKITE:-false}; then | ||
( | ||
set -x | ||
buildkite-agent artifact upload "$1" | ||
) | ||
fi | ||
else | ||
echo ^^^ +++ | ||
echo "$1 not found" | ||
fi | ||
} | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,105 @@ | ||
#!/bin/bash | ||
# | ||
# Runs a full node | ||
# | ||
|
||
here="$(dirname "$0")" | ||
|
||
usage() { | ||
if [[ -n "$1" ]]; then | ||
echo "$*" | ||
fi | ||
|
||
cat <<EOF | ||
Usage: $0 [mode] [public_address] [leader_address]" | ||
mode Select operation mode: | ||
leader - Run a leader | ||
leader-cuda - Run a leader with CUDA | ||
validator - Run a validator | ||
validator-cuda - Run a validator with CUDA | ||
public_address Public IP address of this node | ||
(hint: run |${here}/myip.sh| to help determine this value). | ||
leader_address Address of the leader node to connect with. | ||
Only required when mode=validator or mode=validator-cuda | ||
EOF | ||
exit 1 | ||
} | ||
|
||
|
||
MODE= | ||
if [[ -n "$1" ]]; then | ||
MODE="$1" | ||
elif [[ -d $SNAP ]]; then # Running as a Linux Snap? | ||
MODE="$(snapctl get mode)" | ||
fi | ||
[[ -n "$MODE" ]] || usage "Error: mode not specified" | ||
|
||
PUBLIC_ADDRESS= | ||
if [[ -n "$2" ]]; then | ||
PUBLIC_ADDRESS="$2" | ||
elif [[ -d $SNAP ]]; then # Running as a Linux Snap? | ||
PUBLIC_ADDRESS="$(snapctl get public-address)" | ||
fi | ||
[[ -n "$PUBLIC_ADDRESS" ]] || usage "Error: public_address not specified" | ||
|
||
|
||
FULLNODE=solana-fullnode | ||
if [[ "$MODE" =~ .*cuda ]]; then | ||
if [[ -z $SNAP ]]; then | ||
echo "Note: -cuda suffix ignored, use --features=cuda when running locally" | ||
else | ||
FULLNODE=solana-fullnode-cuda | ||
fi | ||
fi | ||
|
||
if [[ -z $SNAP ]]; then | ||
FULLNODE="cargo run --release --bin $FULLNODE --" | ||
fi | ||
DATA_DIR=${SNAP_DATA:-$PWD} | ||
|
||
export RUST_LOG=${RUST_LOG:-solana=info} # if RUST_LOG is unset, default to info | ||
export RUST_BACKTRACE=1 | ||
[[ $(uname) = Linux ]] && sudo sysctl -w net.core.rmem_max=26214400 1>/dev/null 2>/dev/null | ||
|
||
case $MODE in | ||
leader-cuda|leader) | ||
echo "Starting $MODE" | ||
set -x | ||
exec "$FULLNODE" -l "$DATA_DIR/leader.json" \ | ||
< "$DATA_DIR/genesis.log" "$DATA_DIR"/tx-*.log \ | ||
> "$DATA_DIR"/tx-"$(date -u +%Y%m%d%H%M%S%N)".log | ||
;; | ||
|
||
validator-cuda|validator) | ||
LEADER_ADDRESS=testnet.solana.com | ||
if [[ -n "$3" ]]; then | ||
LEADER_ADDRESS="$3" | ||
elif [[ -d $SNAP ]]; then # Running as a Linux Snap? | ||
LEADER_ADDRESS="$(snapctl get leader-address)" | ||
fi | ||
[[ -n "$LEADER_ADDRESS" ]] || usage "Error: leader_address not specified" | ||
|
||
echo "Fetching configuration from $LEADER_ADDRESS:" | ||
( | ||
set -x | ||
rsync -vrPz "rsync://$LEADER_ADDRESS/solana" "$DATA_DIR/$LEADER_ADDRESS" | ||
) || exit $? | ||
|
||
echo "Starting $MODE connecting to the leader at address: $LEADER_ADDRESS" | ||
set -x | ||
exec "$FULLNODE" \ | ||
-l "$DATA_DIR/validator.json" -v "$DATA_DIR/$LEADER_ADDRESS/leader.json" \ | ||
< "$DATA_DIR/$LEADER_ADDRESS/genesis.log" "$DATA_DIR/$LEADER_ADDRESS"/tx-*.log | ||
;; | ||
|
||
*) | ||
echo "Error: Unknown mode: $MODE" | ||
exit 1 | ||
;; | ||
esac | ||
|
||
exit 1 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
#!/bin/bash -e | ||
|
||
# Setup aliases to the normal solana command to make the reset of configure more | ||
# readable. | ||
shopt -s expand_aliases | ||
export SNAP SNAP_LIBRARY_PATH | ||
alias solana-mint-demo=$SNAP/command-mint-demo.wrapper | ||
alias solana-genesis-demo=$SNAP/command-genesis-demo.wrapper | ||
alias solana-fullnode-config=$SNAP/command-fullnode-config.wrapper | ||
|
||
echo Stopping daemon | ||
snapctl stop --disable solana.daemon | ||
if [[ -n "$(snapctl get mode)" ]]; then | ||
|
||
# | ||
# TODO: Merge this file with ../../../multinode-demo/setup.sh | ||
# | ||
|
||
NUM_TOKENS=1000000000 | ||
|
||
echo Cleaning $SNAP_DATA | ||
rm -rvf $SNAP_DATA/* | ||
|
||
echo Creating $SNAP_DATA/mint-demo.json | ||
solana-mint-demo <<<"$NUM_TOKENS" > $SNAP_DATA/mint-demo.json | ||
|
||
echo Creating $SNAP_DATA/genesis.log | ||
solana-genesis-demo < $SNAP_DATA/mint-demo.json > $SNAP_DATA/genesis.log | ||
|
||
echo Creating $SNAP_DATA/leader.json | ||
solana-fullnode-config -d > $SNAP_DATA/leader.json | ||
|
||
echo Creating $SNAP_DATA/validator.json | ||
solana-fullnode-config -d -b 9000 > $SNAP_DATA/validator.json | ||
|
||
echo Starting daemon as $MODE | ||
snapctl start --enable solana.daemon | ||
fi |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters