(ПРИОСТАНОВЛЕНО) Story Protocol. Нода
Story Foundation — это децентрализованная платформа, созданная для поддержки создания и развития цифровых экосистем на основе блокчейна. Она предлагает инструменты и инфраструктуру для запуска и управления токенизированными приложениями и сервисами. Основная задача Story Foundation — упростить доступ к блокчейн-технологиям, помогая разработчикам и пользователям взаимодействовать с децентрализованными приложениями (dApps) и создавать инновационные продукты в Web3.
Story Foundation направлена на содействие развитию открытых экосистем и стимулирование роста децентрализованных приложений через блокчейн.
Инвесторы: a16z, Polychain Capital, Samsung Next и другие
Характеристики: 4CPU/8RAM/200SSD — минимальные
Арендовать сервер: Hetzner, Contabo
Операционная сеть: Ubuntu 22.04
Есть 2 пути: просто установить ноду и быть в числе не активных валидаторов или же потратить 300$ и попасть в топ 100 и стать активным валидатором для этого надо иметь свыше 50к токенов. Без покупки их на ОТС или если вы не знаете как взломать кран - не реально. Цена одного тестового токена 0.005$. Но зная сколько инвеста получил проект рекомендую найти время на эту ноду и поставить ее тоже, надеясь, что проект заметит наши старания в виде данной активности. Также рекомендую устанавливать данную ноду именно на Hetzner.
Подготовка к установке:
- Скачиваем и устанавливаем Termius
Для Windows - тут
Для macOS - тут
- Арендуем север (рекомендую всем начинать свой путь с Hetzner - на нем лучшее соотношение цены и качества, а также зарегистрируясь по рефке вы получите 20€ на свой аккаунт, которые сможете использовать для оплаты серверов. Гайд по аренде сервера на Hetzner.
- Открываем Termius и жмём New Host
- Откроется панель для ввода данных, где нам понадобится ввести IP который предоставит нам провайдер после аренды сервера в строке "IP or Hostname"; Любое название, которое вам нравится в "Label"; в строке "Username" вводим root, в строке "Password" вводим выданный пароль:
Приступим к установке:
1. Не вижу смысла расписывать покомандный гайд, если умные люди уже написали однострочный, где мы с одной команды можем установить всю ноду:
source <(curl -s https://itrocket.net/api/testnet/story/story-autoinstall/)
- Пишем 1 и жмем Enter
- Потом предложат выбрать откуда скачивать снепшот. Нас интересует Pruned. Выбираем тот, где быстрее. Это будут цифры 1 или 3, вводим их и жмём Enter.
- После загрузки снепшота у нас появятся такие логи, которые будут показывать насколько мы отстаем от актуальных блоков. Ждем пока Blocks Left будет равен 0.
- Получаем следующее (на скрине) - вводим 10 и жмем Enter. Поздравляю, ваша нода установлена, но это не все.
2. Делаем export валидаторского аккаунта — сохраняем данные
story validator export
story validator export --export-evm-key sudo cat /root/.story/story/config/private_key.txt
- Запрашиваем c крана на этот аккаунт тестовые токены $IP. Предупреждаю: при использовании крана нам надо иметь определенный Humanity Score на Gitcoin Passport, а т.к. кошелек у вас будет новый - его будет сложнее добиться. Поэтом запрашиваем на любой кошелек, где у вас есть достаточный Humanity Score и отправляем на нам необходимый. В данном случае на тот, что мы получили тут:
Для валидатора, нам понадобиться более 1 $IP (1 токена для создание валидатора + отдельно на комиссию), то есть, вам нужно будет 2 раза запросить токены с крана или отправить с другого аккаунта немного $IP на ваш валидатор
cd story validator create --stake 1000000000000000000 --private-key $(cat $HOME/.story/story/config/private_key.txt | grep "PRIVATE_KEY" | awk -F'=' '{print $2}') --chain-id 1513
sudo cat /root/.story/story/config/priv_validator_key.json
- Открываем Explorer и ищем адрес, который только что вытащили (42FA69D77FB206D7A9B8E489B1DC9EC02030E7D1)
Дополнительные команды:
source <(curl -s https://itrocket.net/api/testnet/story/story-autoinstall/)
curl localhost:$(sed -n '/\[rpc\]/,/laddr/ { /laddr/ {s/.*://; s/".*//; p} }' $HOME/.story/story/config/config.toml)/status | jq
#!/bin/bash rpc_port=$(grep -m 1 -oP '^laddr = "\K[^"]+' "$HOME/.story/story/config/config.toml" | cut -d ':' -f 3) while true; do local_height=$(curl -s localhost:$rpc_port/status | jq -r '.result.sync_info.latest_block_height') network_height=$(curl -s https://story-testnet-rpc.itrocket.net/status | jq -r '.result.sync_info.latest_block_height') if ! [[ "$local_height" =~ ^[0-9]+$ ]] || ! [[ "$network_height" =~ ^[0-9]+$ ]]; then echo -e "\033[1;31mError: Invalid block height data. Retrying...\033[0m" sleep 5 continue fi blocks_left=$((network_height - local_height)) if [ "$blocks_left" -lt 0 ]; then blocks_left=0 fi echo -e "\033[1;33mYour Node Height:\033[1;34m $local_height\033[0m \033[1;33m| Network Height:\033[1;36m $network_height\033[0m \033[1;33m| Blocks Left:\033[1;31m $blocks_left\033[0m" sleep 5 done
sudo journalctl -u story-geth -u story -f
cp $HOME/.story/story/data/priv_validator_state.json $HOME/.story/story/priv_validator_state.json.backup
mv $HOME/.story/story/priv_validator_state.json.backup $HOME/.story/story/data/priv_validator_state.json