* move `./run.sh` into `./scripts` (cherry picked from commit92e343da26
) * add some guidance in place of `./run.sh` (cherry picked from commit33de7b856f
) Co-authored-by: Trent Nelson <trent@solana.com>
This commit is contained in:
@ -51,11 +51,6 @@ $ cd solana
|
|||||||
$ cargo build
|
$ cargo build
|
||||||
```
|
```
|
||||||
|
|
||||||
## **4. Run a minimal local cluster.**
|
|
||||||
```bash
|
|
||||||
$ ./run.sh
|
|
||||||
```
|
|
||||||
|
|
||||||
# Testing
|
# Testing
|
||||||
|
|
||||||
**Run the test suite:**
|
**Run the test suite:**
|
||||||
|
@ -7,7 +7,7 @@ source multinode-demo/common.sh
|
|||||||
|
|
||||||
rm -rf config/run/init-completed config/ledger config/snapshot-ledger
|
rm -rf config/run/init-completed config/ledger config/snapshot-ledger
|
||||||
|
|
||||||
SOLANA_RUN_SH_VALIDATOR_ARGS="--snapshot-interval-slots 200" timeout 120 ./run.sh &
|
SOLANA_RUN_SH_VALIDATOR_ARGS="--snapshot-interval-slots 200" timeout 120 ./scripts/run.sh &
|
||||||
pid=$!
|
pid=$!
|
||||||
|
|
||||||
attempts=20
|
attempts=20
|
||||||
|
116
run.sh
Executable file → Normal file
116
run.sh
Executable file → Normal file
@ -1,114 +1,18 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
#
|
|
||||||
# Run a minimal Solana cluster. Ctrl-C to exit.
|
|
||||||
#
|
|
||||||
# Before running this script ensure standard Solana programs are available
|
|
||||||
# in the PATH, or that `cargo build` ran successfully
|
|
||||||
#
|
|
||||||
set -e
|
|
||||||
|
|
||||||
# Prefer possible `cargo build` binaries over PATH binaries
|
cat <<'EOF'
|
||||||
cd "$(dirname "$0")/"
|
|
||||||
|
|
||||||
profile=debug
|
WARNING! LEGACY SHELL SCRIPT
|
||||||
if [[ -n $NDEBUG ]]; then
|
|
||||||
profile=release
|
|
||||||
fi
|
|
||||||
PATH=$PWD/target/$profile:$PATH
|
|
||||||
|
|
||||||
ok=true
|
You almost certainly do not want to run this script!
|
||||||
for program in solana-{faucet,genesis,keygen,validator}; do
|
|
||||||
$program -V || ok=false
|
|
||||||
done
|
|
||||||
$ok || {
|
|
||||||
echo
|
|
||||||
echo "Unable to locate required programs. Try building them first with:"
|
|
||||||
echo
|
|
||||||
echo " $ cargo build --all"
|
|
||||||
echo
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
export RUST_LOG=${RUST_LOG:-solana=info,solana_runtime::message_processor=debug} # if RUST_LOG is unset, default to info
|
If you are a dapp developer and looking for a way to run a local validator, please
|
||||||
export RUST_BACKTRACE=1
|
see https://docs.solana.com/developing/test-validator
|
||||||
dataDir=$PWD/config/"$(basename "$0" .sh)"
|
|
||||||
ledgerDir=$PWD/config/ledger
|
|
||||||
|
|
||||||
SOLANA_RUN_SH_CLUSTER_TYPE=${SOLANA_RUN_SH_CLUSTER_TYPE:-development}
|
If you are a prospective validator, please see https://docs.solana.com/running-validator
|
||||||
|
|
||||||
set -x
|
If you are a core developer, many apologies for what you're about to endure, but
|
||||||
if ! solana address; then
|
you may be in the right place. This script is now located at `./scripts/run.sh`.
|
||||||
echo Generating default keypair
|
Please update whatever docs lead you here to reflect this change
|
||||||
solana-keygen new --no-passphrase
|
|
||||||
fi
|
|
||||||
validator_identity="$dataDir/validator-identity.json"
|
|
||||||
if [[ -e $validator_identity ]]; then
|
|
||||||
echo "Use existing validator keypair"
|
|
||||||
else
|
|
||||||
solana-keygen new --no-passphrase -so "$validator_identity"
|
|
||||||
fi
|
|
||||||
validator_vote_account="$dataDir/validator-vote-account.json"
|
|
||||||
if [[ -e $validator_vote_account ]]; then
|
|
||||||
echo "Use existing validator vote account keypair"
|
|
||||||
else
|
|
||||||
solana-keygen new --no-passphrase -so "$validator_vote_account"
|
|
||||||
fi
|
|
||||||
validator_stake_account="$dataDir/validator-stake-account.json"
|
|
||||||
if [[ -e $validator_stake_account ]]; then
|
|
||||||
echo "Use existing validator stake account keypair"
|
|
||||||
else
|
|
||||||
solana-keygen new --no-passphrase -so "$validator_stake_account"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ -e "$ledgerDir"/genesis.bin || -e "$ledgerDir"/genesis.tar.bz2 ]]; then
|
EOF
|
||||||
echo "Use existing genesis"
|
|
||||||
else
|
|
||||||
./fetch-spl.sh
|
|
||||||
if [[ -r spl-genesis-args.sh ]]; then
|
|
||||||
SPL_GENESIS_ARGS=$(cat spl-genesis-args.sh)
|
|
||||||
fi
|
|
||||||
|
|
||||||
# shellcheck disable=SC2086
|
|
||||||
solana-genesis \
|
|
||||||
--hashes-per-tick sleep \
|
|
||||||
--faucet-lamports 500000000000000000 \
|
|
||||||
--bootstrap-validator \
|
|
||||||
"$validator_identity" \
|
|
||||||
"$validator_vote_account" \
|
|
||||||
"$validator_stake_account" \
|
|
||||||
--ledger "$ledgerDir" \
|
|
||||||
--cluster-type "$SOLANA_RUN_SH_CLUSTER_TYPE" \
|
|
||||||
$SPL_GENESIS_ARGS \
|
|
||||||
$SOLANA_RUN_SH_GENESIS_ARGS
|
|
||||||
fi
|
|
||||||
|
|
||||||
abort() {
|
|
||||||
set +e
|
|
||||||
kill "$faucet" "$validator"
|
|
||||||
wait "$validator"
|
|
||||||
}
|
|
||||||
trap abort INT TERM EXIT
|
|
||||||
|
|
||||||
solana-faucet &
|
|
||||||
faucet=$!
|
|
||||||
|
|
||||||
args=(
|
|
||||||
--identity "$validator_identity"
|
|
||||||
--vote-account "$validator_vote_account"
|
|
||||||
--ledger "$ledgerDir"
|
|
||||||
--gossip-port 8001
|
|
||||||
--rpc-port 8899
|
|
||||||
--rpc-faucet-address 127.0.0.1:9900
|
|
||||||
--log -
|
|
||||||
--enable-rpc-transaction-history
|
|
||||||
--enable-cpi-and-log-storage
|
|
||||||
--init-complete-file "$dataDir"/init-completed
|
|
||||||
--snapshot-compression none
|
|
||||||
--require-tower
|
|
||||||
--no-wait-for-vote-to-start-leader
|
|
||||||
)
|
|
||||||
# shellcheck disable=SC2086
|
|
||||||
solana-validator "${args[@]}" $SOLANA_RUN_SH_VALIDATOR_ARGS &
|
|
||||||
validator=$!
|
|
||||||
|
|
||||||
wait "$validator"
|
|
||||||
|
114
scripts/run.sh
Executable file
114
scripts/run.sh
Executable file
@ -0,0 +1,114 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
#
|
||||||
|
# Run a minimal Solana cluster. Ctrl-C to exit.
|
||||||
|
#
|
||||||
|
# Before running this script ensure standard Solana programs are available
|
||||||
|
# in the PATH, or that `cargo build` ran successfully
|
||||||
|
#
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Prefer possible `cargo build` binaries over PATH binaries
|
||||||
|
cd "$(dirname "$0")/.."
|
||||||
|
|
||||||
|
profile=debug
|
||||||
|
if [[ -n $NDEBUG ]]; then
|
||||||
|
profile=release
|
||||||
|
fi
|
||||||
|
PATH=$PWD/target/$profile:$PATH
|
||||||
|
|
||||||
|
ok=true
|
||||||
|
for program in solana-{faucet,genesis,keygen,validator}; do
|
||||||
|
$program -V || ok=false
|
||||||
|
done
|
||||||
|
$ok || {
|
||||||
|
echo
|
||||||
|
echo "Unable to locate required programs. Try building them first with:"
|
||||||
|
echo
|
||||||
|
echo " $ cargo build --all"
|
||||||
|
echo
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
export RUST_LOG=${RUST_LOG:-solana=info,solana_runtime::message_processor=debug} # if RUST_LOG is unset, default to info
|
||||||
|
export RUST_BACKTRACE=1
|
||||||
|
dataDir=$PWD/config/"$(basename "$0" .sh)"
|
||||||
|
ledgerDir=$PWD/config/ledger
|
||||||
|
|
||||||
|
SOLANA_RUN_SH_CLUSTER_TYPE=${SOLANA_RUN_SH_CLUSTER_TYPE:-development}
|
||||||
|
|
||||||
|
set -x
|
||||||
|
if ! solana address; then
|
||||||
|
echo Generating default keypair
|
||||||
|
solana-keygen new --no-passphrase
|
||||||
|
fi
|
||||||
|
validator_identity="$dataDir/validator-identity.json"
|
||||||
|
if [[ -e $validator_identity ]]; then
|
||||||
|
echo "Use existing validator keypair"
|
||||||
|
else
|
||||||
|
solana-keygen new --no-passphrase -so "$validator_identity"
|
||||||
|
fi
|
||||||
|
validator_vote_account="$dataDir/validator-vote-account.json"
|
||||||
|
if [[ -e $validator_vote_account ]]; then
|
||||||
|
echo "Use existing validator vote account keypair"
|
||||||
|
else
|
||||||
|
solana-keygen new --no-passphrase -so "$validator_vote_account"
|
||||||
|
fi
|
||||||
|
validator_stake_account="$dataDir/validator-stake-account.json"
|
||||||
|
if [[ -e $validator_stake_account ]]; then
|
||||||
|
echo "Use existing validator stake account keypair"
|
||||||
|
else
|
||||||
|
solana-keygen new --no-passphrase -so "$validator_stake_account"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -e "$ledgerDir"/genesis.bin || -e "$ledgerDir"/genesis.tar.bz2 ]]; then
|
||||||
|
echo "Use existing genesis"
|
||||||
|
else
|
||||||
|
./fetch-spl.sh
|
||||||
|
if [[ -r spl-genesis-args.sh ]]; then
|
||||||
|
SPL_GENESIS_ARGS=$(cat spl-genesis-args.sh)
|
||||||
|
fi
|
||||||
|
|
||||||
|
# shellcheck disable=SC2086
|
||||||
|
solana-genesis \
|
||||||
|
--hashes-per-tick sleep \
|
||||||
|
--faucet-lamports 500000000000000000 \
|
||||||
|
--bootstrap-validator \
|
||||||
|
"$validator_identity" \
|
||||||
|
"$validator_vote_account" \
|
||||||
|
"$validator_stake_account" \
|
||||||
|
--ledger "$ledgerDir" \
|
||||||
|
--cluster-type "$SOLANA_RUN_SH_CLUSTER_TYPE" \
|
||||||
|
$SPL_GENESIS_ARGS \
|
||||||
|
$SOLANA_RUN_SH_GENESIS_ARGS
|
||||||
|
fi
|
||||||
|
|
||||||
|
abort() {
|
||||||
|
set +e
|
||||||
|
kill "$faucet" "$validator"
|
||||||
|
wait "$validator"
|
||||||
|
}
|
||||||
|
trap abort INT TERM EXIT
|
||||||
|
|
||||||
|
solana-faucet &
|
||||||
|
faucet=$!
|
||||||
|
|
||||||
|
args=(
|
||||||
|
--identity "$validator_identity"
|
||||||
|
--vote-account "$validator_vote_account"
|
||||||
|
--ledger "$ledgerDir"
|
||||||
|
--gossip-port 8001
|
||||||
|
--rpc-port 8899
|
||||||
|
--rpc-faucet-address 127.0.0.1:9900
|
||||||
|
--log -
|
||||||
|
--enable-rpc-transaction-history
|
||||||
|
--enable-cpi-and-log-storage
|
||||||
|
--init-complete-file "$dataDir"/init-completed
|
||||||
|
--snapshot-compression none
|
||||||
|
--require-tower
|
||||||
|
--no-wait-for-vote-to-start-leader
|
||||||
|
)
|
||||||
|
# shellcheck disable=SC2086
|
||||||
|
solana-validator "${args[@]}" $SOLANA_RUN_SH_VALIDATOR_ARGS &
|
||||||
|
validator=$!
|
||||||
|
|
||||||
|
wait "$validator"
|
@ -23,7 +23,7 @@ rm -rf usr/
|
|||||||
../../ci/docker-run.sh "$rust_stable_docker_image" \
|
../../ci/docker-run.sh "$rust_stable_docker_image" \
|
||||||
scripts/cargo-install-all.sh sdk/docker-solana/usr
|
scripts/cargo-install-all.sh sdk/docker-solana/usr
|
||||||
|
|
||||||
cp -f ../../run.sh usr/bin/solana-run.sh
|
cp -f ../../scripts/run.sh usr/bin/solana-run.sh
|
||||||
cp -f ../../fetch-spl.sh usr/bin/
|
cp -f ../../fetch-spl.sh usr/bin/
|
||||||
(
|
(
|
||||||
cd usr/bin
|
cd usr/bin
|
||||||
|
Reference in New Issue
Block a user