Sui - devnet
Установка ноды Sui
Sui — это высокопроизводительный блокчейн первого уровня (L1), который разрабатывает компания Mysten Labs для обслуживания децентрализованных приложений, чувствительных к задержкам.
Сайт проекта | Документация проекта | Discord | GitHub | Explorer
Telegram канал сообщества Starnodes
Награды
50% от общего предложения выделено на комьюнити. За каждую волну запуска нод в сети тестнет, при условии, что вас выбрали, награда 200 SUI или 2000 SUI, если вас выбрали в качестве валидатора.
Системные требования
10 CPU 32RAM 1000 SSD // не стоит запускаться, если у вас нет свободных 1000гб
Используемые порты: 9000, 9184 tcp
Подготовка сервера
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 -a $HOME/.sui/fullnode.yaml >/dev/null <<EOF p2p-config: seed-peers: - address: "/ip4/65.109.32.171/udp/8084" - address: "/ip4/65.108.44.149/udp/8084" - address: "/ip4/95.214.54.28/udp/8080" - address: "/ip4/136.243.40.38/udp/8080" - address: "/ip4/84.46.255.11/udp/8084" - address: "/ip4/135.181.6.243/udp/8088" - address: "/ip4/89.163.132.44/udp/8080" - address: "/ip4/95.217.57.232/udp/8080" - address: "/ip4/15.204.163.225/udp/8080" - address: "/ip4/65.108.68.119/udp/8080" - address: "/ip4/155.133.22.151/udp/8080" - address: "/ip4/45.14.194.21/udp/8080" - address: "/ip4/159.69.58.44/udp/8080" - address: "/ip4/139.180.130.95/udp/8084" - address: "/ip4/51.178.73.193/udp/8084" - address: "/ip4/162.19.84.43/udp/8084" - address: "/ip4/146.59.68.207/udp/8080" - address: "/ip4/89.58.5.19/udp/8084" - address: "/ip4/38.242.227.80/udp/8080" - address: "/ip4/144.217.10.44/udp/8080" - address: "/ip4/178.18.250.62/udp/8080" - address: "/ip4/213.239.215.119/udp/8084" EOF
Дополнительно можно настроить прунинг для экономии места:
sudo tee -a $HOME/.sui/fullnode.yaml >/dev/null <<EOF authority-store-pruning-config: objects-num-latest-versions-to-retain: 5 objects-pruning-period-secs: 86400 objects-pruning-initial-delay-secs: 3600 num-latest-epoch-dbs-to-retain: 3 epoch-db-pruning-period-secs: 3600 enable-live-pruner: 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