УДАЛЁННОЕ
Оглавление
Sui
Фазы
⠀Исходя из анонса, стимулирующая тестовая сеть начнётся в августе и будет поделена на несколько этапов:
⠀Судя по всему, это будет закрытый тестнет с ограниченным количеством участников, по каким критериям будет отбор — неизвестно. Как правило это:
⠀Модераторы в Discord писали, что ведение ноды в девнете может быть одним из достоинств при отборе, помимо этого её установка может дать опыт, который позволит легче совладать с будущим тестнетом.
Награды
⠀Будут анонсированы ближе к началу события.
Запуск
Все действия необходимо выполнять под именем root
пользователя.
⠀Каждый подраздел — отдельный вид запуска, нужно выбрать один из них.
Linux (бинарный файл)
sudo apt update && sudo apt upgrade -y
⠀Установить необходимые пакеты
sudo apt install wget jq -y
version=`wget -qO- https://api.github.com/repos/MystenLabs/sui/releases/latest | jq -r ".tag_name"`; \ wget -O /usr/bin/sui "https://github.com/MystenLabs/sui/releases/download/${version}/sui"
chmod +x /usr/bin/sui
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
. <(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/miscellaneous/ports_opening.sh) \ 9000 9184
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
⠀Добавить команду для просмотра лога ноды в систему в виде переменной
. <(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/miscellaneous/insert_variable.sh) -n sui_log -v "sudo journalctl -fn 100 -u suid" -a
⠀Проверить, выводит ли команда информацию
wget -qO- -t 1 -T 5 --header 'Content-Type: application/json' --post-data '{ "jsonrpc":"2.0", "id":1, "method":"sui_getCommitteeInfo", "params":[] }' "http://127.0.0.1:9000/" | jq
⠀Помимо этого можно проверить синхронизацию в этом чекере и найти свою ноду в другом, введя IP сервера.
Linux (исходный код)
sudo apt update && sudo apt upgrade -y
⠀Установить необходимые пакеты
sudo apt install wget jq git libclang-dev libpq-dev cmake -y
. <(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/installers/rust.sh)
⠀Версия Rust должна быть не младше 1.62.0
rustc --version
⠀Если нет, то удалить командой ниже и установить ещё раз
. <(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/installers/rust.sh) \ -un
mkdir -p $HOME/.sui
⠀Клонировать репозиторий проекта с нодой
git clone https://github.com/MystenLabs/sui
⠀Сделать форк репозитория (сам репозиторий).
⠀Клонировать свой репозиторий с нодой (в ссылку необходимо подставить свой юзернейм)
git clone https://github.com/YOUR_USERNAME/sui
cd sui
⠀Создать ветку с исходным репозиторием
git remote add upstream https://github.com/MystenLabs/sui
git fetch upstream
⠀Переключиться на devnet
версию
git checkout -B devnet --track upstream/devnet
⠀Собрать бинарные файлы (скорость зависит от количества ядер процессора, может занять несколько десятков минут)
cargo build --release
error: failed to get `config` as a dependency of package `sui-config v0.0.0 (/root/suirates/sui-config)`
⠀Нужно скачать бинарные файлы, собранные нашей командой
version=`wget -qO- https://api.github.com/repos/SecorD0/Sui/releases/latest | jq -r ".tag_name"`; \ wget -qO- "https://github.com/SecorD0/Sui/releases/download/${version}/sui-linux-amd64-${version}.tar.gz" | tar -C /usr/bin/ -xzf -
⠀Переместить бинарные файлы в папку с бинарными файлами
mv $HOME/sui/target/release/{sui,sui-node,sui-faucet} /usr/bin/
⠀Вернуться в домашнюю директорию
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
. <(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/miscellaneous/ports_opening.sh) \ 9000 9184
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
⠀Добавить команду для просмотра лога ноды в систему в виде переменной
. <(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/miscellaneous/insert_variable.sh) -n sui_log -v "sudo journalctl -fn 100 -u suid" -a
⠀Проверить, выводит ли команда информацию
wget -qO- -t 1 -T 5 --header 'Content-Type: application/json' --post-data '{ "jsonrpc":"2.0", "id":1, "method":"sui_getCommitteeInfo", "params":[] }' "http://127.0.0.1:9000/" | jq
⠀Помимо этого можно проверить синхронизацию в этом чекере и найти свою ноду в другом, введя IP сервера.
Docker
⠀По желанию сделать форк репозитория (сам репозиторий).
sudo apt update && sudo apt upgrade -y
⠀Установить необходимые пакеты
sudo apt install wget jq bc build-essential -y
. <(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/installers/docker.sh)
mkdir -p $HOME/.sui
wget -qO $HOME/.sui/genesis.blob https://github.com/MystenLabs/sui-genesis/raw/main/devnet/genesis.blob
wget -qO $HOME/.sui/fullnode.yaml https://github.com/MystenLabs/sui/raw/main/crates/sui-config/data/fullnode-template.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
. <(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/miscellaneous/ports_opening.sh) \ 9000 9184
docker run -dit --name sui_node --restart always -u 0:0 \ --log-opt max-size=50m --log-opt max-file=3 \ --network host -v $HOME/.sui:/root/.sui secord/sui \ --config-path $HOME/.sui/fullnode.yaml
⠀Добавить команды в систему в виде переменных:
. <(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/miscellaneous/insert_variable.sh) -n sui_log -v "docker logs sui_node -fn100" -a . <(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/miscellaneous/insert_variable.sh) -n sui -v "docker exec -it sui_node ./sui" -a
⠀Проверить, выводит ли команда информацию
wget -qO- -t 1 -T 5 --header 'Content-Type: application/json' --post-data '{ "jsonrpc":"2.0", "id":1, "method":"sui_getCommitteeInfo", "params":[] }' "http://127.0.0.1:9000/" | jq
⠀Помимо этого можно проверить синхронизацию в этом чекере и найти свою ноду в другом, введя IP сервера.
Обновление
Linux бинарный файл)
systemctl stop suid
rm -rf $HOME/.sui/db
wget -qO $HOME/.sui/genesis.blob https://github.com/MystenLabs/sui-genesis/raw/main/devnet/genesis.blob
version=`wget -qO- https://api.github.com/repos/MystenLabs/sui/releases/latest | jq -r ".tag_name"`; \ wget -qO /usr/bin/sui "https://github.com/MystenLabs/sui/releases/download/${version}/sui"
⠀Проверить версию, должна быть 0.22.0
sui -V
systemctl restart suid