Sui Full Node
Recommended Hardware: 8 physical cores / 16 vCPUs, 128 GB RAM, 4 TB of storage (NVME)
Install
Update packages and install necessary dependencies:
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl git build-essential libssl-dev pkg-config libclang-dev cmake
Install Rust:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source $HOME/.cargo/env
rustup update
rustup default stable
Clone the Repository and Build Sui
Clone the Sui repository:
git clone https://github.com/MystenLabs/sui.git
cd sui
Switch to the latest stable version:
git checkout -b stable origin/stable
Build the binaries:
cargo build --release
Add binaries to your PATH:
sudo mv ~/sui/target/release/sui* /usr/local/bin/
Create a directory for configuration:
mkdir -p ~/sui/data
cd ~/sui
Download the configuration template:
wget -O ~/sui/fullnode-template.yaml https://github.com/MystenLabs/sui/raw/main/crates/sui-config/data/fullnode-template.yaml
Edit the configuration:
Open the fullnode-template.yaml
file and set data storage paths, for example:
db-path: "/home/username/sui/data/db"
network-address: "/ip4/0.0.0.0/tcp/8080"
p2p-config: "/home/username/sui/data/p2p"
Download the genesis file:
wget -O ~/sui/data/genesis.blob https://github.com/MystenLabs/sui-genesis/raw/main/mainnet/genesis.blob
Start the Node
Run the node in the background:
sui-node --config-path ~/sui/fullnode-template.yaml
Create a systemd service for automated startup:
sudo nano /etc/systemd/system/sui.service
Add the following content:
[Unit]
Description=Sui Node
After=network.target
[Service]
User=your_username
ExecStart=/usr/local/bin/sui-node --config-path /home/your_username/sui/fullnode-template.yaml
Restart=on-failure
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
Enable and start the service:
sudo systemctl enable sui
sudo systemctl start sui
Verify Node Status
Check logs:
Ensure the node is synchronized:
The logs should show synchronization with the network.
Check open ports:
Ensure that ports 8080
and 9000
are accessible.
Update the Node
Stop the node:
sudo systemctl stop sui
Update the code:
cd ~/sui
git pull origin stable
cargo build --release
sudo mv ~/sui/target/release/sui* /usr/local/bin/
Restart the node:
sudo systemctl start sui
Last updated