Rename remaining uses of fullnode to validator (#6476)

automerge
This commit is contained in:
Greg Fitzgerald
2019-10-21 21:21:21 -06:00
committed by Grimes
parent 18feba2431
commit 3b9b9b1500
12 changed files with 139 additions and 139 deletions

View File

@ -69,7 +69,7 @@ To run a multinode testnet, after starting a leader node, spin up some additiona
$ ./multinode-demo/validator-x.sh $ ./multinode-demo/validator-x.sh
``` ```
To run a performance-enhanced full node on Linux, [CUDA 10.0](https://developer.nvidia.com/cuda-downloads) must be installed on your system: To run a performance-enhanced validator on Linux, [CUDA 10.0](https://developer.nvidia.com/cuda-downloads) must be installed on your system:
```bash ```bash
$ ./fetch-perf-libs.sh $ ./fetch-perf-libs.sh

View File

@ -188,7 +188,7 @@ The public key of a [keypair](terminology.md#keypair).
## archiver ## archiver
Storage mining client, stores some part of the ledger enumerated in blocks and submits storage proofs to the chain. Not a full-node. Storage mining client, stores some part of the ledger enumerated in blocks and submits storage proofs to the chain. Not a validator.
## root ## root

View File

@ -5,10 +5,10 @@ cd "$(dirname "$0")"/..
source ci/upload-ci-artifact.sh source ci/upload-ci-artifact.sh
zone= zone=
bootstrapFullNodeAddress= bootstrapValidatorAddress=
bootstrapFullNodeMachineType= bootstrapValidatorMachineType=
clientNodeCount=0 clientNodeCount=0
additionalFullNodeCount=10 additionalValidatorCount=10
publicNetwork=false publicNetwork=false
stopNetwork=false stopNetwork=false
reuseLedger=false reuseLedger=false
@ -29,7 +29,7 @@ maybeInternalNodesLamports=
maybeExternalPrimordialAccountsFile= maybeExternalPrimordialAccountsFile=
maybeLamports= maybeLamports=
maybeLetsEncrypt= maybeLetsEncrypt=
maybeFullnodeAdditionalDiskSize= maybeValidatorAdditionalDiskSize=
maybeNoSnapshot= maybeNoSnapshot=
maybeLimitLedgerSize= maybeLimitLedgerSize=
@ -54,13 +54,13 @@ Deploys a CD testnet
specified release channel (edge|beta|stable) or release tag specified release channel (edge|beta|stable) or release tag
(vX.Y.Z) (vX.Y.Z)
(default: $tarChannelOrTag) (default: $tarChannelOrTag)
-n [number] - Number of additional full nodes (default: $additionalFullNodeCount) -n [number] - Number of additional validators (default: $additionalValidatorCount)
-c [number] - Number of client bencher nodes (default: $clientNodeCount) -c [number] - Number of client bencher nodes (default: $clientNodeCount)
-u - Include a Blockstreamer (default: $blockstreamer) -u - Include a Blockstreamer (default: $blockstreamer)
-P - Use public network IP addresses (default: $publicNetwork) -P - Use public network IP addresses (default: $publicNetwork)
-G - Enable GPU, and set count/type of GPUs to use (e.g n1-standard-16 --accelerator count=2,type=nvidia-tesla-v100) -G - Enable GPU, and set count/type of GPUs to use (e.g n1-standard-16 --accelerator count=2,type=nvidia-tesla-v100)
-g - Enable GPU (default: $enableGpu) -g - Enable GPU (default: $enableGpu)
-a [address] - Set the bootstrap fullnode's external IP address to this GCE address -a [address] - Set the bootstrap validator's external IP address to this GCE address
-d [disk-type] - Specify a boot disk type (default None) Use pd-ssd to get ssd on GCE. -d [disk-type] - Specify a boot disk type (default None) Use pd-ssd to get ssd on GCE.
-D - Delete the network -D - Delete the network
-r - Reuse existing node/ledger configuration from a -r - Reuse existing node/ledger configuration from a
@ -88,8 +88,8 @@ Deploys a CD testnet
- If set, will not fetch logs from remote nodes - If set, will not fetch logs from remote nodes
--letsencrypt [dns name] --letsencrypt [dns name]
- Attempt to generate a TLS certificate using this DNS name - Attempt to generate a TLS certificate using this DNS name
--fullnode-additional-disk-size-gb [number] --validator-additional-disk-size-gb [number]
- Size of additional disk in GB for all fullnodes - Size of additional disk in GB for all validators
--no-snapshot-fetch --no-snapshot-fetch
- If set, disables booting validators from a snapshot - If set, disables booting validators from a snapshot
@ -128,8 +128,8 @@ while [[ -n $1 ]]; do
elif [[ $1 = --letsencrypt ]]; then elif [[ $1 = --letsencrypt ]]; then
maybeLetsEncrypt="$1 $2" maybeLetsEncrypt="$1 $2"
shift 2 shift 2
elif [[ $1 = --fullnode-additional-disk-size-gb ]]; then elif [[ $1 = --validator-additional-disk-size-gb ]]; then
maybeFullnodeAdditionalDiskSize="$1 $2" maybeValidatorAdditionalDiskSize="$1 $2"
shift 2 shift 2
elif [[ $1 == --machine-type* ]]; then # Bypass quoted long args for GPUs elif [[ $1 == --machine-type* ]]; then # Bypass quoted long args for GPUs
shortArgs+=("$1") shortArgs+=("$1")
@ -167,7 +167,7 @@ while getopts "h?p:Pn:c:t:gG:a:Dd:rusxz:p:C:Sfe" opt "${shortArgs[@]}"; do
publicNetwork=true publicNetwork=true
;; ;;
n) n)
additionalFullNodeCount=$OPTARG additionalValidatorCount=$OPTARG
;; ;;
c) c)
clientNodeCount=$OPTARG clientNodeCount=$OPTARG
@ -187,10 +187,10 @@ while getopts "h?p:Pn:c:t:gG:a:Dd:rusxz:p:C:Sfe" opt "${shortArgs[@]}"; do
;; ;;
G) G)
enableGpu=true enableGpu=true
bootstrapFullNodeMachineType=$OPTARG bootstrapValidatorMachineType=$OPTARG
;; ;;
a) a)
bootstrapFullNodeAddress=$OPTARG bootstrapValidatorAddress=$OPTARG
;; ;;
d) d)
bootDiskType=$OPTARG bootDiskType=$OPTARG
@ -275,9 +275,9 @@ if ! $skipCreate; then
echo "--- $cloudProvider.sh create" echo "--- $cloudProvider.sh create"
create_args=( create_args=(
-p "$netName" -p "$netName"
-a "$bootstrapFullNodeAddress" -a "$bootstrapValidatorAddress"
-c "$clientNodeCount" -c "$clientNodeCount"
-n "$additionalFullNodeCount" -n "$additionalValidatorCount"
--dedicated --dedicated
) )
# shellcheck disable=SC2206 # shellcheck disable=SC2206
@ -297,10 +297,10 @@ if ! $skipCreate; then
fi fi
if $enableGpu; then if $enableGpu; then
if [[ -z $bootstrapFullNodeMachineType ]]; then if [[ -z $bootstrapValidatorMachineType ]]; then
create_args+=(-g) create_args+=(-g)
else else
create_args+=(-G "$bootstrapFullNodeMachineType") create_args+=(-G "$bootstrapValidatorMachineType")
fi fi
fi fi
@ -316,9 +316,9 @@ if ! $skipCreate; then
create_args+=(-f) create_args+=(-f)
fi fi
if [[ -n $maybeFullnodeAdditionalDiskSize ]]; then if [[ -n $maybeValidatorAdditionalDiskSize ]]; then
# shellcheck disable=SC2206 # Do not want to quote # shellcheck disable=SC2206 # Do not want to quote
create_args+=($maybeFullnodeAdditionalDiskSize) create_args+=($maybeValidatorAdditionalDiskSize)
fi fi
time net/"$cloudProvider".sh create "${create_args[@]}" time net/"$cloudProvider".sh create "${create_args[@]}"

