Установка ноды Sui
Sui — это высокопроизводительный блокчейн первого уровня (L1), который разрабатывает компания Mysten Labs для обслуживания децентрализованных приложений, чувствительных к задержкам.
Сайт проекта | Документация проекта | Discord | GitHub | Explorer
Telegram канал сообщества Starnodes
Награды
50% от общего предложения выделено на комьюнити. За каждую волну запуска нод в сети тестнет, при условии, что вас выбрали, награда 200 SUI или 2000 SUI, если вас выбрали в качестве валидатора.
Системные требования
10 CPU 32RAM 1000 SSD // не стоит запускаться, если у вас нет свободных 1000гб
Используемые порты: 9000, 9184 tcp
Аренда сервера:
1) Хостинг Hetzner - неплохой хостинг для аренды VPS по соотношению цена-качество, подойдет для большинства нод.
2) Хостинг Starnodes - VPS сервера с большой ёмкостью NVME накопителя. Все сервера расположены в датацентре и работают 24/7.
Подготовка сервера
sudo apt update && sudo apt upgrade -y
Установим необходимое программное обеспечение:
sudo apt install tar wget jq git libclang-dev libpq-dev cmake mc ncdu htop -y
Я рекомендую создать отдельного пользователя для запуска ноды:
sudo adduser sui
sudo usermod -aG sudo sui
sudo curl https://sh.rustup.rs -sSf | sh -s -- -y source $HOME/.cargo/env
Установка ноды Sui
Если нужна свежая установка, то удалите старые данные:
sudo systemctl stop suid sudo systemctl disable suid rm -rf $HOME/.sui rm -rf $HOME/sui rm -rf /var/sui sudo rm -f /usr/bin/{sui,sui-node,sui-faucet} sudo rm -f /usr/local/bin/{sui,sui-node,sui-faucet} sudo rm /etc/systemd/system/suid.service systemctl daemon-reload
git clone https://github.com/MystenLabs/sui
cd sui
Создадим ветку с исходным репозиторием:
git remote add upstream https://github.com/MystenLabs/sui
git fetch upstream
git checkout -B devnet --track upstream/devnet
git checkout -B testnet --track upstream/testnet
Соберем бинарные файлы, займет 10-30 минут:
cargo build --release
Перемещаем полученные бинарники в /usr/bin/
sudo mv $HOME/sui/target/release/{sui,sui-node,sui-faucet} /usr/bin/
Создаем рабочий каталог для ноды:
mkdir -p $HOME/.sui
Для загрузки файла genesis devnet
версии используем команду:
wget -qO $HOME/.sui/genesis.blob https://github.com/MystenLabs/sui-genesis/raw/main/devnet/genesis.blob
Для загрузки файла genesis testnet
версии используем команду:
wget -qO $HOME/.sui/genesis.blob https://github.com/MystenLabs/sui-genesis/raw/main/testnet/genesis.blob
cp $HOME/sui/crates/sui-config/data/fullnode-template.yaml $HOME/.sui/fullnode.yaml
sed -i -e "s%db-path:.*%db-path: \"$HOME/.sui/db\"%; "\ "s%metrics-address:.*%metrics-address: \"0.0.0.0:9184\"%; "\ "s%json-rpc-address:.*%json-rpc-address: \"0.0.0.0:9000\"%; "\ "s%genesis-file-location:.*%genesis-file-location: \"$HOME/.sui/genesis.blob\"%; " $HOME/.sui/fullnode.yaml
sudo tee $HOME/.sui/fullnode.yaml >/dev/null <<EOF db-path: "/root/.sui/db" network-address: "/dns/localhost/tcp/8080/http" metrics-address: "0.0.0.0:9184" # this address is also used for web socket connections json-rpc-address: "0.0.0.0:9005" enable-event-processing: true genesis: # Update this to the location of where the genesis file is stored genesis-file-location: "/root/.sui/genesis.blob" p2p-config: seed-peers: - address: "/dns/sui-rpc-pt.testnet-pride.com/udp/8084" peer-id: 0b10182585ae4a305721b1823ea5a9c3ce7d6ac4b4a8ce35fe96d9914c8fcb73 - address: "/dns/sui-rpc-pt2.testnet-pride.com/udp/8084" peer-id: bf45f2bd2bbc4c2d53d10c05c96085d4ef18688af04649d6e65e1ebad1716804 - address: "/dns/sui-rpc-testnet.bartestnet.com/udp/8084" - address: "/ip4/38.242.197.20/udp/8080" - address: "/ip4/178.18.250.62/udp/8080" - address: "/ip4/162.55.84.47/udp/8084" - address: "/dns/wave-3.testnet.n1stake.com/udp/8084" authority-store-pruning-config: num-latest-epoch-dbs-to-retain: 3 epoch-db-pruning-period-secs: 3600 num-epochs-to-retain: 1 max-checkpoints-in-batch: 200 max-transactions-in-batch: 1000 use-range-deletion: true EOF
Установите RPC testnet, если вы устанавливаете ноду в сети testnet:
sui client switch --env https://fullnode.testnet.sui.io:443
Если нужно вернуться к RPC devnet введите:
sui client new-env --rpc https://fullnode.devnet.sui.io:443 --alias https://fullnode.devnet.sui.io:443 sui client switch --env https://fullnode.devnet.sui.io:443
sudo tee /etc/systemd/system/suid.service > /dev/null <<EOF [Unit] Description=Sui node After=network-online.target [Service] User=$USER ExecStart=`which sui-node` --config-path $HOME/.sui/fullnode.yaml Restart=on-failure RestartSec=3 LimitNOFILE=65535 [Install] WantedBy=multi-user.target EOF
Запустим службу и добавим в автозапуск:
sudo systemctl daemon-reload sudo systemctl enable suid sudo systemctl restart suid
sudo journalctl -f -u suid -o cat
Обновление ноды:
su sui
sudo systemctl stop suid # при необходимости: rm -rf $HOME/.sui/db wget -qO $HOME/.sui/genesis.blob https://github.com/MystenLabs/sui-genesis/raw/main/devnet/genesis.blob cd $HOME/sui git remote add upstream https://github.com/MystenLabs/sui git fetch upstream git checkout -B devnet --track upstream/devnet #git checkout devnet-0.23.0 cargo build --release sudo mv $HOME/sui/target/release/{sui,sui-node,sui-faucet} /usr/bin/ sudo systemctl restart suid sudo journalctl -f -u suid -o cat
sudo systemctl stop suid # при необходимости: rm -rf $HOME/.sui/db wget -qO $HOME/.sui/genesis.blob https://github.com/MystenLabs/sui-genesis/raw/main/testnet/genesis.blob cd $HOME/sui git remote add upstream https://github.com/MystenLabs/sui git fetch upstream git checkout -B testnet --track upstream/testnet git log --oneline -1 cargo build --release sudo mv $HOME/sui/target/release/{sui,sui-node,sui-faucet} /usr/bin/ sudo systemctl restart suid sudo journalctl -f -u suid -o cat
Полезные команды
sudo systemctl stop suid
sudo systemctl start suid
sudo systemctl restart suid
sudo journalctl -f -u suid -o cat
Проверить текущую высоту на вашей ноде:
curl --location --request POST http://127.0.0.1:9000/ \ --header 'Content-Type: application/json' \ --data-raw '{ "jsonrpc":"2.0", "method":"sui_getTotalTransactionNumber","id":1}'; echo
Проверить текущую высоту на RPC сети devnet:
curl --location --request POST https://fullnode.devnet.sui.io:443 \ --header 'Content-Type: application/json' \ --data-raw '{ "jsonrpc":"2.0", "method":"sui_getTotalTransactionNumber","id":1}'; echo
Проверить текущую высоту на RPC сети testnet:
curl --location --request POST https://fullnode.testnet.sui.io:443 \ --header 'Content-Type: application/json' \ --data-raw '{ "jsonrpc":"2.0", "method":"sui_getTotalTransactionNumber","id":1}'; echo
Сторонний чекер для проверки синхронизации ноды (должно быть 100%):
https://www.scale3labs.com/check/sui
Не забывайте выбрать правильную сеть с которой вы сверяетесь (Network)
@starnodes_ru - наш канал в Telegram с новостями и гайдами по тестнетам.
@starnodes_chat - канал, куда можно обратиться за помощью.