February 6, 2023

Установка ноды SUI для тестнета Wave 2

Аренда сервера

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

    • CPUs: 10 core
    • RAM: 32 GB
    • Storage (SSD): 1 TB

Требования очень высокие, если вы не попали в список оплачиваемых валидаторов, то оплачивать каждый месяц сервер с такими характеристиками будет очень затратно, поэтому можно взять послабее. Но, опять же, память съедается очень быстро, поэтому либо придётся докупать дополнительно память, если возьмёте очень мало, либо брать другой сервер.

1) На Digital Ocean можно получить бесплатно 200$ на 60 дней на аренду серверов. Для этого надо зарегистрироваться по ссылке и ввести способ оплаты. Незадолго до окончания бесплатных 60 дней отменяете подписку, и с вас не спишут деньги за продление подписки.

Выбираем слева New Project, вводим имя проекта, описание и в нижней графе выбираем Machine learning / AI / Data processing, нажимаем Create Project:

Далее жмём Skip for now:

Ждём, пока всё загрузится, и нажимаем Create -> Droplets:

Далее выбираем город (San Francisco и Amsterdam самые дешевые), листаем до параметров сервера и выбираем тот, который подходит больше всего. Но помните, что память расходуется очень быстро.

2) Можно воспользоваться сервисом Hetzner.

∎ Регистрируемся, если у вас еще нет аккаунта. После этого арендуем либо облачный сервер, либо VDS.

Облачный сервер.

Переходим сюда, нажимаем NEW PROJECT, придумываем имя:

Затем переходим в созданный проект и на открывшейся странице нажимаем ADD SERVER:

∎ Выбираем сервер, нажимаем CREATE & BUY NOW:

После этого вам на почту придет пароль от сервера:

VDS.

Переходим сюда и выбираем сервер. Но обратите внимание, что там по 2 SSD диска, их придётся объединять.

3) Можно воспользоваться сервисом VDSina. Сайт позволяет расплачиваться русскими картами и криптовалютой, а также есть гибкие настройки характеристик сервера.

Подключение к серверу

∎ Переходим в терминал, пишем команду для входа на сервер, где вставляем IP адрес своего арендованного сервера:

ssh root@IP_АДРЕС_СЕРВЕРА

Далее появится вопрос:

Are you sure you want to continue connecting (yes/no/[fingerprint])?

Отвечаем "yes".

При аренде сервера Hetzner попросят ввести пароль, который прислали на почту, два раза. После этого надо будет ввести новый пароль, который вы будете использовать при входе на сервер. Его попросят ввести тоже два раза.

Подготовка сервера

∎ Теперь, когда сервер арендован, надо обновить репозитории и установить необходимые пакеты:

apt-get update \
    && apt-get install -y --no-install-recommends \
    tzdata \
    ca-certificates \
    build-essential \
    pkg-config \
    cmake \
    libprotobuf-dev \
    protobuf-compiler \
    clang \
    libclang-dev \
    libssl-dev

∎ Устанавливаем Rust.

sudo curl https://sh.rustup.rs -sSf | sh -s -- -y 
source $HOME/.cargo/env 

∎ Проверяем версию (в выводе должно быть 1.67.0):

rustc --version

Установка ноды Sui для тестнета Wave 2

∎ Клонируем репозиторий с GitHub:

cd $HOME 
git clone https://github.com/MystenLabs/sui.git

∎ В папке sui cоздаём ветку с исходным репозиторием:

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

∎ Синхронизируем версию:

git fetch upstream

∎ Переключаемся на testnet:

git checkout -B testnet --track upstream/testnet

∎ Создаём директорию:

mkdir $HOME/.sui

∎ Скачиваем генезисный файл:

wget https://github.com/MystenLabs/sui-genesis/raw/main/testnet/genesis.blob
mv genesis.blob /$HOME/.sui/

∎ Создаём копию файла fullnode.yaml и обновляем путь к базу данных:

cp $HOME/sui/crates/sui-config/data/fullnode-template.yaml $HOME/.sui/fullnode.yaml
sed -i.bak "s|db-path:.*|db-path: \"$HOME\/.sui\/db\"| ; s|genesis-file-location:.*|genesis-file-location: \"$HOME\/.sui\/genesis.blob\"| ; s|127.0.0.1|0.0.0.0|" $HOME/.sui/fullnode.yaml

∎ Добавляем пиры:

