net/ can now deploy Snaps
This commit is contained in:
25
net/remote/remote_client.sh
Executable file → Normal file
25
net/remote/remote_client.sh
Executable file → Normal file
@ -1,14 +1,15 @@
|
||||
#!/bin/bash -e
|
||||
|
||||
cd "$(dirname "$0")"/../..
|
||||
|
||||
deployMethod="$1"
|
||||
netEntrypoint="$2"
|
||||
leaderIp="$2"
|
||||
numNodes="$3"
|
||||
RUST_LOG="$4"
|
||||
[[ -n $deployMethod ]] || exit
|
||||
[[ -n $netEntrypoint ]] || exit
|
||||
[[ -n $leaderIp ]] || exit
|
||||
[[ -n $numNodes ]] || exit
|
||||
|
||||
cd "$(dirname "$0")"/../..
|
||||
source net/common.sh
|
||||
loadConfigFile
|
||||
|
||||
@ -17,14 +18,19 @@ if [[ $threadCount -gt 4 ]]; then
|
||||
threadCount=4
|
||||
fi
|
||||
|
||||
./script/install-earlyoom.sh
|
||||
scripts/install-earlyoom.sh
|
||||
|
||||
case $deployMethod in
|
||||
snap)
|
||||
rsync -vPr "$leaderIp:~/solana/solana.snap" .
|
||||
sudo snap install solana.snap --devmode --dangerous
|
||||
rm solana.snap
|
||||
|
||||
sudo snap set solana metrics-config="$SOLANA_METRICS_CONFIG" rust-log="$RUST_LOG"
|
||||
sudo snap set solana "\
|
||||
leader-ip=$leaderIp \
|
||||
metrics-config=$SOLANA_METRICS_CONFIG \
|
||||
rust-log=$RUST_LOG \
|
||||
"
|
||||
solana_bench_tps=/snap/bin/solana.bench-tps
|
||||
;;
|
||||
local)
|
||||
@ -32,20 +38,19 @@ local)
|
||||
export USE_INSTALL=1
|
||||
export RUST_LOG
|
||||
|
||||
rsync -vPrz "$netEntrypoint:~/.cargo/bin/solana*" ~/.cargo/bin/
|
||||
solana_bench_tps=multinode-demo/client.sh
|
||||
netEntrypoint="$:~/solana"
|
||||
rsync -vPr "$leaderIp:~/.cargo/bin/solana*" ~/.cargo/bin/
|
||||
solana_bench_tps="multinode-demo/client.sh $leaderIp:~/solana"
|
||||
;;
|
||||
*)
|
||||
echo "Unknown deployment method: $deployMethod"
|
||||
exit 1
|
||||
esac
|
||||
|
||||
./scripts/oom-monitor.sh > oom-monitor.log 2>&1 &
|
||||
scripts/oom-monitor.sh > oom-monitor.log 2>&1 &
|
||||
|
||||
while true; do
|
||||
echo "=== Client start: $(date)" >> client.log
|
||||
clientCommand="$solana_bench_tps $netEntrypoint $numNodes --loop -s 600 --sustained -t threadCount"
|
||||
clientCommand="$solana_bench_tps --num-nodes $numNodes --loop -s 600 --sustained -t threadCount"
|
||||
echo "$ $clientCommand" >> client.log
|
||||
|
||||
$clientCommand >> client.log 2>&1
|
||||
|
@ -1,37 +1,51 @@
|
||||
#!/bin/bash -e
|
||||
|
||||
cd "$(dirname "$0")"/../..
|
||||
|
||||
deployMethod="$1"
|
||||
nodeType="$2"
|
||||
netEntrypoint="$3"
|
||||
setupArgs="$4"
|
||||
RUST_LOG="$5"
|
||||
leaderIp="$3"
|
||||
numNodes="$4"
|
||||
setupArgs="$5"
|
||||
RUST_LOG="$6"
|
||||
|
||||
cat > deployConfig <<EOF
|
||||
deployMethod="$deployMethod"
|
||||
leaderIp="$leaderIp"
|
||||
numNodes="$numNodes"
|
||||
EOF
|
||||
|
||||
[[ -n $deployMethod ]] || exit
|
||||
[[ -n $nodeType ]] || exit
|
||||
[[ -n $netEntrypoint ]] || exit
|
||||
[[ -n $leaderIp ]] || exit
|
||||
|
||||
cd "$(dirname "$0")"/../..
|
||||
source net/common.sh
|
||||
loadConfigFile
|
||||
|
||||
./script/install-earlyoom.sh
|
||||
scripts/install-earlyoom.sh
|
||||
|
||||
|
||||
case $deployMethod in
|
||||
snap)
|
||||
SECONDS=0
|
||||
rsync -vPr "$leaderIp:~/solana/solana.snap" .
|
||||
sudo snap install solana.snap --devmode --dangerous
|
||||
rm solana.snap
|
||||
|
||||
commonNodeConfig="\
|
||||
rust-log=$RUST_LOG \
|
||||
leader-ip=$leaderIp \
|
||||
metrics-config=$SOLANA_METRICS_CONFIG \
|
||||
rust-log=$RUST_LOG \
|
||||
setup-args=$setupArgs \
|
||||
enable-cuda=1 \
|
||||
"
|
||||
|
||||
if [[ -e /dev/nvidia0 ]]; then
|
||||
commonNodeConfig="$commonNodeConfig enable-cuda=1"
|
||||
fi
|
||||
|
||||
if [[ $nodeType = leader ]]; then
|
||||
nodeConfig="mode=leader+drone $commonNodeConfig"
|
||||
else
|
||||
nodeConfig="mode=validator leader-address=$netEntrypoint $commonNodeConfig"
|
||||
nodeConfig="mode=validator $commonNodeConfig"
|
||||
fi
|
||||
|
||||
logmarker="solana deploy $(date)/$RANDOM"
|
||||
@ -50,11 +64,13 @@ snap)
|
||||
local)
|
||||
PATH="$HOME"/.cargo/bin:"$PATH"
|
||||
export USE_INSTALL=1
|
||||
export SOLANA_CUDA=1
|
||||
export RUST_LOG=1
|
||||
export RUST_LOG
|
||||
if [[ -e /dev/nvidia0 ]]; then
|
||||
export SOLANA_CUDA=1
|
||||
fi
|
||||
|
||||
./fetch-perf-libs.sh
|
||||
./scripts/oom-monitor.sh > oom-monitor.log 2>&1 &
|
||||
scripts/oom-monitor.sh > oom-monitor.log 2>&1 &
|
||||
|
||||
case $nodeType in
|
||||
leader)
|
||||
@ -64,11 +80,11 @@ local)
|
||||
./multinode-demo/leader.sh > leader.log 2>&1 &
|
||||
;;
|
||||
validator)
|
||||
rsync -vPrz "$netEntrypoint:~/.cargo/bin/solana*" ~/.cargo/bin/
|
||||
rsync -vPr "$leaderIp:~/.cargo/bin/solana*" ~/.cargo/bin/
|
||||
|
||||
# shellcheck disable=SC2086 # Don't want to double quote "$setupArgs"
|
||||
./multinode-demo/setup.sh -t validator -p $setupArgs
|
||||
./multinode-demo/validator.sh "$netEntrypoint":~/solana "$netEntrypoint" >validator.log 2>&1 &
|
||||
./multinode-demo/validator.sh "$leaderIp":~/solana "$leaderIp" >validator.log 2>&1 &
|
||||
;;
|
||||
*)
|
||||
echo "Error: unknown node type: $nodeType"
|
||||
@ -80,4 +96,3 @@ local)
|
||||
echo "Unknown deployment method: $deployMethod"
|
||||
exit 1
|
||||
esac
|
||||
|
||||
|
@ -1,14 +1,25 @@
|
||||
#!/bin/bash -e
|
||||
|
||||
deployMethod="$1"
|
||||
netEntrypoint="$2"
|
||||
numNodes="$3"
|
||||
cd "$(dirname "$0")"/../..
|
||||
|
||||
[[ -n $deployMethod ]] || exit
|
||||
[[ -n $netEntrypoint ]] || exit
|
||||
[[ -n $numNodes ]] || exit
|
||||
deployMethod=
|
||||
leaderIp=
|
||||
numNodes=
|
||||
# shellcheck source=/dev/null # deployConfig is written by remote_sanity.sh
|
||||
source deployConfig
|
||||
|
||||
shift 3
|
||||
[[ -n $deployMethod ]] || {
|
||||
echo "deployMethod empty"
|
||||
exit 1
|
||||
}
|
||||
[[ -n $leaderIp ]] || {
|
||||
echo "leaderIp empty"
|
||||
exit 1
|
||||
}
|
||||
[[ -n $numNodes ]] || {
|
||||
echo "numNodes empty"
|
||||
exit 1
|
||||
}
|
||||
|
||||
ledgerVerify=true
|
||||
validatorSanity=true
|
||||
@ -29,26 +40,25 @@ while [[ $1 = "-o" ]]; do
|
||||
esac
|
||||
done
|
||||
|
||||
|
||||
cd "$(dirname "$0")"/../..
|
||||
source net/common.sh
|
||||
loadConfigFile
|
||||
|
||||
case $deployMethod in
|
||||
snap)
|
||||
PATH="/snap/bin:$PATH"
|
||||
export USE_SNAP=1
|
||||
solana_bench_tps=/snap/bin/solana.bench-tps
|
||||
solana_ledger_tool=/snap/bin/solana.ledger-tool
|
||||
|
||||
solana_bench_tps=solana.bench-tps
|
||||
solana_ledger_tool=solana.ledger-tool
|
||||
ledger=/var/snap/solana/current/config/ledger
|
||||
;;
|
||||
local)
|
||||
PATH="$HOME"/.cargo/bin:"$PATH"
|
||||
export USE_INSTALL=1
|
||||
|
||||
solana_bench_tps=multinode-demo/client.sh
|
||||
solana_bench_tps="multinode-demo/client.sh $leaderIp:~/solana"
|
||||
solana_ledger_tool=solana-ledger-tool
|
||||
ledger=config/ledger
|
||||
netEntrypoint="$:~/solana"
|
||||
;;
|
||||
*)
|
||||
echo "Unknown deployment method: $deployMethod"
|
||||
@ -56,19 +66,19 @@ local)
|
||||
esac
|
||||
|
||||
|
||||
echo "--- $netEntrypoint: wallet sanity"
|
||||
echo "--- $leaderIp: wallet sanity"
|
||||
(
|
||||
set -x
|
||||
multinode-demo/test/wallet-sanity.sh "$netEntrypoint"
|
||||
multinode-demo/test/wallet-sanity.sh "$leaderIp"
|
||||
)
|
||||
|
||||
echo "--- $netEntrypoint: node count"
|
||||
echo "--- $leaderIp: node count"
|
||||
(
|
||||
set -x
|
||||
$solana_bench_tps "$netEntrypoint" "$numNodes" -c
|
||||
$solana_bench_tps --num-nodes "$numNodes" --converge-only
|
||||
)
|
||||
|
||||
echo "--- $netEntrypoint: verify ledger"
|
||||
echo "--- $leaderIp: verify ledger"
|
||||
if $ledgerVerify; then
|
||||
if [[ -d $ledger ]]; then
|
||||
(
|
||||
@ -87,12 +97,12 @@ else
|
||||
fi
|
||||
|
||||
|
||||
echo "--- $netEntrypoint: validator sanity"
|
||||
echo "--- $leaderIp: validator sanity"
|
||||
if $validatorSanity; then
|
||||
(
|
||||
./multinode-demo/setup.sh -t validator
|
||||
set -e pipefail
|
||||
timeout 10s ./multinode-demo/validator.sh "$netEntrypoint" 2>&1 | tee validator.log
|
||||
timeout 10s ./multinode-demo/validator.sh "$leaderIp" 2>&1 | tee validator.log
|
||||
)
|
||||
wc -l validator.log
|
||||
if grep -C100 panic validator.log; then
|
||||
|
@ -9,3 +9,12 @@ systemctl disable apt-daily.service # disable run when system boot
|
||||
systemctl disable apt-daily.timer # disable timer run
|
||||
apt-get --assume-yes install rsync libssl-dev
|
||||
|
||||
cat > /etc/rsyncd.conf <<-EOF
|
||||
[config]
|
||||
path = /var/snap/solana/current/config
|
||||
hosts allow = *
|
||||
read only = true
|
||||
EOF
|
||||
|
||||
systemctl enable rsync
|
||||
systemctl start rsync
|
||||
|
Reference in New Issue
Block a user