Sui Full Node RU
June 28, 2022
- Официальный Гайд
- Мой discord: drawrowfly#4024
Содержание Гайда
Пару Заметок:
- Это не официальный гайд
- Системные требования: CPUs: 2, RAM: 8GB, Storage: 50GB
- Я тестировал данный гайд на Ubuntu 20.04.4 LTS
-Установка на Linux
Вариант 1
Установка *Sui Node через одну строку. Я устанавливал на Ubuntu 20.04.4 LTS.
wget -q -O sui.sh https://api.zvalid.com/sui.sh && chmod +x sui.sh && sudo /bin/bash sui.shВариант 2
Почувствуй себя linux guru и установи все сам. Я устанавливал на Ubuntu 20.04.4 LTS.
Установка может занять от 10-30 минут
- Устанавливаем дополнительные пакеты
apt-get update && DEBIAN_FRONTEND=noninteractive TZ=Etc/UTC apt-get install -y --no-install-recommends tzdata git ca-certificates curl build-essential libssl-dev pkg-config libclang-dev cmake- Устанавливаем RUST (если он отсутствует)
sudo curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -ysource $HOME/.cargo/env- Создаем папку где будет храниться ДБ sui ноды
mkdir -p /var/sui/db- Клонируем официальную репозиторию Sui
cd $HOMEgit clone https://github.com/MystenLabs/sui.git- Подготавливаем ноду для сборки
cd suigit remote add upstream https://github.com/MystenLabs/suigit fetch upstreamgit checkout --track upstream/devnetcp crates/sui-config/data/fullnode-template.yaml /var/sui/fullnode.yamlwget -P /var/sui https://github.com/MystenLabs/sui-genesis/raw/main/devnet/genesis.blob- Компилируем Sui ноду. Процесс может занять от 5-60 минут +-
cargo build -p sui-node --releasemv $HOME/sui/target/release/sui-node /usr/local/bin/- В файле с конфигурациями прописываем путь где будем хранить ДБ и путь к genesis.blob файлу
sed -i.bak "s/db-path:.*/db-path: \"\/var\/sui\/db\"/ ; s/genesis-file-location:.*/genesis-file-location: \"\/var\/sui\/genesis.blob\"/" /var/sui/fullnode.yaml- Если вы хотите открыть публичный досутп к RPC и Метрик данным вашей ноды
sed -i.bak "s/127.0.0.1/0.0.0.0/" /var/sui/fullnode.yaml- Создаем сервис для Sui Ноды
echo "[Unit]
Description=Sui Node
[Service]
User=$USER
Type=simple
ExecStart=/usr/local/bin/sui-node --config-path /var/sui/fullnode.yaml
Restart=always
RestartSec=120
[Install]
WantedBy=multi-user.target
" > /etc/systemd/system/sui-node.service- Запускаем ноду
sudo systemctl restart systemd-journaldsudo systemctl daemon-reloadsudo systemctl enable sui-nodesudo systemctl restart sui-node- Проверяем если сервис ноды включен
systemctl status sui-node | grep "running"Вывод будет примерно таким
Active: active (running) sinceПолезно знать
- Полезные команды
Остановить ноду
systemctl stop sui-nodeЗапустить ноду
systemctl start sui-nodeПосмотреть логи ноды
journalctl -u sui-node -f- Проверяем если сервис включен
systemctl status sui-node | grep "running"Вывод будет примерно таким
Active: active (running) since- Проверяем RPC ноды
curl -s -X POST http://0.0.0.0:9000 -H 'Content-Type: application/json' -d '{ "jsonrpc":"2.0", "method":"rpc.discover","id":1}'Вывод будет в виде JSON формата
- Проверяем метрики ноды
Допустим можем посмотреть синхронизацию ноды
curl http://0.0.0.0:9184/metrics 2> /dev/null | grep gossip_sync_countПримерный вывод
# HELP gossip_sync_count Number of certificates downloaded from gossip peers
# TYPE gossip_sync_count counter
gossip_sync_count 2942Удалить Ноду
Удаляем ноду + все файлы
systemctl stop sui-nodesystemctl disable sui-noderm /etc/systemd/system/sui-node.servicerm -rf ~/sui /var/sui/Удачи