Установка ноды Story Protocol / Story Protocol Node Guide
Интеллектуальная собственность — это класс активов стоимостью в несколько триллионов долларов, застрявший в устаревшей системе. Story внедряет IP (intellectual property) в блокчейн и делает ее программируемой с помощью инноваций.
Содержание
Требования к серверу
Аренда серверов
Оплата российскими картами
play2go
Подготовка сервера
sudo apt-get update -y && sudo apt upgrade -y && sudo apt-get install make build-essential pkg-config libssl-dev unzip tar lz4 gcc git jq -y
Установка ноды
Установка и запуск Geth
Скачай и распакуй архив с geth
wget -q --show-progress 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
Перемести файлик для удобного запуска
mv geth-linux-amd64-0.9.2-ea9f0d2/geth /usr/local/bin/
geth version
#Ответ
Geth
Version: 0.9.2-stable
Git Commit: ea9f0d293f5800e9e0300dfaafc02256de6160ef
Git Commit Date: 20240826
Architecture: amd64
Go Version: go1.21.13
Operating System: linux
GOPATH=
GOROOT=/opt/hostedtoolcache/go/1.21.13/x64
nano /etc/systemd/system/geth.service
Вставь в него следующее содержимое, сохрани CTRL+S
и выйди из редактора CTRL+X
[Unit] Description=Geth Node After=network.target [Service] ExecStart=/usr/local/bin/geth --iliad --syncmode full Restart=always User=root [Install] WantedBy=multi-user.target
sudo systemctl enable geth
sudo systemctl start geth
Установка и запуск ноды
Скачай и распакуй архив с нодой
wget -q --show-progress 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
Перемести файлик для удобного запуска
mv story-linux-amd64-0.9.11-2a25df1/story /usr/local/bin/
Создай еще один сервисный файл
nano /etc/systemd/system/story.service
Вставь в него следующее содержимое, сохрани CTRL+S
и выйди из редактора CTRL+X
[Unit] Description=Story Client After=network.target [Service] ExecStart=/usr/local/bin/story run WorkingDirectory=/root/.story/story Restart=always User=root [Install] WantedBy=multi-user.target
Придумай имя своей ноде и в следующей команде замени <Your_Node_Name>
на то что ты придумал
story init --network iliad --moniker <Your_Node_Name>
#пример
story init --network iliad --moniker Nodateka
sudo systemctl enable story
sudo systemctl start story
Экспорт ключа валидатора
Нода сама создает кошелек для тебя, введи эти две команды и сохрани адрес своего нового кошелька
(1), публичный ключ в кодировке base64
(2) надежное место.
story validator export --export-evm-key --evm-key-path ~/.story/story/.env
cat ~/.story/story/.env
После ввода последней команды на экране появится приватный ключ
(3) от твоего нового кошелька, скопируй и сохрани его в надежное место.
Теперь тебе нужно пополнить свой новый кошелек токенами IP, минимум нужен 1,1 IP. Дальше продолжай только после пополнения!
Создание валидатора
В следующей команде замени <YOUR PRIVATE KEY> на приватный ключ от твоего нового кошелька (3 на скриншоте выше)
story validator create --stake 1000000000000000000 --private-key <YOUR PRIVATE KEY>
После ввода команды ты увидишь примерно тоже что и на скрине. Поздравляю теперь ты один из первых валидаторов в Story!
Скопируй URL адрес и вставь его в адресной строке браузера, ты увидишь хеш своей транзакции.
Стейкинг в валидатора
Теперь ты можешь стейкать в своего нового валидатора.
В команде ниже замени <YOUR PUBLIC KEY (base64)>
на свой публичный ключ в кодировке base64 (2 на скриншоте), а <YOUR PRIVATE KEY>
снова замени на свои приватный ключ (3 на скриншоте)
story validator stake --validator-pubkey <YOUR PUBLIC KEY (base64)> --stake 1000000000000000000 --private-key <YOUR PRIVATE KEY>
Также ты можешь отблагодарить меня за гайд) и стейкнуть в моего валидатора, в команде ниже уже указан мой публичный ключ, тебе остается только заменить <YOUR PRIVATE KEY>
. Спасибо!
story validator stake --validator-pubkey AqpEOp3bFm8ED0d8FdSEVagGKtLxZNkHv5ku65gNHvR3 --stake 1000000000000000000 --private-key <YOUR PRIVATE KEY>
Бэкап файлов конфигураций
Подключись к серверу по SFTP и скопируй файлы конфигураций к себе на компьютер, файлы на сервере находятся по пути /root/.story/story/config
Особенно важен приватный ключ priv_validator_key.json
, храни его в надежном месте.
Мониторинг состояния ноды
Открой журналы системных сообщений служб которые ты запустил, для выхода из логов нажми CTRL+C
sudo journalctl -u geth -f
sudo journalctl -u story -f
Проверка статуса синхронизации
Проверь статус синхронизации следующей командой, если в строке "catching_up":
значение false
, то твоя нода полностью синхронизирована.
curl localhost:26657/status | jq
Проверка статуса валидатора в эксплорере
Введи команду, скопируй HEX валидатор адрес (1) из ответа команды
curl -s localhost:26657/status | jq -r '.result.validator_info'
Перейди в эксплорер сети и в поле поиска вставь свой HEX адрес (1), скорее всего ты увидишь что твой валидатор не активен и находится в "тюрьме"
Обновление ноды до версии 0.10.0
Если у тебя в логах журнала службы story, примерно такая ситуация
Проверь еще вот этим скриптом высоту блоков которую успела набрать твоя нода
while true; do local_height=$(curl -s localhost:26657/status | jq -r '.result.sync_info.latest_block_height'); network_height=$(curl -s https://rpc-story.josephtran.xyz/status | jq -r '.result.sync_info.latest_block_height'); blocks_left=$((network_height - local_height)); echo -e "\033[1;38mYour node height:\033[0m \033[1;34m$local_height\033[0m | \033[1;35mNetwork height:\033[0m \033[1;36m$network_height\033[0m | \033[1;29mBlocks left:\033[0m \033[1;31m$blocks_left\033[0m"; sleep 5; done
Если твоя нода застряла на блоке 626575, то выполни обновление до версии 0.10.0, если у тебя в ответе этой команды высота ниже чем 626575 сообщи в Нодатеку.
cd
wget https://story-geth-binaries.s3.us-west-1.amazonaws.com/story-public/story-linux-amd64-0.10.0-9603826.tar.gz
tar -xzvf story-linux-amd64-0.10.0-9603826.tar.gz
sudo systemctl stop story
cp $HOME/story-linux-amd64-0.10.0-9603826/story /usr/local/bin/
source $HOME/.bash_profile
story version # ответ #Version v0.10.0-stable
sudo systemctl daemon-reload
sudo systemctl start story
sudo journalctl -u story -f
Веррсия обновилась и высота начала подниматься!
Удаление ноды
Останови и удали созданные службы
sudo systemctl stop story
sudo rm /etc/systemd/system/story.service
sudo systemctl stop geth
sudo rm /etc/systemd/system/geth.service
sudo systemctl daemon-reload
Удали ненужные файлы и дериктории
rm story-linux-amd64-0.9.11-2a25df1.tar.gz
rm geth-linux-amd64-0.9.2-ea9f0d2.tar.gz
rm geth-linux-amd64-0.9.2-ea9f0d2
rm story-linux-amd64-0.9.11-2a25df1
Еще раз поздравляю! Теперь ты один из первых валидаторов в Story! Присоединяйся к Nodateke, устанавливай ноды вместе с нашей командой! Обнял!