Skip to main content

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:

  1. Install and configure Sui.
  2. Configure port and protocol settings.
  3. Configure key management.
  4. Configure storage.
  5. Update software.
  6. Execute on-chain commands to interact with the network.
  7. Update the gas price survey.
  8. 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.

tip

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:

  1. 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.

  2. 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).

  3. 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.

  1. Use pre-built container images available in Docker Hub.

  2. 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/portreachabilitypurpose
TCP/8080InboundValidator/transaction interface
TCP/8081Inbound/outboundConsensus interface
UDP/8084Inbound/outboundPeer-to-peer state sync interface
TCP/8443OutboundMetrics pushing
TCP/9184LocalhostMetrics 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