Story Protocol — это инновационная платформа для создания и управления интеллектуальной собственностью на блокчейне. В проект инвестировали такие крупные фонды, как a16z, Polychain Capital и Samsung Next, собрав более $134 млн. Сейчас у вас есть возможность стать валидатором в новой тестовой сети Story.
Минимальные требования к серверу
-
Процессор: 4 ядра
-
Оперативная память: 8 ГБ
-
Хранилище: 200 ГБ
Подготовка сервера
-
Арендуем сервер у проверенного хостинг-провайдера (конечно же у PQ.Hosting, а по промокоду TAXI активируйте скидку 15% на первый заказ)
-
Подключаемся к серверу через 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
Создание валидатора
Экспортируем данные валидатора:
Получаем приватный ключ:
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. Вы можете следить за ее работой и создавать валидаторов для участия в тестовой сети.