catch { snail }

Sui Full Node RU

June 28, 2022

Содержание Гайда

Пару Заметок:

  1. Это не официальный гайд
  2. Системные требования: CPUs: 2, RAM: 8GB, Storage: 50GB
  3. Я тестировал данный гайд на 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 минут

  1. Устанавливаем дополнительные пакеты
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
  1. Устанавливаем RUST (если он отсутствует)
sudo curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
source $HOME/.cargo/env
  1. Создаем папку где будет храниться ДБ sui ноды
mkdir -p /var/sui/db
  1. Клонируем официальную репозиторию Sui
cd $HOME
git clone https://github.com/MystenLabs/sui.git
  1. Подготавливаем ноду для сборки
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
  1. Компилируем Sui ноду. Процесс может занять от 5-60 минут +-
cargo build -p sui-node --release
mv $HOME/sui/target/release/sui-node /usr/local/bin/
  1. В файле с конфигурациями прописываем путь где будем хранить ДБ и путь к 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
  1. Если вы хотите открыть публичный досутп к RPC и Метрик данным вашей ноды
sed -i.bak "s/127.0.0.1/0.0.0.0/" /var/sui/fullnode.yaml
  1. Создаем сервис для 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
  1. Запускаем ноду
sudo systemctl restart systemd-journald
sudo systemctl daemon-reload
sudo systemctl enable sui-node
sudo systemctl restart sui-node
  1. Проверяем если сервис ноды включен
systemctl status sui-node | grep "running"

Вывод будет примерно таким

     Active: active (running) since


Полезно знать

  1. Полезные команды

Остановить ноду

systemctl stop sui-node

Запустить ноду

systemctl start sui-node

Посмотреть логи ноды

journalctl -u sui-node -f
  1. Проверяем если сервис включен
systemctl status sui-node | grep "running"

Вывод будет примерно таким

     Active: active (running) since
  1. Проверяем 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 формата

  1. Проверяем метрики ноды

Допустим можем посмотреть синхронизацию ноды

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/


Удачи


My personal notes.
I write about code.

© 2022, Built with Gatsby and a tiny Snail