August 3, 2022

SUI Full Node Guide

Требования к серверу

2 Core

8 GB RAM

Disk 50 GB

Установка

Подготовка сервера(копируем все вместе, вводим одной командой):

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

Устанавливаем cargo

apt install cargo
#отвечаем y

Устанавливает rust версии 1.62

curl https://sh.rustup.rs -sSf | sh
#отвечаем y, выбираем пункт 1

source "$HOME/.cargo/env"

Далее нам необходимо создать форк на Git Hub(нужно быть уже зарегистрированным пользователем). Идем на этот сайт и нажимаем кнопку "fork" и в следующем окне подтверждаем копирование.

Возвращаемся в терминал

git clone https://github.com/<YOUR-GITHUB-USERNAME>/sui.git
#<YOUR-GITHUB-USERNAME> - заменить на Ваше имя пользователя на GitHub

cd sui

git remote add upstream https://github.com/MystenLabs/sui

cp crates/sui-config/data/fullnode-template.yaml fullnode.yaml

rm -rf /root/sui/suidb/

wget -O /root/sui/genesis.blob https://github.com/MystenLabs/sui-genesis/raw/main/devnet/genesis.blob

git fetch upstream

git stash

git checkout -B devnet --track upstream/devnet

cargo run --release --bin sui-node -- --config-path /root/sui/fullnode.yaml

Закрыть терминал и запустить сервер заново

cd sui

cargo build --release

mv ~/sui/target/release/sui /usr/local/bin/
vi /root/sui/fullnode.yaml
#меняем адреса и путь к файлу genesis.blob на такие, как ниже на скрине
#ВАЖНО! На скрине не отображено, но необходимо поменять еще и вторую строку:
#Вместо "suidb" написать "$HOME/sui/suidb"

Открываем порты:

sudo ufw allow 9000

sudo ufw allow 9184

sudo ufw enable

Создаем сервисный файл:

sudo tee /etc/systemd/system/suid.service > /dev/null <<EOF

Далее копируем одной командой:

[Unit]
Description=Sui Node
After=network.target
[Service]
User=$USER
Type=simple
ExecStart=/root/sui/target/release/sui-node --config-path /root/sui/fullnode.yaml
Restart=on-failure
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
EOF

Запускаем сервисный файл:

sudo systemctl daemon-reload

sudo systemctl enable suid

sudo systemctl restart suid

sudo systemctl status suid

Нода установлена!
Как проверить работает ли нода?
Идем на этот сайт и вводим айпи своего сервера, нажимаем "connect", работающая нода выглядит так:

Для регистрации в тестнете необходимо заполнить форму !

Как удалить базу данных

Останавливаем сервис:

sudo systemctl stop suid

sudo systemctl disable suid

Удаляем старую базу данных:

sudo rm -rf $HOME/sui/suidb

Запускаем сервис:

sudo systemctl daemon-reload

sudo systemctl enable suid

sudo systemctl restart suid

sudo systemctl status suid

Дополнительные команды

Проверить версию ноды:

sui --version

Проверка логов:

journalctl -u suid -f -o cat

Обновление (18.08)

Теперь для успешного обновления ноды тем, кто устанавливал по офф гайду (это мы) нужно:
- Иметь созданную папку .sui в которой будет лежать fullnode.yaml и genesis. blob
- В файле fullnode.yaml должен быть прописан путь к genesis.blob

Останавливаем ноду:

sudo systemctl stop suid

sudo systemctl disable suid

Создаем директорию и перемещаем в нее fullnode.yaml и genesis.blob:

cd $HOME

mkdir .sui

mv /root/sui/fullnode.yaml /root/.sui/

mv /root/sui/genesis.blob /root/.sui/

Путь к генезису:

sed -i.bak " s/genesis-file-location:.*/genesis-file-location: \"\/root\/.sui\/genesis.blob\"/" /root/.sui/fullnode.yaml

Удаляем старую базу данных:

rm -rf /root/sui/suidb/

Удалить старый генезис и скачать новый:

wget -O /root/.sui/genesis.blob https://github.com/MystenLabs/sui-genesis/raw/main/devnet/genesis.blob

Обновляем директорию sui:

cd sui

git fetch upstream

git stash

git checkout -B devnet --track upstream/devnet

Билд новых бинарников:

cargo run --release --bin sui-node -- --config-path /root/.sui/fullnode.yaml

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

sudo systemctl daemon-reload

sudo systemctl enable suid

sudo systemctl restart suid

sudo systemctl status suid

Обновление (30.08)

Останавливаем ноду:

sudo systemctl stop suid

sudo systemctl disable suid

Удаляем старые базы данных:

cd .sui

rm -rf suidb

Удалить старый генезис и скачать новый:

wget -O /root/.sui/genesis.blob https://github.com/MystenLabs/sui-genesis/raw/main/devnet/genesis.blob

Обновить папку sui:

cd /root/sui

git fetch upstream

git stash

git checkout devnet-0.8.0

Билд нового бинарника(вы должны находиться в директории sui для запуска этой команды):

cargo run --release --bin sui-node -- --config-path /root/.sui/fullnode.yaml

Запустить сервис:

sudo systemctl daemon-reload

sudo systemctl enadle suid

sudo systemctl start suid

sudo systemctl status suid

Спасибо за внимание! И поздравляю с новой нодой!
Искренне Ваша - @kulikovae!

Smart Hamster Nodes Studio
Курс "Обучение по нодам" тут!
Наша новостная группа тут!