October 24

(ПРИОСТАНОВЛЕНО) Story Protocol. Нода

Story Foundation — это децентрализованная платформа, созданная для поддержки создания и развития цифровых экосистем на основе блокчейна. Она предлагает инструменты и инфраструктуру для запуска и управления токенизированными приложениями и сервисами. Основная задача Story Foundation — упростить доступ к блокчейн-технологиям, помогая разработчикам и пользователям взаимодействовать с децентрализованными приложениями (dApps) и создавать инновационные продукты в Web3.

Story Foundation направлена на содействие развитию открытых экосистем и стимулирование роста децентрализованных приложений через блокчейн.

Инвестировали: $134 000 000

Инвесторы: a16z, Polychain Capital, Samsung Next и другие

Соцсети: Twitter, Discord

Характеристики: 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)
  • Жмем Enter
  • Видим своего валидатора и сколько мы застейкали в него:

Дополнительные команды:

  • Удалить ноду:
source <(curl -s https://itrocket.net/api/testnet/story/story-autoinstall/)

нажать 9 и Enter.

  • Проверка синхронизации:
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

Данная статья была написана для канала KeepItTrading