Run Sync Node
The Full-Sync Node is an available software implementation of a read-only SKALE Node that can help decrease the load on the core nodes of your chain.
Applications are commonly read-heavy compared to writes, meaning they pull data from the chain more often than push them. For applications that contain many reads, a full-sync node can help increase chain stability and speed by reducing the number of actions the core nodes on the chain must do, leaving them with a more extraordinary ability to handle transactions.
General Steps
Section titled “General Steps”- Provision a machine
- Notify core team of IP/IPs range (
x.x.x.x:x.x.x.x
) and SKALE Chain for full-sync. - Complete Full Sync setup
Node Machine Requirements
Section titled “Node Machine Requirements”- A Linux x86_64 machine
- Ubuntu 22.04
- 8 vCPUs
- 16GB RAM
- 100GB root storage
- 256GB attached storage for MEDIUM chain
- 2TB attached storage for LARGE chain
Node Network Requirements
Section titled “Node Network Requirements”- Ports 80, 443, 3009, and 10000–18192, and ICMP IPv4 shouldn’t be closed by external firewall
Node Software Prerequisites
Section titled “Node Software Prerequisites”- 16GB Swap
- docker
- docker-compose → 1.27.4
- iptables-persistent, btrfs-progs, lsof, lvm2, psmisc, and apt packages
From Fresh Machine
Section titled “From Fresh Machine”sudo apt-get update
# Install Docker and Docker-composesudo apt-get install docker.iosudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# Install other dependenciessudo apt install iptables-persistent btrfs-progs lsof lvm2 psmisc
# Setup Swapfilesudo fallocate -l 16G /swapfilesudo chmod 600 /swapfilesudo mkswap /swapfilesudo swapon /swapfilesudo cp /etc/fstab /etc/fstab.bakecho '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
Installation
Section titled “Installation”-
Download sync-node-cli tool
Section titled “Download sync-node-cli tool”Terminal window VERSION_NUM=2.6.2 && sudo -E bash -c "curl -L https://github.com/skalenetwork/node-cli/releases/download/$VERSION_NUM/skale-$VERSION_NUM-`uname -s`-`uname -m`-sync > /usr/local/bin/skale" -
Apply executable permissions to the downloaded binary:
Section titled “Apply executable permissions to the downloaded binary:”Terminal window chmod +x /usr/local/bin/skale -
Test the installation
Section titled “Test the installation”Terminal window skale --help -
Prepare
Section titled “Prepare .env file:”.env
file:CONTAINER_CONFIGS_STREAM="4.0.1"ENFORCE_BTRFS=True/FalseENDPOINT=[[By Validator], YOUR GETH/INFURA ENDPOINT]MANAGER_CONTRACTS_ABI_URL="https://raw.githubusercontent.com/skalenetwork/skale-network/refs/heads/master/releases/mainnet/skale-manager/1.12.0/skale-manager-1.12.0-mainnet-abi.json"IMA_CONTRACTS_ABI_URL="https://raw.githubusercontent.com/skalenetwork/skale-network/refs/heads/master/releases/mainnet/IMA/2.2.0/mainnet/abi.json"DISK_MOUNTPOINT=[[By Validator], your attached storage /dev/sda or /dev/xvdd (this is an example. You just need to use your 2TB block device)]DOCKER_LVMPY_STREAM="1.0.2-stable.0"ENV_TYPE="mainnet"SCHAIN_NAME=[[By Validator], SCHAIN NAME FOR YOUR SYNC NODE] -
Init sync node:
Section titled “Init sync node:”Terminal window skale sync-node init [ENV_FILE_PATH] -
Wait until your sync node will be inited
Section titled “Wait until your sync node will be inited” -
After the node is successfully inited, wait until
Section titled “After the node is successfully inited, wait until skaled will download the snapshot and starts catchup blocks (usually 15–30 minutes)”skaled
will download the snapshot and starts catchup blocks (usually 15–30 minutes)
Setup SSL certs
Section titled “Setup SSL certs”Node SSL certificates support secure communication with sChain endpoints. By default, each node of a SKALE Chain listens on HTTP and WS ports. If SSL certs exist on the node, then HTTPS and WSS ports are also turned on.
To upload SSL certs to the node run:
skale ssl upload -c $PATH_TO_CERT_FILE -k $PATH_TO_KEY_FILE
To check the status of your certs run:
skale ssl status
Once certs are uploaded, HTTPS/WSS endpoints should become available for your chain.
Full sync node update
Section titled “Full sync node update”Update full sync SKALE node on current machine
skale sync-node update [ENV_FILEPATH]
Options:
--yes
- update without additional confirmation
Arguments:
ENV_FILEPATH
- path to env file where parameters are defined
[NOTE]
You can just update a file with environment variables used during skale sync-node init
.
Maintenance
Section titled “Maintenance”Maintenance commands are not available for a sync node.