Nodes and validators
June 19, 2022

Установка фулл ноды Sui

Не актуально

Команда писала, что для будущих возможных валидаторов, фуллноду ставить обязательно. Если не планируете в валидаторы, то думаю команда оценит ваш вклад на такой ранней стадии.

Официальные технические требования:

  • CPUs: 2
  • RAM: 8GB
  • Storage: 50GB

Для тех кто вообще не знаком с нодами сделал видеогайд

Установка с нуля

Обновляемся

 sudo apt update && sudo apt install curl -y

Устанавливаем доп зависимости

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 и Cargo

curl https://sh.rustup.rs -sSf | sh

Выбираем стандартную установку, пишем 1

Если возникает такая ошибка, то надо установить curl

sudo apt update

sudo apt install curl

Далее продолжаем установку

source ~/.profile
source ~/.cargo/env

Проверяем версию cargo, должна быть 1.61.0 или выше

cargo -V

Теперь форкаем и клонируем репозитарий через свой гитхаб, если его нет, то либо зарегистироваться, либо взять с официального гитхаба, но лучше скопировать свой.

Переходим по ссылке и нажимаем кнопку "Fork"

Клонируем репозитарий

git clone https://github.com/<Ваш ник гитхаба>/sui.git

Заходим в папку

cd sui

Настраиваем репозиторий Sui как git remote

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

Синхронизируем форк

git fetch upstream

Проверяем ветку devnet

git checkout --track upstream/devnet

Создаем копию шаблона конфигурации полного узла

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

Скачаиваем последнюю версию genesis

curl -fLJO https://github.com/MystenLabs/sui-genesis/raw/main/devnet/genesis.blob

Устанавливаем и запускаем ноду, установка занимает длительное время, 40+ минут

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

После длительной загрузки должно быть сообщение счастья:

Далее нужно немного изменить настройки открыть порты

Останавливаем ноду (ctrl+z)

Выполняем команду

nano fullnode.yaml

И делаем такие айпи

с 127.0.0.1 на все нули

Это переключение с локального подключение на подключение со всех адресов.

Добавить порты

sudo ufw allow 9000
sudo ufw allow 9184
sudo ufw allow 8080

После этого перезагружаем сервер

reboot

Можно просто запустить ноду и все будет работать, однако при закрытии терминала, нода будет прекращать работу, поэтому запустим её через скрин. Он обычно должен быть установлен по умолчанию, если нет, то установить командой apt install screen.

Создаем окно в скрине

screen -S Sui

Далее запускаем ноду, чтобы запустить ноду надо:

Перейти в папку с суй

cd sui

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

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

Теперь можно выйти из скрина нажатием ctrl+A+D, если захотите зайти и посмотреть как там нода (она молчаливая, после лога про старт обычно ничего нет) то ввести команду screen -r или screen -r Sui

Далее идем в дискорд и подтверждаем, что поставили ноду

Можно закинуть последнее сообщение в #dev-general, например

2022-06-18T23:43:18.350633Z INFO sui_node: SuiNode started!

И также в #nodes-operators закинуть вашу ноду в формате:

https://вашайпи:9000

Если перейти по ссылке, должно быть примерно так:

А может быть чуть по другому или вообще "сайт отправил недействительный ответ"

Однако у меня всего лишь один раз получилось получить ответ от ноды таким образом, для ее работоспособность я смотрю на этом сайте, там вводим свой айпи, должно быть примерно вот так:

Спасибо Andrew | zValid, это просто пушка

Обновление

Вышло обновление 0.5.0 23.06 и если вы до этого ставили ноду по моему гайду, то нужно обновиться. Если поставили с нуля после, то не надо

Заходим в окно скрин, где запускали ноду

screen -r

Останавливаем ноду ctrl+z

Удаляем страую базу данных и файл "genesis.blob"

rm -r suidb genesis.blob

Получаем данные из последнего релиза

git fetch upstream

Переустанавливаем нашу ветку девнет

git checkout -B devnet --track upstream/devnet

И скачиваем обновленный генезис

curl -fLJO https://github.com/MystenLabs/sui-genesis/raw/main/devnet/genesis.blob

Запускаем окно скрин

screen -S 1

И запускаем ноду. Установятся удаленные и новые файлы

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

Если выскакивает ошибка 98 типа адресс уже используется, то перезагружаем сервер и выполняем

screen -S 1
cd sui
cargo run --release --bin sui-node -- --config-path fullnode.yaml

После запуска проверяем, как работает нода старыми способами

Если хотите выразить благодарность, буду рад вашим лайкам!

Дискорд проекта

Мой ник в дискорде - AD_3118#6164, по всем вопросам - обращайтесь!