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 -- -y
source $HOME/.cargo/env
- Создаем папку где будет храниться ДБ sui ноды
mkdir -p /var/sui/db
- Клонируем официальную репозиторию Sui
cd $HOME
git clone https://github.com/MystenLabs/sui.git
- Подготавливаем ноду для сборки
cd sui
git remote add upstream https://github.com/MystenLabs/sui
git fetch upstream
git checkout --track upstream/devnet
cp crates/sui-config/data/fullnode-template.yaml /var/sui/fullnode.yaml
wget -P /var/sui https://github.com/MystenLabs/sui-genesis/raw/main/devnet/genesis.blob
- Компилируем Sui ноду. Процесс может занять от 5-60 минут +-
cargo build -p sui-node --release
mv $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-journald
sudo systemctl daemon-reload
sudo systemctl enable sui-node
sudo 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-node
systemctl disable sui-node
rm /etc/systemd/system/sui-node.service
rm -rf ~/sui /var/sui/
Удачи