docs/content/guides/operator/validator/validator-config.mdx
Validators on Sui run specialized validator nodes that can execute more tasks than full nodes. Validators are used for staking, gas price reference, and tallying rules.
To run a Sui validator, you must set up and configure a Sui validator node. Specific steps you must take include:
Suggested minimum hardware specifications to run a Sui validator node:
To set up staking on your validator node:
Call request_add_validator_candidate to become a candidate. This creates the on-chain validator information and initializes a staking pool for delegators to contribute to.
Acquire 30M SUI by staking to the validator staking pool created in the previous step. Call the request_add_stake with the address of the validator (this is not the same as the staking pool ID).
Call request_add_validator to have the validator become a pending validator. At the next epoch, it joins the validator set. Before the next epoch, you should stand up the validator so that when the epoch changes, it can participate.
Learn more about validator staking rewards.
You can deploy Sui node in a number of ways.
Use pre-built container images available in Docker Hub.
Use pre-built linux/amd64 binaries available in S3 that you can fetch using one of the following methods:
$ wget https://releases.sui.io/$SUI_SHA/sui-node
$ curl https://releases.sui.io/$SUI_SHA/sui-node -o sui-node
Or, to build directly from source:
$ git clone https://github.com/MystenLabs/sui.git && cd sui
$ git checkout [SHA|BRANCH|TAG]
$ cargo build --release --bin sui-node
For more information on deploying a validator, refer to the Sui for Node Operators guide.
Configuration guides are available for the following deployment options:
sui-node runs with a single configuration file provided as an argument, for example:
$ ./sui-node --config-path /opt/sui/config/validator.yaml
For more information on configuring a validator, refer to the Sui for Node Operators guide.
See Validator for configuration templates.
sui-node uses the following ports by default:
| protocol/port | reachability | purpose |
|---|---|---|
| TCP/8080 | Inbound | Validator/transaction interface |
| TCP/8081 | Inbound/outbound | Consensus interface |
| UDP/8084 | Inbound/outbound | Peer-to-peer state sync interface |
| TCP/8443 | Outbound | Metrics pushing |
| TCP/9184 | Localhost | Metrics scraping |
To run a validator successfully, it is critical that ports 8080-8084 are open as outlined, including the specific protocol (TCP/UDP).
Load testing Sui validator networks suggests that the default Linux network buffer sizes are too small. It is recommend to increase them using one of the following two methods:
/etc/sysctl.d/Add these settings to a new sysctl file specifically for sui-node or append to an existing file. Modifications made in this way persist across system restarts.
Create a new sysctl file for the sui-node:
$ sudo nano /etc/sysctl.d/100-sui-node.conf
Add these lines to the file, overwriting existing settings if necessary:
net.core.rmem_max = 104857600
net.core.wmem_max = 104857600
net.ipv4.tcp_rmem = 8192 262144 104857600
net.ipv4.tcp_wmem = 8192 262144 104857600
Apply the settings immediately, before the next restart:
$ sudo sysctl --system
sysctl commandThese modifications do not persist across system restarts. Therefore, run the commands each time the host restarts.
$ sudo sysctl -w net.core.wmem_max=104857600
$ sudo sysctl -w net.core.rmem_max=104857600
$ sudo sysctl -w net.ipv4.tcp_rmem="8192 262144 104857600"
$ sudo sysctl -w net.ipv4.tcp_wmem="8192 262144 104857600"
To verify that the system settings have successfully been updated, check the output of the following command:
$ sudo sysctl -a | egrep [rw]mem