View File

@ -114,7 +114,7 @@ GCE_ZONES=(
europe-west4-c europe-west4-c
) )
# GCE zones with enough quota for one CPU-only fullnode # GCE zones with enough quota for one CPU-only validator
GCE_LOW_QUOTA_ZONES=( GCE_LOW_QUOTA_ZONES=(
asia-east2-a asia-east2-a
asia-northeast1-b asia-northeast1-b
@ -515,11 +515,11 @@ deploy() {
fi fi
if [[ -z $ADDITIONAL_DISK_SIZE_GB ]]; then if [[ -z $ADDITIONAL_DISK_SIZE_GB ]]; then
maybeAdditionalDisk="--fullnode-additional-disk-size-gb 32000" maybeAdditionalDisk="--validator-additional-disk-size-gb 32000"
elif [[ $ADDITIONAL_DISK_SIZE_GB == skip ]]; then elif [[ $ADDITIONAL_DISK_SIZE_GB == skip ]]; then
maybeAdditionalDisk="" maybeAdditionalDisk=""
else else
maybeAdditionalDisk="--fullnode-additional-disk-size-gb ${ADDITIONAL_DISK_SIZE_GB}" maybeAdditionalDisk="--validator-additional-disk-size-gb ${ADDITIONAL_DISK_SIZE_GB}"
fi fi

View File

@ -29,9 +29,9 @@ sshPrivateKey=
letsEncryptDomainName= letsEncryptDomainName=
externalNodeSshKey= externalNodeSshKey=
sshOptions=() sshOptions=()
fullnodeIpList=() validatorIpList=()
fullnodeIpListPrivate=() validatorIpListPrivate=()
fullnodeIpListZone=() validatorIpListZone=()
clientIpList=() clientIpList=()
clientIpListPrivate=() clientIpListPrivate=()
clientIpListZone=() clientIpListZone=()
@ -64,14 +64,14 @@ loadConfigFile() {
[[ -n "$publicNetwork" ]] || usage "Config file invalid, publicNetwork unspecified: $configFile" [[ -n "$publicNetwork" ]] || usage "Config file invalid, publicNetwork unspecified: $configFile"
[[ -n "$netBasename" ]] || usage "Config file invalid, netBasename unspecified: $configFile" [[ -n "$netBasename" ]] || usage "Config file invalid, netBasename unspecified: $configFile"
[[ -n $sshPrivateKey ]] || usage "Config file invalid, sshPrivateKey unspecified: $configFile" [[ -n $sshPrivateKey ]] || usage "Config file invalid, sshPrivateKey unspecified: $configFile"
[[ ${#fullnodeIpList[@]} -gt 0 ]] || usage "Config file invalid, fullnodeIpList unspecified: $configFile" [[ ${#validatorIpList[@]} -gt 0 ]] || usage "Config file invalid, validatorIpList unspecified: $configFile"
[[ ${#fullnodeIpListPrivate[@]} -gt 0 ]] || usage "Config file invalid, fullnodeIpListPrivate unspecified: $configFile" [[ ${#validatorIpListPrivate[@]} -gt 0 ]] || usage "Config file invalid, validatorIpListPrivate unspecified: $configFile"
[[ ${#fullnodeIpList[@]} -eq ${#fullnodeIpListPrivate[@]} ]] || usage "Config file invalid, fullnodeIpList/fullnodeIpListPrivate length mismatch: $configFile" [[ ${#validatorIpList[@]} -eq ${#validatorIpListPrivate[@]} ]] || usage "Config file invalid, validatorIpList/validatorIpListPrivate length mismatch: $configFile"
if $publicNetwork; then if $publicNetwork; then
entrypointIp=${fullnodeIpList[0]} entrypointIp=${validatorIpList[0]}
else else
entrypointIp=${fullnodeIpListPrivate[0]} entrypointIp=${validatorIpListPrivate[0]}
fi fi
buildSshOptions buildSshOptions

View File

@ -15,7 +15,7 @@ gce)
cpuBootstrapLeaderMachineType="--custom-cpu 12 --custom-memory 32GB --min-cpu-platform Intel%20Skylake" cpuBootstrapLeaderMachineType="--custom-cpu 12 --custom-memory 32GB --min-cpu-platform Intel%20Skylake"
gpuBootstrapLeaderMachineType="$cpuBootstrapLeaderMachineType --accelerator count=1,type=nvidia-tesla-p100" gpuBootstrapLeaderMachineType="$cpuBootstrapLeaderMachineType --accelerator count=1,type=nvidia-tesla-p100"
bootstrapLeaderMachineType=$cpuBootstrapLeaderMachineType bootstrapLeaderMachineType=$cpuBootstrapLeaderMachineType
fullNodeMachineType=$cpuBootstrapLeaderMachineType validatorMachineType=$cpuBootstrapLeaderMachineType
clientMachineType="--custom-cpu 16 --custom-memory 20GB" clientMachineType="--custom-cpu 16 --custom-memory 20GB"
blockstreamerMachineType="--machine-type n1-standard-8" blockstreamerMachineType="--machine-type n1-standard-8"
archiverMachineType="--custom-cpu 4 --custom-memory 16GB" archiverMachineType="--custom-cpu 4 --custom-memory 16GB"
@ -31,7 +31,7 @@ ec2)
# AVX-512 # AVX-512
gpuBootstrapLeaderMachineType=p2.xlarge gpuBootstrapLeaderMachineType=p2.xlarge
bootstrapLeaderMachineType=$cpuBootstrapLeaderMachineType bootstrapLeaderMachineType=$cpuBootstrapLeaderMachineType
fullNodeMachineType=$cpuBootstrapLeaderMachineType validatorMachineType=$cpuBootstrapLeaderMachineType
clientMachineType=c5.2xlarge clientMachineType=c5.2xlarge
blockstreamerMachineType=c5.2xlarge blockstreamerMachineType=c5.2xlarge
archiverMachineType=c5.xlarge archiverMachineType=c5.xlarge
@ -44,7 +44,7 @@ azure)
cpuBootstrapLeaderMachineType=Standard_D16s_v3 cpuBootstrapLeaderMachineType=Standard_D16s_v3
gpuBootstrapLeaderMachineType=Standard_NC12 gpuBootstrapLeaderMachineType=Standard_NC12
bootstrapLeaderMachineType=$cpuBootstrapLeaderMachineType bootstrapLeaderMachineType=$cpuBootstrapLeaderMachineType
fullNodeMachineType=$cpuBootstrapLeaderMachineType validatorMachineType=$cpuBootstrapLeaderMachineType
clientMachineType=Standard_D16s_v3 clientMachineType=Standard_D16s_v3
blockstreamerMachineType=Standard_D16s_v3 blockstreamerMachineType=Standard_D16s_v3
archiverMachineType=Standard_D4s_v3 archiverMachineType=Standard_D4s_v3
@ -56,7 +56,7 @@ colo)
cpuBootstrapLeaderMachineType=0 cpuBootstrapLeaderMachineType=0
gpuBootstrapLeaderMachineType=1 gpuBootstrapLeaderMachineType=1
bootstrapLeaderMachineType=$cpuBootstrapLeaderMachineType bootstrapLeaderMachineType=$cpuBootstrapLeaderMachineType
fullNodeMachineType=$cpuBootstrapLeaderMachineType validatorMachineType=$cpuBootstrapLeaderMachineType
clientMachineType=0 clientMachineType=0
blockstreamerMachineType=0 blockstreamerMachineType=0
archiverMachineType=0 archiverMachineType=0
@ -68,14 +68,14 @@ esac
prefix=testnet-dev-${USER//[^A-Za-z0-9]/} prefix=testnet-dev-${USER//[^A-Za-z0-9]/}
additionalFullNodeCount=2 additionalValidatorCount=2
clientNodeCount=0 clientNodeCount=0
archiverNodeCount=0 archiverNodeCount=0
blockstreamer=false blockstreamer=false
fullNodeBootDiskSizeInGb=500 validatorBootDiskSizeInGb=500
clientBootDiskSizeInGb=75 clientBootDiskSizeInGb=75
archiverBootDiskSizeInGb=500 archiverBootDiskSizeInGb=500
fullNodeAdditionalDiskSizeInGb= validatorAdditionalDiskSizeInGb=
externalNodes=false externalNodes=false
failOnValidatorBootupFailure=true failOnValidatorBootupFailure=true
preemptible=true preemptible=true
@ -114,7 +114,7 @@ Manage testnet instances
-p [prefix] - Optional common prefix for instance names to avoid -p [prefix] - Optional common prefix for instance names to avoid
collisions (default: $prefix) collisions (default: $prefix)
-z [zone] - Zone(s) for the nodes (default: $(cloud_DefaultZone)) -z [zone] - Zone(s) for the nodes (default: $(cloud_DefaultZone))
If specified multiple times, the fullnodes will be evenly If specified multiple times, the validators will be evenly
distributed over all specified zones and distributed over all specified zones and
client/blockstreamer nodes will be created in the first client/blockstreamer nodes will be created in the first
zone zone
@ -125,7 +125,7 @@ Manage testnet instances
successfully successfully
create-specific options: create-specific options:
-n [number] - Number of additional fullnodes (default: $additionalFullNodeCount) -n [number] - Number of additional validators (default: $additionalValidatorCount)
-c [number] - Number of client nodes (default: $clientNodeCount) -c [number] - Number of client nodes (default: $clientNodeCount)
-r [number] - Number of archiver nodes (default: $archiverNodeCount) -r [number] - Number of archiver nodes (default: $archiverNodeCount)
-u - Include a Blockstreamer (default: $blockstreamer) -u - Include a Blockstreamer (default: $blockstreamer)
@ -134,7 +134,7 @@ Manage testnet instances
-G - Enable GPU, and set count/type of GPUs to use -G - Enable GPU, and set count/type of GPUs to use
(e.g $gpuBootstrapLeaderMachineType) (e.g $gpuBootstrapLeaderMachineType)
-a [address] - Address to be be assigned to the Blockstreamer if present, -a [address] - Address to be be assigned to the Blockstreamer if present,
otherwise the bootstrap fullnode. otherwise the bootstrap validator.
* For GCE, [address] is the "name" of the desired External * For GCE, [address] is the "name" of the desired External
IP Address. IP Address.
* For EC2, [address] is the "allocation ID" of the desired * For EC2, [address] is the "allocation ID" of the desired
@ -143,11 +143,11 @@ Manage testnet instances
--letsencrypt [dns name] - Attempt to generate a TLS certificate using this --letsencrypt [dns name] - Attempt to generate a TLS certificate using this
DNS name (useful only when the -a and -P options DNS name (useful only when the -a and -P options
are also provided) are also provided)
--fullnode-additional-disk-size-gb [number] --validator-additional-disk-size-gb [number]
- Add an additional [number] GB SSD to all fullnodes to store the config directory. - Add an additional [number] GB SSD to all validators to store the config directory.
If not set, config will be written to the boot disk by default. If not set, config will be written to the boot disk by default.
Only supported on GCE. Only supported on GCE.
--dedicated - Use dedicated instances for additional full nodes --dedicated - Use dedicated instances for additional validators
(by default preemptible instances are used to reduce (by default preemptible instances are used to reduce
cost). Note that the bootstrap leader, archiver, cost). Note that the bootstrap leader, archiver,
blockstreamer and client nodes are always dedicated. blockstreamer and client nodes are always dedicated.
@ -177,8 +177,8 @@ while [[ -n $1 ]]; do
if [[ $1 = --letsencrypt ]]; then if [[ $1 = --letsencrypt ]]; then
letsEncryptDomainName="$2" letsEncryptDomainName="$2"
shift 2 shift 2
elif [[ $1 = --fullnode-additional-disk-size-gb ]]; then elif [[ $1 = --validator-additional-disk-size-gb ]]; then
fullNodeAdditionalDiskSizeInGb="$2" validatorAdditionalDiskSizeInGb="$2"
shift 2 shift 2
elif [[ $1 == --machine-type* || $1 == --custom-cpu* ]]; then # Bypass quoted long args for GPUs elif [[ $1 == --machine-type* || $1 == --custom-cpu* ]]; then # Bypass quoted long args for GPUs
shortArgs+=("$1") shortArgs+=("$1")
@ -211,7 +211,7 @@ while getopts "h?p:Pn:c:r:z:gG:a:d:uxf" opt "${shortArgs[@]}"; do
publicNetwork=true publicNetwork=true
;; ;;
n) n)
additionalFullNodeCount=$OPTARG additionalValidatorCount=$OPTARG
;; ;;
c) c)
clientNodeCount=$OPTARG clientNodeCount=$OPTARG
@ -225,13 +225,13 @@ while getopts "h?p:Pn:c:r:z:gG:a:d:uxf" opt "${shortArgs[@]}"; do
g) g)
enableGpu=true enableGpu=true
bootstrapLeaderMachineType=$gpuBootstrapLeaderMachineType bootstrapLeaderMachineType=$gpuBootstrapLeaderMachineType
fullNodeMachineType=$bootstrapLeaderMachineType validatorMachineType=$bootstrapLeaderMachineType
blockstreamerMachineType=$bootstrapLeaderMachineType blockstreamerMachineType=$bootstrapLeaderMachineType
;; ;;
G) G)
enableGpu=true enableGpu=true
bootstrapLeaderMachineType="$OPTARG" bootstrapLeaderMachineType="$OPTARG"
fullNodeMachineType=$bootstrapLeaderMachineType validatorMachineType=$bootstrapLeaderMachineType
blockstreamerMachineType=$bootstrapLeaderMachineType blockstreamerMachineType=$bootstrapLeaderMachineType
;; ;;
a) a)
@ -268,8 +268,8 @@ case $cloudProvider in
gce) gce)
;; ;;
ec2|azure|colo) ec2|azure|colo)
if [[ -n $fullNodeAdditionalDiskSizeInGb ]] ; then if [[ -n $validatorAdditionalDiskSizeInGb ]] ; then
usage "Error: --fullnode-additional-disk-size-gb currently only supported with cloud provider: gce" usage "Error: --validator-additional-disk-size-gb currently only supported with cloud provider: gce"
fi fi
;; ;;
*) *)
@ -492,16 +492,16 @@ EOF
exit 1 exit 1
} }
echo "fullnodeIpList=()" >> "$configFile" echo "validatorIpList=()" >> "$configFile"
echo "fullnodeIpListPrivate=()" >> "$configFile" echo "validatorIpListPrivate=()" >> "$configFile"
cloud_ForEachInstance recordInstanceIp true fullnodeIpList cloud_ForEachInstance recordInstanceIp true validatorIpList
fi fi
if [[ $additionalFullNodeCount -gt 0 ]]; then if [[ $additionalValidatorCount -gt 0 ]]; then
numZones=${#zones[@]} numZones=${#zones[@]}
if [[ $additionalFullNodeCount -gt $numZones ]]; then if [[ $additionalValidatorCount -gt $numZones ]]; then
numNodesPerZone=$((additionalFullNodeCount / numZones)) numNodesPerZone=$((additionalValidatorCount / numZones))
numLeftOverNodes=$((additionalFullNodeCount % numZones)) numLeftOverNodes=$((additionalValidatorCount % numZones))
else else
numNodesPerZone=1 numNodesPerZone=1
numLeftOverNodes=0 numLeftOverNodes=0
@ -512,13 +512,13 @@ EOF
if [[ $i -eq 0 ]]; then if [[ $i -eq 0 ]]; then
numNodesPerZone=$((numNodesPerZone + numLeftOverNodes)) numNodesPerZone=$((numNodesPerZone + numLeftOverNodes))
fi fi
echo "Looking for additional fullnode instances in $zone ..." echo "Looking for additional validator instances in $zone ..."
cloud_FindInstances "$prefix-$zone-fullnode" cloud_FindInstances "$prefix-$zone-validator"
declare numInstances=${#instances[@]} declare numInstances=${#instances[@]}
if [[ $numInstances -ge $numNodesPerZone || ( ! $failOnValidatorBootupFailure && $numInstances -gt 0 ) ]]; then if [[ $numInstances -ge $numNodesPerZone || ( ! $failOnValidatorBootupFailure && $numInstances -gt 0 ) ]]; then
cloud_ForEachInstance recordInstanceIp "$failOnValidatorBootupFailure" fullnodeIpList cloud_ForEachInstance recordInstanceIp "$failOnValidatorBootupFailure" validatorIpList
else else
echo "Unable to find additional fullnodes" echo "Unable to find additional validators"
if $failOnValidatorBootupFailure; then if $failOnValidatorBootupFailure; then
exit 1 exit 1
fi fi
@ -600,7 +600,7 @@ delete)
;; ;;
create) create)
[[ -n $additionalFullNodeCount ]] || usage "Need number of nodes" [[ -n $additionalValidatorCount ]] || usage "Need number of nodes"
delete delete
@ -619,7 +619,7 @@ create)
cat <<EOF cat <<EOF
==[ Network composition ]=============================================================== ==[ Network composition ]===============================================================
Bootstrap leader = $bootstrapLeaderMachineType (GPU=$enableGpu) Bootstrap leader = $bootstrapLeaderMachineType (GPU=$enableGpu)
Additional fullnodes = $additionalFullNodeCount x $fullNodeMachineType Additional validators = $additionalValidatorCount x $validatorMachineType
Client(s) = $clientNodeCount x $clientMachineType Client(s) = $clientNodeCount x $clientMachineType
Archivers(s) = $archiverNodeCount x $archiverMachineType Archivers(s) = $archiverNodeCount x $archiverMachineType
Blockstreamer = $blockstreamer Blockstreamer = $blockstreamer
@ -706,7 +706,7 @@ $(
cat enable-nvidia-persistence-mode.sh cat enable-nvidia-persistence-mode.sh
fi fi
if [[ -n $fullNodeAdditionalDiskSizeInGb ]]; then if [[ -n $validatorAdditionalDiskSizeInGb ]]; then
cat mount-additional-disk.sh cat mount-additional-disk.sh
fi fi
) )
@ -734,16 +734,16 @@ EOF
echo "Bootstrap leader is already configured" echo "Bootstrap leader is already configured"
else else
cloud_CreateInstances "$prefix" "$prefix-bootstrap-leader" 1 \ cloud_CreateInstances "$prefix" "$prefix-bootstrap-leader" 1 \
"$enableGpu" "$bootstrapLeaderMachineType" "${zones[0]}" "$fullNodeBootDiskSizeInGb" \ "$enableGpu" "$bootstrapLeaderMachineType" "${zones[0]}" "$validatorBootDiskSizeInGb" \
"$startupScript" "$bootstrapLeaderAddress" "$bootDiskType" "$fullNodeAdditionalDiskSizeInGb" \ "$startupScript" "$bootstrapLeaderAddress" "$bootDiskType" "$validatorAdditionalDiskSizeInGb" \
"never preemptible" "$sshPrivateKey" "never preemptible" "$sshPrivateKey"
fi fi
if [[ $additionalFullNodeCount -gt 0 ]]; then if [[ $additionalValidatorCount -gt 0 ]]; then
num_zones=${#zones[@]} num_zones=${#zones[@]}
if [[ $additionalFullNodeCount -gt $num_zones ]]; then if [[ $additionalValidatorCount -gt $num_zones ]]; then
numNodesPerZone=$((additionalFullNodeCount / num_zones)) numNodesPerZone=$((additionalValidatorCount / num_zones))
numLeftOverNodes=$((additionalFullNodeCount % num_zones)) numLeftOverNodes=$((additionalValidatorCount % num_zones))
else else
numNodesPerZone=1 numNodesPerZone=1
numLeftOverNodes=0 numLeftOverNodes=0
@ -754,9 +754,9 @@ EOF
if [[ $i -eq 0 ]]; then if [[ $i -eq 0 ]]; then
numNodesPerZone=$((numNodesPerZone + numLeftOverNodes)) numNodesPerZone=$((numNodesPerZone + numLeftOverNodes))
fi fi
cloud_CreateInstances "$prefix" "$prefix-$zone-fullnode" "$numNodesPerZone" \ cloud_CreateInstances "$prefix" "$prefix-$zone-validator" "$numNodesPerZone" \
"$enableGpu" "$fullNodeMachineType" "$zone" "$fullNodeBootDiskSizeInGb" \ "$enableGpu" "$validatorMachineType" "$zone" "$validatorBootDiskSizeInGb" \
"$startupScript" "" "$bootDiskType" "$fullNodeAdditionalDiskSizeInGb" \ "$startupScript" "" "$bootDiskType" "$validatorAdditionalDiskSizeInGb" \
"$preemptible" "$sshPrivateKey" & "$preemptible" "$sshPrivateKey" &
done done
@ -771,7 +771,7 @@ EOF
if $blockstreamer; then if $blockstreamer; then
cloud_CreateInstances "$prefix" "$prefix-blockstreamer" "1" \ cloud_CreateInstances "$prefix" "$prefix-blockstreamer" "1" \
"$enableGpu" "$blockstreamerMachineType" "${zones[0]}" "$fullNodeBootDiskSizeInGb" \ "$enableGpu" "$blockstreamerMachineType" "${zones[0]}" "$validatorBootDiskSizeInGb" \
"$startupScript" "$blockstreamerAddress" "$bootDiskType" "" "$sshPrivateKey" "$startupScript" "$blockstreamerAddress" "$bootDiskType" "" "$sshPrivateKey"
fi fi
@ -802,12 +802,12 @@ info)
printNode "Node Type" "Public IP" "Private IP" "Zone" printNode "Node Type" "Public IP" "Private IP" "Zone"
echo "-------------------+-----------------+-----------------+--------------" echo "-------------------+-----------------+-----------------+--------------"
nodeType=bootstrap-leader nodeType=bootstrap-leader
for i in $(seq 0 $(( ${#fullnodeIpList[@]} - 1)) ); do for i in $(seq 0 $(( ${#validatorIpList[@]} - 1)) ); do
ipAddress=${fullnodeIpList[$i]} ipAddress=${validatorIpList[$i]}
ipAddressPrivate=${fullnodeIpListPrivate[$i]} ipAddressPrivate=${validatorIpListPrivate[$i]}
zone=${fullnodeIpListZone[$i]} zone=${validatorIpListZone[$i]}
printNode $nodeType "$ipAddress" "$ipAddressPrivate" "$zone" printNode $nodeType "$ipAddress" "$ipAddressPrivate" "$zone"
nodeType=fullnode nodeType=validator
done done
for i in $(seq 0 $(( ${#clientIpList[@]} - 1)) ); do for i in $(seq 0 $(( ${#clientIpList[@]} - 1)) ); do

View File

@ -48,7 +48,7 @@ Operate a configured testnet
-c bench-tps=2="--tx_count 25000" -c bench-tps=2="--tx_count 25000"
This will start 2 bench-tps clients, and supply "--tx_count 25000" This will start 2 bench-tps clients, and supply "--tx_count 25000"
to the bench-tps client. to the bench-tps client.
-n NUM_FULL_NODES - Number of fullnodes to apply command to. -n NUM_VALIDATORS - Number of validators to apply command to.
--gpu-mode GPU_MODE - Specify GPU mode to launch validators with (default: $gpuMode). --gpu-mode GPU_MODE - Specify GPU mode to launch validators with (default: $gpuMode).
MODE must be one of MODE must be one of
on - GPU *required*, any vendor * on - GPU *required*, any vendor *
@ -124,7 +124,7 @@ benchTpsExtraArgs=
benchExchangeExtraArgs= benchExchangeExtraArgs=
failOnValidatorBootupFailure=true failOnValidatorBootupFailure=true
genesisOptions= genesisOptions=
numFullnodesRequested= numValidatorsRequested=
externalPrimordialAccountsFile= externalPrimordialAccountsFile=
remoteExternalPrimordialAccountsFile= remoteExternalPrimordialAccountsFile=
internalNodesStakeLamports= internalNodesStakeLamports=
@ -235,7 +235,7 @@ while getopts "h?T:t:o:f:rD:c:Fn:i:d" opt "${shortArgs[@]}"; do
esac esac
;; ;;
n) n)
numFullnodesRequested=$OPTARG numValidatorsRequested=$OPTARG
;; ;;
r) r)
skipSetup=true skipSetup=true
@ -303,10 +303,10 @@ done
loadConfigFile loadConfigFile
if [[ -n $numFullnodesRequested ]]; then if [[ -n $numValidatorsRequested ]]; then
truncatedNodeList=( "${fullnodeIpList[@]:0:$numFullnodesRequested}" ) truncatedNodeList=( "${validatorIpList[@]:0:$numValidatorsRequested}" )
unset fullnodeIpList unset validatorIpList
fullnodeIpList=( "${truncatedNodeList[@]}" ) validatorIpList=( "${truncatedNodeList[@]}" )
fi fi
numClients=${#clientIpList[@]} numClients=${#clientIpList[@]}
@ -401,7 +401,7 @@ startBootstrapLeader() {
echo "--- Starting bootstrap leader: $ipAddress" echo "--- Starting bootstrap leader: $ipAddress"
echo "start log: $logFile" echo "start log: $logFile"
# Deploy local binaries to bootstrap fullnode. Other fullnodes and clients later fetch the # Deploy local binaries to bootstrap validator. Other validators and clients later fetch the
# binaries from it # binaries from it
( (
set -x set -x
@ -429,7 +429,7 @@ startBootstrapLeader() {
$deployMethod \ $deployMethod \
bootstrap-leader \ bootstrap-leader \
$entrypointIp \ $entrypointIp \
$((${#fullnodeIpList[@]} + ${#blockstreamerIpList[@]} + ${#archiverIpList[@]})) \ $((${#validatorIpList[@]} + ${#blockstreamerIpList[@]} + ${#archiverIpList[@]})) \
\"$RUST_LOG\" \ \"$RUST_LOG\" \
$skipSetup \ $skipSetup \
$failOnValidatorBootupFailure \ $failOnValidatorBootupFailure \
@ -455,7 +455,7 @@ startNode() {
declare ipAddress=$1 declare ipAddress=$1
declare nodeType=$2 declare nodeType=$2
declare nodeIndex="$3" declare nodeIndex="$3"
declare logFile="$netLogDir/fullnode-$ipAddress.log" declare logFile="$netLogDir/validator-$ipAddress.log"
if [[ -z $nodeType ]]; then if [[ -z $nodeType ]]; then
echo nodeType not specified echo nodeType not specified
@ -494,7 +494,7 @@ startNode() {
$deployMethod \ $deployMethod \
$nodeType \ $nodeType \
$entrypointIp \ $entrypointIp \
$((${#fullnodeIpList[@]} + ${#blockstreamerIpList[@]} + ${#archiverIpList[@]})) \ $((${#validatorIpList[@]} + ${#blockstreamerIpList[@]} + ${#archiverIpList[@]})) \
\"$RUST_LOG\" \ \"$RUST_LOG\" \
$skipSetup \ $skipSetup \
$failOnValidatorBootupFailure \ $failOnValidatorBootupFailure \
@ -511,7 +511,7 @@ startNode() {
" "
) >> "$logFile" 2>&1 & ) >> "$logFile" 2>&1 &
declare pid=$! declare pid=$!
ln -sf "fullnode-$ipAddress.log" "$netLogDir/fullnode-$pid.log" ln -sf "validator-$ipAddress.log" "$netLogDir/validator-$pid.log"
pids+=("$pid") pids+=("$pid")
} }
@ -541,7 +541,7 @@ sanity() {
$metricsWriteDatapoint "testnet-deploy net-sanity-begin=1" $metricsWriteDatapoint "testnet-deploy net-sanity-begin=1"
declare ok=true declare ok=true
declare bootstrapLeader=${fullnodeIpList[0]} declare bootstrapLeader=${validatorIpList[0]}
declare blockstreamer=${blockstreamerIpList[0]} declare blockstreamer=${blockstreamerIpList[0]}
annotateBlockexplorerUrl annotateBlockexplorerUrl
@ -581,7 +581,7 @@ deployUpdate() {
fi fi
declare ok=true declare ok=true
declare bootstrapLeader=${fullnodeIpList[0]} declare bootstrapLeader=${validatorIpList[0]}
for updatePlatform in $updatePlatforms; do for updatePlatform in $updatePlatforms; do
echo "--- Deploying solana-install update: $updatePlatform" echo "--- Deploying solana-install update: $updatePlatform"
@ -610,7 +610,7 @@ getNodeType() {
nodeIndex=0 # <-- global nodeIndex=0 # <-- global
nodeType=validator # <-- global nodeType=validator # <-- global
for ipAddress in "${fullnodeIpList[@]}" b "${blockstreamerIpList[@]}" r "${archiverIpList[@]}"; do for ipAddress in "${validatorIpList[@]}" b "${blockstreamerIpList[@]}" r "${archiverIpList[@]}"; do
if [[ $ipAddress = b ]]; then if [[ $ipAddress = b ]]; then
nodeType=blockstreamer nodeType=blockstreamer
continue continue
@ -673,7 +673,7 @@ prepare_deploy() {
echo "Fetching current software version" echo "Fetching current software version"
( (
set -x set -x
rsync -vPrc -e "ssh ${sshOptions[*]}" "${fullnodeIpList[0]}":~/version.yml current-version.yml rsync -vPrc -e "ssh ${sshOptions[*]}" "${validatorIpList[0]}":~/version.yml current-version.yml
) )
cat current-version.yml cat current-version.yml
if ! diff -q current-version.yml "$SOLANA_ROOT"/solana-release/version.yml; then if ! diff -q current-version.yml "$SOLANA_ROOT"/solana-release/version.yml; then
@ -690,7 +690,7 @@ deploy() {
$metricsWriteDatapoint "testnet-deploy net-start-begin=1" $metricsWriteDatapoint "testnet-deploy net-start-begin=1"
declare bootstrapLeader=true declare bootstrapLeader=true
for nodeAddress in "${fullnodeIpList[@]}" "${blockstreamerIpList[@]}" "${archiverIpList[@]}"; do for nodeAddress in "${validatorIpList[@]}" "${blockstreamerIpList[@]}" "${archiverIpList[@]}"; do
nodeType= nodeType=
nodeIndex= nodeIndex=
getNodeType getNodeType
@ -721,8 +721,8 @@ deploy() {
declare ok=true declare ok=true
wait "$pid" || ok=false wait "$pid" || ok=false
if ! $ok; then if ! $ok; then
echo "+++ fullnode failed to start" echo "+++ validator failed to start"
cat "$netLogDir/fullnode-$pid.log" cat "$netLogDir/validator-$pid.log"
if $failOnValidatorBootupFailure; then if $failOnValidatorBootupFailure; then
exit 1 exit 1
else else
@ -731,7 +731,7 @@ deploy() {
fi fi
done done
$metricsWriteDatapoint "testnet-deploy net-fullnodes-started=1" $metricsWriteDatapoint "testnet-deploy net-validators-started=1"
additionalNodeDeployTime=$SECONDS additionalNodeDeployTime=$SECONDS
annotateBlockexplorerUrl annotateBlockexplorerUrl
@ -775,7 +775,7 @@ deploy() {
echo echo
echo "+++ Deployment Successful" echo "+++ Deployment Successful"
echo "Bootstrap leader deployment took $bootstrapNodeDeployTime seconds" echo "Bootstrap leader deployment took $bootstrapNodeDeployTime seconds"
echo "Additional fullnode deployment (${#fullnodeIpList[@]} full nodes, ${#blockstreamerIpList[@]} blockstreamer nodes, ${#archiverIpList[@]} archivers) took $additionalNodeDeployTime seconds" echo "Additional validator deployment (${#validatorIpList[@]} validators, ${#blockstreamerIpList[@]} blockstreamer nodes, ${#archiverIpList[@]} archivers) took $additionalNodeDeployTime seconds"
echo "Client deployment (${#clientIpList[@]} instances) took $clientDeployTime seconds" echo "Client deployment (${#clientIpList[@]} instances) took $clientDeployTime seconds"
echo "Network start logs in $netLogDir" echo "Network start logs in $netLogDir"
} }
@ -784,7 +784,7 @@ deploy() {
stopNode() { stopNode() {
local ipAddress=$1 local ipAddress=$1
local block=$2 local block=$2
declare logFile="$netLogDir/stop-fullnode-$ipAddress.log" declare logFile="$netLogDir/stop-validator-$ipAddress.log"
echo "--- Stopping node: $ipAddress" echo "--- Stopping node: $ipAddress"
echo "stop log: $logFile" echo "stop log: $logFile"
( (
@ -807,7 +807,7 @@ stopNode() {
) >> "$logFile" 2>&1 & ) >> "$logFile" 2>&1 &
declare pid=$! declare pid=$!
ln -sf "stop-fullnode-$ipAddress.log" "$netLogDir/stop-fullnode-$pid.log" ln -sf "stop-validator-$ipAddress.log" "$netLogDir/stop-validator-$pid.log"
if $block; then if $block; then
wait $pid wait $pid
else else
@ -821,7 +821,7 @@ stop() {
declare loopCount=0 declare loopCount=0
pids=() pids=()
for ipAddress in "${fullnodeIpList[@]}" "${blockstreamerIpList[@]}" "${archiverIpList[@]}" "${clientIpList[@]}"; do for ipAddress in "${validatorIpList[@]}" "${blockstreamerIpList[@]}" "${archiverIpList[@]}" "${clientIpList[@]}"; do
stopNode "$ipAddress" false stopNode "$ipAddress" false
# Stagger additional node stop time to avoid too many concurrent ssh # Stagger additional node stop time to avoid too many concurrent ssh
@ -842,13 +842,13 @@ stop() {
checkPremptibleInstances() { checkPremptibleInstances() {
# The fullnodeIpList nodes may be preemptible instances that can disappear at # The validatorIpList nodes may be preemptible instances that can disappear at
# any time. Try to detect when a fullnode has been preempted to help the user # any time. Try to detect when a validator has been preempted to help the user
# out. # out.
# #
# Of course this isn't airtight as an instance could always disappear # Of course this isn't airtight as an instance could always disappear
# immediately after its successfully pinged. # immediately after its successfully pinged.
for ipAddress in "${fullnodeIpList[@]}"; do for ipAddress in "${validatorIpList[@]}"; do
( (
set -x set -x
timeout 5s ping -c 1 "$ipAddress" | tr - _ timeout 5s ping -c 1 "$ipAddress" | tr - _
@ -913,18 +913,18 @@ logs)
"$ipAddress":solana/"$log".log "$netLogDir"/remote-"$log"-"$ipAddress".log "$ipAddress":solana/"$log".log "$netLogDir"/remote-"$log"-"$ipAddress".log
) || echo "failed to fetch log" ) || echo "failed to fetch log"
} }
fetchRemoteLog "${fullnodeIpList[0]}" drone fetchRemoteLog "${validatorIpList[0]}" drone
for ipAddress in "${fullnodeIpList[@]}"; do for ipAddress in "${validatorIpList[@]}"; do
fetchRemoteLog "$ipAddress" fullnode fetchRemoteLog "$ipAddress" validator
done done
for ipAddress in "${clientIpList[@]}"; do for ipAddress in "${clientIpList[@]}"; do
fetchRemoteLog "$ipAddress" client fetchRemoteLog "$ipAddress" client
done done
for ipAddress in "${blockstreamerIpList[@]}"; do for ipAddress in "${blockstreamerIpList[@]}"; do
fetchRemoteLog "$ipAddress" fullnode fetchRemoteLog "$ipAddress" validator
done done
for ipAddress in "${archiverIpList[@]}"; do for ipAddress in "${archiverIpList[@]}"; do
fetchRemoteLog "$ipAddress" fullnode fetchRemoteLog "$ipAddress" validator
done done
;; ;;

View File

@ -1,7 +1,7 @@
#!/usr/bin/env bash #!/usr/bin/env bash
set -e set -e
# #
# This script is to be run on the bootstrap full node # This script is to be run on the bootstrap validator
# #
cd "$(dirname "$0")"/../.. cd "$(dirname "$0")"/../..

View File

@ -72,7 +72,7 @@ cd ~/solana
source scripts/oom-score-adj.sh source scripts/oom-score-adj.sh
now=\$(date -u +"%Y-%m-%dT%H:%M:%SZ") now=\$(date -u +"%Y-%m-%dT%H:%M:%SZ")
ln -sfT fullnode.log.\$now fullnode.log ln -sfT validator.log.\$now validator.log
EOF EOF
chmod +x ~/solana/on-reboot chmod +x ~/solana/on-reboot
echo "@reboot ~/solana/on-reboot" | crontab - echo "@reboot ~/solana/on-reboot" | crontab -
@ -155,11 +155,11 @@ EOF
setup_secondary_mount setup_secondary_mount
if [[ -n $internalNodesLamports ]]; then if [[ -n $internalNodesLamports ]]; then
echo "---" >> config/fullnode-balances.yml echo "---" >> config/validator-balances.yml
for i in $(seq 0 "$numNodes"); do for i in $(seq 0 "$numNodes"); do
solana-keygen new -o config/fullnode-"$i"-identity.json solana-keygen new -o config/validator-"$i"-identity.json
pubkey="$(solana-keygen pubkey config/fullnode-"$i"-identity.json)" pubkey="$(solana-keygen pubkey config/validator-"$i"-identity.json)"
cat >> config/fullnode-balances.yml <<EOF cat >> config/validator-balances.yml <<EOF
$pubkey: $pubkey:
balance: $internalNodesLamports balance: $internalNodesLamports
owner: 11111111111111111111111111111111 owner: 11111111111111111111111111111111
@ -195,10 +195,10 @@ EOF
echo "" >> config/client-accounts.yml echo "" >> config/client-accounts.yml
done done
if [[ -f $externalPrimordialAccountsFile ]]; then if [[ -f $externalPrimordialAccountsFile ]]; then
cat "$externalPrimordialAccountsFile" >> config/fullnode-balances.yml cat "$externalPrimordialAccountsFile" >> config/validator-balances.yml
fi fi
if [[ -f config/fullnode-balances.yml ]]; then if [[ -f config/validator-balances.yml ]]; then
genesisOptions+=" --primordial-accounts-file config/fullnode-balances.yml" genesisOptions+=" --primordial-accounts-file config/validator-balances.yml"
fi fi
if [[ -f config/client-accounts.yml ]]; then if [[ -f config/client-accounts.yml ]]; then
genesisOptions+=" --primordial-keypairs-file config/client-accounts.yml" genesisOptions+=" --primordial-keypairs-file config/client-accounts.yml"
@ -228,7 +228,7 @@ EOF
args+=($extraNodeArgs) args+=($extraNodeArgs)
cat >> ~/solana/on-reboot <<EOF cat >> ~/solana/on-reboot <<EOF
nohup ./multinode-demo/bootstrap-leader.sh ${args[@]} > fullnode.log.\$now 2>&1 & nohup ./multinode-demo/bootstrap-leader.sh ${args[@]} > validator.log.\$now 2>&1 &
pid=\$! pid=\$!
oom_score_adj "\$pid" 1000 oom_score_adj "\$pid" 1000
disown disown
@ -251,7 +251,7 @@ EOF
clear_config_dir "$SOLANA_CONFIG_DIR" clear_config_dir "$SOLANA_CONFIG_DIR"
setup_secondary_mount setup_secondary_mount
[[ -z $internalNodesLamports ]] || net/scripts/rsync-retry.sh -vPrc \ [[ -z $internalNodesLamports ]] || net/scripts/rsync-retry.sh -vPrc \
"$entrypointIp":~/solana/config/fullnode-"$nodeIndex"-identity.json config/fullnode-identity.json "$entrypointIp":~/solana/config/validator-"$nodeIndex"-identity.json config/validator-identity.json
fi fi
args=( args=(
@ -271,10 +271,10 @@ EOF
fi fi
fi fi
if [[ ! -f config/fullnode-identity.json ]]; then if [[ ! -f config/validator-identity.json ]]; then
solana-keygen new -o config/fullnode-identity.json solana-keygen new -o config/validator-identity.json
fi fi
args+=(--identity config/fullnode-identity.json) args+=(--identity config/validator-identity.json)
if [[ $airdropsEnabled != true ]]; then if [[ $airdropsEnabled != true ]]; then
args+=(--no-airdrop) args+=(--no-airdrop)
@ -337,7 +337,7 @@ EOF
# shellcheck disable=SC2206 # Don't want to double quote $extraNodeArgs # shellcheck disable=SC2206 # Don't want to double quote $extraNodeArgs
args+=($extraNodeArgs) args+=($extraNodeArgs)
cat >> ~/solana/on-reboot <<EOF cat >> ~/solana/on-reboot <<EOF
nohup multinode-demo/validator.sh ${args[@]} > fullnode.log.\$now 2>&1 & nohup multinode-demo/validator.sh ${args[@]} > validator.log.\$now 2>&1 &
pid=\$! pid=\$!
oom_score_adj "\$pid" 1000 oom_score_adj "\$pid" 1000
disown disown
@ -354,8 +354,8 @@ EOF
if [[ $airdropsEnabled != true ]]; then if [[ $airdropsEnabled != true ]]; then
args+=(--no-airdrop) args+=(--no-airdrop)
fi fi
if [[ -f config/fullnode-identity.json ]]; then if [[ -f config/validator-identity.json ]]; then
args+=(--keypair config/fullnode-identity.json) args+=(--keypair config/validator-identity.json)
fi fi
multinode-demo/delegate-stake.sh "${args[@]}" multinode-demo/delegate-stake.sh "${args[@]}"
@ -363,7 +363,7 @@ EOF
if [[ $skipSetup != true ]]; then if [[ $skipSetup != true ]]; then
solana --url http://"$entrypointIp":8899 \ solana --url http://"$entrypointIp":8899 \
--keypair config/fullnode-identity.json \ --keypair config/validator-identity.json \
validator-info publish "$(hostname)" -n team/solana --force || true validator-info publish "$(hostname)" -n team/solana --force || true
fi fi
;; ;;
@ -384,7 +384,7 @@ EOF
fi fi
cat >> ~/solana/on-reboot <<EOF cat >> ~/solana/on-reboot <<EOF
nohup multinode-demo/archiver.sh ${args[@]} > fullnode.log.\$now 2>&1 & nohup multinode-demo/archiver.sh ${args[@]} > validator.log.\$now 2>&1 &
pid=\$! pid=\$!
oom_score_adj "\$pid" 1000 oom_score_adj "\$pid" 1000
disown disown

View File

@ -1,7 +1,7 @@
#!/usr/bin/env bash #!/usr/bin/env bash
set -e set -e
# #
# This script is to be run on the bootstrap full node # This script is to be run on the bootstrap validator
# #
cd "$(dirname "$0")"/../.. cd "$(dirname "$0")"/../..

View File

@ -180,7 +180,7 @@ colo_node_status_all() {
# TODO: As part of COLO_TOOD_PARALLELIZE this list will need to be maintained # TODO: As part of COLO_TOOD_PARALLELIZE this list will need to be maintained
# in a lockfile to work around `cloud_CreateInstance` being called in the # in a lockfile to work around `cloud_CreateInstance` being called in the
# background for fullnodes # background for validators
export COLO_RES_REQUISITIONED=() export COLO_RES_REQUISITIONED=()
colo_node_requisition() { colo_node_requisition() {
declare IP=$1 declare IP=$1

View File

@ -49,9 +49,9 @@ printNode() {
printf " %-25s | For logs run: $0 $ip tail -f solana/$nodeType.log\n" "$0 $ip" printf " %-25s | For logs run: $0 $ip tail -f solana/$nodeType.log\n" "$0 $ip"
} }
echo Full nodes: echo Validators:
for ipAddress in "${fullnodeIpList[@]}"; do for ipAddress in "${validatorIpList[@]}"; do
printNode fullnode "$ipAddress" printNode validator "$ipAddress"
done done
echo echo
echo Clients: echo Clients:
@ -68,7 +68,7 @@ if [[ ${#blockstreamerIpList[@]} -eq 0 ]]; then
echo " None" echo " None"
else else
for ipAddress in "${blockstreamerIpList[@]}"; do for ipAddress in "${blockstreamerIpList[@]}"; do
printNode fullnode "$ipAddress" printNode validator "$ipAddress"
done done
fi fi
echo echo
@ -77,7 +77,7 @@ if [[ ${#archiverIpList[@]} -eq 0 ]]; then
echo " None" echo " None"
else else
for ipAddress in "${archiverIpList[@]}"; do for ipAddress in "${archiverIpList[@]}"; do
printNode fullnode "$ipAddress" printNode validator "$ipAddress"
done done
fi fi
echo echo