Validator Deployment & Configuration
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.
Validator requirements
To run a Sui validator, you must set up and configure a Sui validator node. Specific steps you must take include:
- Install and configure Sui.
- Configure port and protocol settings.
- Configure key management.
- Configure storage.
- Update software.
- Execute on-chain commands to interact with the network.
- Update the gas price survey.
- Report to other validators.
Hardware requirements
Suggested minimum hardware specifications to run a Sui Validator node:
- CPU: 24 physical cores (or 48 virtual cores)
- Memory: 128 GB
- Storage: 4 TB NVME
- Network: 1 Gbps
Validator staking pool requirements
There are minimum staking requirements a validator must satisfy to become active and to stay in the active validator set.
Stake requirements
The Sui network is rolling out SIP-39, which will significantly lower the barrier to entry for validators. Instead of requiring a minimum amount of SUI tokens, validators will need a minimum amount of voting power.
When fully rolled out, SIP-39 will mean the following validator requirements:
- A validator candidate must accrue at least 3 voting power before they can request to join the validator set.
- If an active validator's stake falls below 2 voting power, they have seven epochs of grace period to gain back the stake before being removed from the validator set.
- If an active validator's stake falls below 1 voting power, they are removed from the validator set at the end of the current epoch boundary. Sui uses 24-hour epochs.
For more information on voting power, see Understanding the voting power formula.
Want to be a Sui validator?
If you have the required stake and plan to operate a validator on Sui, your participation is welcome and Sui is committed to supporting your onboarding. Kindly complete this form to be added to our Validator Discord and keep up with upcoming validator releases and technical support.
To set up staking on your validator node:
-
Call
request_add_validator_candidate
to become a candidate. This creates the on-chain validator info 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.
Deployment
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
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.
Connectivity
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).
Network buffer
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:
Option 1: With /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
Option 2: With sysctl
command
These 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"
Verification
To verify that the system settings have successfully been updated, check the output of the following command:
$ sudo sysctl -a | egrep [rw]mem