Sui: Installation Guide
Sui — децентрализованная платформа смарт-контрактов, разрабатываемый командой Mysten Labs. Целью проекта является организация базовой инфраструктуры для Web3 для создания богатых и динамичных сетевых активов, от игр до финансов
В конце 2021 года Mysten Labs закрыли раунд Серии А собрав $36M, лид инвестором стал Andreessen Horowitz. Также, на борту: Coinbase Ventures, Electric Capital, Samsung NEXT и др.
Форма для регистрации в награждаемый тестнет - https://airtable.com/shr3phh3FCZYhZUDF. Форма закрыта.
Гайд актуален для версии devnet v0.20.0 (5.01.2023)
Сrunchbase
Website
Discord
Whitepaper
Оглавление
- Подготовка сервера
- Установка и запуск
- Создание кошелька
- Обновление v0.20.0
- Перенос на другой сервер
- Мониторинг
- Удаление ноды
- Регистрация в Discord
- Кошелек для браузера Sui
Подготовка сервера
Для стабильной работы долно хватить сервера с следующими характеристиками: 4 CPU, 16 GB RAM, 120+ GB SSD, что позволяет установить ноду на сервер Hetzner - CX41.
Sui написан на Rust, для создания и управления зависимостей используется Cargo.
sudo apt update && sudo apt upgrade -y
Устанавливаем инструменты разработчика и необходимые пакеты
sudo apt install wget jq build-essential pkg-config gcc make -y sudo apt install curl sudo apt install libssl-dev sudo apt install cmake sudo apt install libclang-dev
# устанавливаем необходимые пакеты sudo apt install curl build-essential gcc make -y # загружаем установочный скрипт Rust curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Выбираем пункт 1) продолжить установку (по умолчанию).
# активируем среду Rust для текущей оболочки source ~/.profile source ~/.cargo/env
mkdir -p $HOME/.sui
Установка и запуск
Создаем форк репозитория и клонируем свой репозиторий (в код вставляем сврй никнейм гитхаба)
git clone https://github.com/MystenLabs/sui.git
Переходим в папку с проектом, подтягиваем последнюю версию и переключаемся на версию devnet
cd sui git remote add upstream https://github.com/MystenLabs/sui git fetch upstream git checkout --track upstream/devnet
cargo run --release --bin sui-node -- --config-path /root/sui/crates/sui-config/data/fullnode-template.yaml
Возвращаемся в домашнюю директорию
cd
wget -qO $HOME/.sui/genesis.blob https://github.com/MystenLabs/sui-genesis/raw/main/devnet/genesis.blob
cp $HOME/sui/crates/sui-config/data/fullnode-template.yaml $HOME/.sui/fullnode.yaml sed -i -e "s%db-path:.*%db-path: \"$HOME/.sui/db\"%; "\ "s%metrics-address:.*%metrics-address: \"0.0.0.0:9184\"%; "\ "s%json-rpc-address:.*%json-rpc-address: \"0.0.0.0:9000\"%; "\ "s%genesis-file-location:.*%genesis-file-location: \"$HOME/.sui/genesis.blob\"%; " $HOME/.sui/fullnode.yaml
ufw enable ufw allow 22 ufw allow 9000 ufw allow 9184 ufw status
printf "[Unit] Description=Sui node After=network-online.target [Service] User=$USER ExecStart=`which sui-node` --config-path $HOME/.sui/fullnode.yaml Restart=on-failure RestartSec=3 LimitNOFILE=65535 [Install] WantedBy=multi-user.target" > /etc/systemd/system/suid.service
sudo systemctl daemon-reload sudo systemctl enable suid sudo systemctl restart suid
Создание кошелька
Для создания кошелька вводим команду
sui client
На первый вопрос отвечаем yes - вводим y.
Config file ["/root/.sui/sui_config/client.yaml"] doesn't exist, do you want to connect to a Sui RPC server [yN]?y
Sui RPC server Url устанавливаем по умолчанию, нажав Enter
Sui RPC server Url (Default to Sui DevNet if not specified) :
Сохраняем в надежном месте резервную копию ключей
$HOME/.sui/sui_config/
sui keytool list
В канале #devnet-faucet запрашиваем тестовые токены командой
!faucet 0x___
Если канала нет, необходимо пройти верификацию:
Шаг 1. Зайти по ссылке https://discord.com/channels/916379725201563759/1008756308272496710 и поставить каплю
Шаг 2. Зайти по ссылке https://discord.com/channels/916379725201563759/955578198878482442 и поставить галочку
Обновление v0.20.0
Останавливаем ноду, удаляем старые данные, подтягиваем изменения
systemctl stop suid rm -rf /root/sui/suidb/ cd 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
Возвращаемся в домашнюю директорию
cd
wget -qO $HOME/.sui/genesis.blob https://github.com/MystenLabs/sui-genesis/raw/main/devnet/genesis.blob
sui --version #sui v0.20.0
systemctl restart suid
Перенос на другой сервер
Сохраняем копию ключей с текущего сервера на свой компьютер
$HOME/.sui/sui_config/
На новом сервере выполняем все команды по гайду до момента запуска сервиса.
Останавливаем ноду на старом сервере (внимательно убедитесь, что нода остановлена во избежание двойного подписания)
sudo systemctl stop suid
Загружаем на новый сервер сохраненный каталог по пути
$HOME/.sui/sui_config/
sudo systemctl daemon-reload sudo systemctl enable suid sudo systemctl restart suid
Мониторинг
sudo journalctl -u suid -f -o cat
Также, проверить работоспособность ноды можно введя свой IP по ссылке:
Devnet эксплорер: https://explorer.devnet.sui.io/
Удаление ноды
Для удаления ноды выполните следующие команды
systemctl stop suid && systemctl disable suid rm -rf $HOME/{sui,.sui} /usr/bin/{sui,sui-node,sui-faucet} /etc/systemd/system/suid.service systemctl daemon-reload
Регистрация в Discord
В настоящее время регистрация в Discord закрыта!
В адресной строке браузера вводим http://<ваш IP>:9000/.
wget -qO- eth0.me
Если появляется надпись - Used HTTP Method is not allowed. POST or OPTIONS is required - значит все в порядке.
Заходим в discord канал #node-ip-application и отправляем свой IP в формате http://<ваш IP>:9000/.
Кошелек для браузера Sui
Появилась возможность протестировать браузерный кошелек Sui. Необходимо выполнить ряд заданий - создание кошелька, минт NFT и другий.