|
@@ -32,7 +32,7 @@ detail on cluster activity.
|
|
|
## Enabling CUDA
|
|
## Enabling CUDA
|
|
|
|
|
|
|
|
If your machine has a GPU with CUDA installed \(Linux-only currently\), include
|
|
If your machine has a GPU with CUDA installed \(Linux-only currently\), include
|
|
|
-the `--cuda` argument to `solana-validator`.
|
|
|
|
|
|
|
+the `--cuda` argument to `agave-validator`.
|
|
|
|
|
|
|
|
When your validator is started look for the following log message to indicate
|
|
When your validator is started look for the following log message to indicate
|
|
|
that CUDA is enabled: `"[<timestamp> solana::validator] CUDA is enabled"`
|
|
that CUDA is enabled: `"[<timestamp> solana::validator] CUDA is enabled"`
|
|
@@ -47,7 +47,7 @@ the following commands.
|
|
|
#### **Optimize sysctl knobs**
|
|
#### **Optimize sysctl knobs**
|
|
|
|
|
|
|
|
```bash
|
|
```bash
|
|
|
-sudo bash -c "cat >/etc/sysctl.d/21-solana-validator.conf <<EOF
|
|
|
|
|
|
|
+sudo bash -c "cat >/etc/sysctl.d/21-agave-validator.conf <<EOF
|
|
|
# Increase UDP buffer sizes
|
|
# Increase UDP buffer sizes
|
|
|
net.core.rmem_default = 134217728
|
|
net.core.rmem_default = 134217728
|
|
|
net.core.rmem_max = 134217728
|
|
net.core.rmem_max = 134217728
|
|
@@ -63,7 +63,7 @@ EOF"
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
```bash
|
|
```bash
|
|
|
-sudo sysctl -p /etc/sysctl.d/21-solana-validator.conf
|
|
|
|
|
|
|
+sudo sysctl -p /etc/sysctl.d/21-agave-validator.conf
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
#### **Increase systemd and session file limits**
|
|
#### **Increase systemd and session file limits**
|
|
@@ -261,7 +261,7 @@ Read more about [creating and managing a vote account](./vote-accounts.md).
|
|
|
## Known validators
|
|
## Known validators
|
|
|
|
|
|
|
|
If you know and respect other validator operators, you can specify this on the command line with the `--known-validator <PUBKEY>`
|
|
If you know and respect other validator operators, you can specify this on the command line with the `--known-validator <PUBKEY>`
|
|
|
-argument to `solana-validator`. You can specify multiple ones by repeating the argument `--known-validator <PUBKEY1> --known-validator <PUBKEY2>`.
|
|
|
|
|
|
|
+argument to `agave-validator`. You can specify multiple ones by repeating the argument `--known-validator <PUBKEY1> --known-validator <PUBKEY2>`.
|
|
|
This has two effects, one is when the validator is booting with `--only-known-rpc`, it will only ask that set of
|
|
This has two effects, one is when the validator is booting with `--only-known-rpc`, it will only ask that set of
|
|
|
known nodes for downloading genesis and snapshot data. Another is that in combination with the `--halt-on-known-validators-accounts-hash-mismatch` option,
|
|
known nodes for downloading genesis and snapshot data. Another is that in combination with the `--halt-on-known-validators-accounts-hash-mismatch` option,
|
|
|
it will monitor the merkle root hash of the entire accounts state of other known nodes on gossip and if the hashes produce any mismatch,
|
|
it will monitor the merkle root hash of the entire accounts state of other known nodes on gossip and if the hashes produce any mismatch,
|
|
@@ -277,13 +277,13 @@ account state divergence.
|
|
|
Connect to the cluster by running:
|
|
Connect to the cluster by running:
|
|
|
|
|
|
|
|
```bash
|
|
```bash
|
|
|
-solana-validator \
|
|
|
|
|
|
|
+agave-validator \
|
|
|
--identity ~/validator-keypair.json \
|
|
--identity ~/validator-keypair.json \
|
|
|
--vote-account ~/vote-account-keypair.json \
|
|
--vote-account ~/vote-account-keypair.json \
|
|
|
--rpc-port 8899 \
|
|
--rpc-port 8899 \
|
|
|
--entrypoint entrypoint.devnet.solana.com:8001 \
|
|
--entrypoint entrypoint.devnet.solana.com:8001 \
|
|
|
--limit-ledger-size \
|
|
--limit-ledger-size \
|
|
|
- --log ~/solana-validator.log
|
|
|
|
|
|
|
+ --log ~/agave-validator.log
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
To force validator logging to the console add a `--log -` argument, otherwise
|
|
To force validator logging to the console add a `--log -` argument, otherwise
|
|
@@ -296,7 +296,7 @@ The ledger will be placed in the `ledger/` directory by default, use the
|
|
|
> [paper wallet seed phrase](../../cli/wallets/paper.md)
|
|
> [paper wallet seed phrase](../../cli/wallets/paper.md)
|
|
|
> for your `--identity` and/or
|
|
> for your `--identity` and/or
|
|
|
> `--authorized-voter` keypairs. To use these, pass the respective argument as
|
|
> `--authorized-voter` keypairs. To use these, pass the respective argument as
|
|
|
-> `solana-validator --identity ASK ... --authorized-voter ASK ...`
|
|
|
|
|
|
|
+> `agave-validator --identity ASK ... --authorized-voter ASK ...`
|
|
|
> and you will be prompted to enter your seed phrases and optional passphrase.
|
|
> and you will be prompted to enter your seed phrases and optional passphrase.
|
|
|
|
|
|
|
|
Confirm your validator is connected to the network by opening a new terminal and
|
|
Confirm your validator is connected to the network by opening a new terminal and
|
|
@@ -312,7 +312,7 @@ If your validator is connected, its public key and IP address will appear in the
|
|
|
|
|
|
|
|
By default the validator will dynamically select available network ports in the
|
|
By default the validator will dynamically select available network ports in the
|
|
|
8000-10000 range, and may be overridden with `--dynamic-port-range`. For
|
|
8000-10000 range, and may be overridden with `--dynamic-port-range`. For
|
|
|
-example, `solana-validator --dynamic-port-range 11000-11020 ...` will restrict
|
|
|
|
|
|
|
+example, `agave-validator --dynamic-port-range 11000-11020 ...` will restrict
|
|
|
the validator to ports 11000-11020.
|
|
the validator to ports 11000-11020.
|
|
|
|
|
|
|
|
### Limiting ledger size to conserve disk space
|
|
### Limiting ledger size to conserve disk space
|
|
@@ -366,8 +366,8 @@ WantedBy=multi-user.target
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
Now create `/home/sol/bin/validator.sh` to include the desired
|
|
Now create `/home/sol/bin/validator.sh` to include the desired
|
|
|
-`solana-validator` command-line. Ensure that the 'exec' command is used to
|
|
|
|
|
-start the validator process (i.e. "exec solana-validator ..."). This is
|
|
|
|
|
|
|
+`agave-validator` command-line. Ensure that the 'exec' command is used to
|
|
|
|
|
+start the validator process (i.e. "exec agave-validator ..."). This is
|
|
|
important because without it, logrotate will end up killing the validator
|
|
important because without it, logrotate will end up killing the validator
|
|
|
every time the logs are rotated.
|
|
every time the logs are rotated.
|
|
|
|
|
|
|
@@ -394,14 +394,14 @@ to be reverted and the issue reproduced before help can be provided.
|
|
|
|
|
|
|
|
#### Log rotation
|
|
#### Log rotation
|
|
|
|
|
|
|
|
-The validator log file, as specified by `--log ~/solana-validator.log`, can get
|
|
|
|
|
|
|
+The validator log file, as specified by `--log ~/agave-validator.log`, can get
|
|
|
very large over time and it's recommended that log rotation be configured.
|
|
very large over time and it's recommended that log rotation be configured.
|
|
|
|
|
|
|
|
The validator will re-open its log file when it receives the `USR1` signal, which is the
|
|
The validator will re-open its log file when it receives the `USR1` signal, which is the
|
|
|
basic primitive that enables log rotation.
|
|
basic primitive that enables log rotation.
|
|
|
|
|
|
|
|
If the validator is being started by a wrapper shell script, it is important to
|
|
If the validator is being started by a wrapper shell script, it is important to
|
|
|
-launch the process with `exec` (`exec solana-validator ...`) when using logrotate.
|
|
|
|
|
|
|
+launch the process with `exec` (`exec agave-validator ...`) when using logrotate.
|
|
|
This will prevent the `USR1` signal from being sent to the script's process
|
|
This will prevent the `USR1` signal from being sent to the script's process
|
|
|
instead of the validator's, which will kill them both.
|
|
instead of the validator's, which will kill them both.
|
|
|
|
|
|
|
@@ -409,13 +409,13 @@ instead of the validator's, which will kill them both.
|
|
|
|
|
|
|
|
An example setup for the `logrotate`, which assumes that the validator is
|
|
An example setup for the `logrotate`, which assumes that the validator is
|
|
|
running as a systemd service called `sol.service` and writes a log file at
|
|
running as a systemd service called `sol.service` and writes a log file at
|
|
|
-/home/sol/solana-validator.log:
|
|
|
|
|
|
|
+/home/sol/agave-validator.log:
|
|
|
|
|
|
|
|
```bash
|
|
```bash
|
|
|
# Setup log rotation
|
|
# Setup log rotation
|
|
|
|
|
|
|
|
cat > logrotate.sol <<EOF
|
|
cat > logrotate.sol <<EOF
|
|
|
-/home/sol/solana-validator.log {
|
|
|
|
|
|
|
+/home/sol/agave-validator.log {
|
|
|
rotate 7
|
|
rotate 7
|
|
|
daily
|
|
daily
|
|
|
missingok
|
|
missingok
|
|
@@ -430,7 +430,7 @@ systemctl restart logrotate.service
|
|
|
|
|
|
|
|
As mentioned earlier, be sure that if you use logrotate, any script you create
|
|
As mentioned earlier, be sure that if you use logrotate, any script you create
|
|
|
which starts the solana validator process uses "exec" to do so (example: "exec
|
|
which starts the solana validator process uses "exec" to do so (example: "exec
|
|
|
-solana-validator ..."); otherwise, when logrotate sends its signal to the
|
|
|
|
|
|
|
+agave-validator ..."); otherwise, when logrotate sends its signal to the
|
|
|
validator, the enclosing script will die and take the validator process with
|
|
validator, the enclosing script will die and take the validator process with
|
|
|
it.
|
|
it.
|
|
|
|
|
|
|
@@ -465,7 +465,7 @@ Example configuration:
|
|
|
5. Enable swap with `sudo swapon -a` and mount the tmpfs with `sudo mount /mnt/solana-accounts/`
|
|
5. Enable swap with `sudo swapon -a` and mount the tmpfs with `sudo mount /mnt/solana-accounts/`
|
|
|
6. Confirm swap is active with `free -g` and the tmpfs is mounted with `mount`
|
|
6. Confirm swap is active with `free -g` and the tmpfs is mounted with `mount`
|
|
|
|
|
|
|
|
-Now add the `--accounts /mnt/solana-accounts` argument to your `solana-validator`
|
|
|
|
|
|
|
+Now add the `--accounts /mnt/solana-accounts` argument to your `agave-validator`
|
|
|
command-line arguments and restart the validator.
|
|
command-line arguments and restart the validator.
|
|
|
|
|
|
|
|
### Account indexing
|
|
### Account indexing
|