sudo tee -a $HOME/.sui/fullnode.yaml  >/dev/null <<EOF

p2p-config:
  seed-peers:
   - address: "/dns/seoul-1.sui.nodiums.com/udp/9999"
   - address: "/dns/seoul-2.sui.nodiums.com/udp/9999"
   - address: "/dns/singapore-1.sui.nodiums.com/udp/9999"
   - address: "/dns/singapore-2.sui.nodiums.com/udp/9999"
   - address: "/dns/singapore-3.sui.nodiums.com/udp/9999"
   - address: "/dns/singapore-4.sui.nodiums.com/udp/9999"
   - address: "/dns/toronto-1.sui.nodiums.com/udp/9999"
   - address: "/dns/mumbai-1.sui.nodiums.com/udp/9999"
   - address: "/dns/los-angeles-1.sui.nodiums.com/udp/9999"
   - address: "/dns/dallas-1.sui.nodiums.com/udp/9999"
   - address: "/ip4/65.109.32.171/udp/8084"
   - address: "/ip4/65.108.44.149/udp/8084"
   - address: "/ip4/95.214.54.28/udp/8080"
   - address: "/ip4/136.243.40.38/udp/8080"
   - address: "/ip4/84.46.255.11/udp/8084"
   - address: "/ip4/135.181.6.243/udp/8088"
   - address: "/ip4/89.163.132.44/udp/8080"
   - address: "/ip4/95.217.57.232/udp/8080"
   - address: "/ip4/15.204.163.225/udp/8080"
   - address: "/ip4/65.108.68.119/udp/8080"
   - address: "/ip4/155.133.22.151/udp/8080"
   - address: "/ip4/45.14.194.21/udp/8080"
   - address: "/ip4/159.69.58.44/udp/8080"
   - address: "/ip4/139.180.130.95/udp/8084"
   - address: "/ip4/51.178.73.193/udp/8084"
   - address: "/ip4/162.19.84.43/udp/8084"
   - address: "/ip4/146.59.68.207/udp/8080"
   - address: "/ip4/89.58.5.19/udp/8084"
   - address: "/ip4/38.242.227.80/udp/8080"
   - address: "/ip4/144.217.10.44/udp/8080"
   - address: "/ip4/178.18.250.62/udp/8080"
   - address: "/ip4/213.239.215.119/udp/8084"
   - address: "/ip4/65.109.32.171/udp/8084"
   - address: "/ip4/65.108.44.149/udp/8084"
   - address: "/ip4/95.214.54.28/udp/8080"
   - address: "/ip4/136.243.40.38/udp/8080"
   - address: "/ip4/84.46.255.11/udp/8084"
   - address: "/ip4/135.181.6.243/udp/8088"

EOF

∎ Создаём бинарные файлы:

cargo build --release --bin sui-node 
mv ~/sui/target/release/sui-node /usr/local/bin/ 

∎ Проверяем версию (в выводе должно быть 0.22.0-xxx):

sui-node -V

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

echo "[Unit] 
Description=Sui Node 
After=network.target 

[Service] 
User=$USER 
Type=simple 
ExecStart=/usr/local/bin/sui-node --config-path $HOME/.sui/fullnode.yaml 
Restart=on-failure 
LimitNOFILE=65535 

[Install] 
WantedBy=multi-user.target" > $HOME/suid.service 

mv $HOME/suid.service /etc/systemd/system/ 

sudo tee <<EOF >/dev/null /etc/systemd/journald.conf 
Storage=persistent 
EOF

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

sudo systemctl restart systemd-journald 
sudo systemctl daemon-reload 
sudo systemctl enable suid 
sudo systemctl restart suid

∎ Смотрим логи:

journalctl -u suid -f   

Далее проверяем синхронизацию ноды на сайте: https://www.scale3labs.com/check/sui

Вставляем IP адрес ноды и в графе Network выбираем сеть Testnet. Ждём, когда нода синхронизируется, статус синхронизации должен стать 100%.

Готово! Нода установлена! Не забывайте вовремя устанавливать обновления, всю актуальную информацию можно найти в Дискорде.

Спасибо за внимание!

Стань частью команды Cryptonik 👇

📢Телеграм канал https://t.me/cryptonik_space 🎬 Youtube канал https://www.youtube.com/@cryptonik_space 💬 Телеграм чат https://t.me/cryptonik_space_chat