Способи оплати Abuse

Story Protocol: Встановлюємо ноду

03.09.2024, 15:51

Story Protocol - це інноваційна платформа для створення та управління інтелектуальною власністю на блокчейні. У проєкт інвестували такі великі фонди, як a16z, Polychain Capital і Samsung Next, зібравши понад $134 млн. Зараз у вас є можливість стати валідатором у новій тестовій мережі Story.

Story Protocol

Мінімальні вимоги до сервера

  1. Процесор: 4 ядра

  2. Оперативна пам'ять: 8 ГБ

  3. Сховище: 200 ГБ

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

  1. Орендуємо сервер у перевіреного хостинг-провайдера (звісно ж у THE.Hosting, а за промокодом TAXI активуйте знижку 15% на перше замовлення)

  2. Підключаємося до сервера через MobaXterm під root-доступом.

Оновлюємо та встановлюємо необхідні пакети:

sudo apt update && sudo apt upgrade -y
sudo apt install curl git make jq build-essential gcc unzip wget lz4 aria2 -y

Встановлення Story-Geth

Завантажуємо та встановлюємо Story-Geth:

wget https://story-geth-binaries.s3.us-west-1.amazonaws.com/geth-public/geth-linux-amd64-0.9.2-ea9f0d2.tar.gz
tar -xzvf geth-linux-amd64-0.9.2-ea9f0d2.tar.gz
[ ! -d "$HOME/go/bin" ] && mkdir -p $HOME/go/bin
if ! grep -q "$HOME/go/bin" $HOME/.bash_profile; then
echo 'export PATH=$PATH:$HOME/go/bin' >> $HOME/.bash_profile
fi
sudo cp geth-linux-amd64-0.9.2-ea9f0d2/geth $HOME/go/bin/story-geth
source $HOME/.bash_profile
story-geth version

Встановлення Story

Завантажуємо і встановлюємо Story:

wget https://story-geth-binaries.s3.us-west-1.amazonaws.com/story-public/story-linux-amd64-0.9.11-2a25df1.tar.gz
tar -xzvf story-linux-amd64-0.9.11-2a25df1.tar.gz
[ ! -d "$HOME/go/bin" ] && mkdir -p $HOME/go/bin
if ! grep -q "$HOME/go/bin" $HOME/.bash_profile; then
echo 'export PATH=$PATH:$HOME/go/bin' >> $HOME/.bash_profile
fi
sudo cp story-linux-amd64-0.9.11-2a25df1/story $HOME/go/bin/story
source $HOME/.bash_profile
story version

Ініціалізуємо мережу і задаємо монікер:

story init --network iliad --moniker MONIKER

Створення та налаштування сервісних файлів

Створюємо сервісний файл для Story-Geth:

sudo tee /etc/systemd/system/story-geth.service > /dev/null <<EOF

[Unit]
Description=Story Geth Client
After=network.target
[Service]
User=root
ExecStart=/root/go/bin/story-geth --iliad --syncmode full
Restart=on-failure
RestartSec=3
LimitNOFILE=4096
[Install]
WantedBy=multi-user.target
EOF


Створюємо сервісний файл для Story:

sudo tee /etc/systemd/system/story.service > /dev/null <<EOF
[Unit]
Description=Story Consensus Client
After=network.target
[Service]
User=root
ExecStart=/root/go/bin/story run
Restart=on-failure
RestartSec=3
LimitNOFILE=4096
[Install]
WantedBy=multi-user.target
EOF

Перезапускаємо і запускаємо сервіси:

sudo systemctl daemon-reload && 
sudo systemctl start story-geth && 
sudo systemctl enable story-geth && 
sudo systemctl start story && 
sudo systemctl enable story && 
sudo systemctl status story-geth && 
sudo systemctl status story

Перевірка стану ноди

Перевіряємо статус синхронізації ноди:

curl localhost:26657/status | jq

У перші 5-10 хвилин статус true і 0 block_height є нормою. Після цього блоки почнуть рости, і статус зміниться на false.

Встановлення снепшота (опціонально)

Зупиняємо ноду:

sudo systemctl stop story

sudo systemctl stop story-geth

Завантажуємо і встановлюємо снепшот для прискорення синхронізації:

cd $HOME
aria2c -x 16 -s 16 https://vps5.josephtran.xyz/Story/Geth_snapshot.lz4 -o Geth_snapshot.lz4
aria2c -x 16 -s 16 https://vps5.josephtran.xyz/Story/Story_snapshot.lz4 -o Story_snapshot.lz4

Видаляємо старі дані та витягуємо нові:

rm -rf ~/.story/story/data
rm -rf ~/.story/geth/iliad/geth/chaindata
sudo mkdir -p /root/.story/story/data
lz4 -d Story_snapshot.lz4 | pv | sudo tar xv -C /root/.story/story/
sudo mkdir -p /root/.story/geth/iliad/geth/chaindata
lz4 -d Geth_snapshot.lz4 | pv | sudo tar xv -C /root/.story/geth/iliad/geth/

Перезапускаємо ноду і перевіряємо статус:

sudo systemctl start story
sudo systemctl start story-geth
curl localhost:26657/status | jq

Створення валідатора

Експортуємо дані валідатора:

story validator export

Отримуємо приватний ключ:

sudo cat /root/.story/story/config/private_key.txt
story validator export --export-evm-ke

Запитуємо тестові токени $IP з крана і створюємо валідатора:

story validator create --stake 1000000000000000000 --private-key "your_private_key"

Корисні команди для роботи з нодою

Зупинка ноди:

sudo systemctl stop story
sudo systemctl stop story-geth

Перезапуск ноди:

sudo systemctl start story
sudo systemctl start story-get

Перевірка статусу:

curl localhost:26657/status | jq

Перегляд логів:

sudo journalctl -u story-geth -f -o cat
sudo journalctl -u story -f -o cat

Висновок

Тепер ви успішно встановили та налаштували ноду Story Protocol. Ви можете стежити за її роботою і створювати валідаторів для участі в тестовій мережі.