1️⃣ Ноды
May 30, 2022

Установка ноды Starknet (0.9.3)

  1. Описание проекта
  2. Регистрация и получение API-ключа
  3. Автоматическая установка / обновление (скрипт)
  4. Проверка версии ноды
  5. Проверка работы ноды
  6. Обновление до версии 0.9+
  7. Возможные ошибки и пути их решения

Описание проекта

StarkNet - это децентрализованный Validity-Rollup (также известный как "ZK-Rollup") без разрешений. Он работает как сеть L2 над Ethereum, позволяя любому dApp достичь неограниченного масштаба для своих вычислений - без ущерба для композитности и безопасности Ethereum, благодаря тому, что StarkNet опирается на самую безопасную и масштабируемую систему криптографического доказательства - STARK.

Контракты StarkNet и ОС StarkNet написаны на языке Cairo, что обеспечивает развертывание и масштабирование любого сценария использования, независимо от бизнес-логики.

В фондах такие гиганты как Paradigm, Sequoia, Three Arrows Capital, Polychain, Alameda Resaerch, Coinbase Ventures, Intel и создатель ETH Виталик Бутерин собственной персоной. Проект получил порядка $200М инвестиций для поддержки Web3 разработки в серии C-1.

Обладают уже довольно-таки развитой экосистемой.

Starknet - это игра в долгую, будьте к этому готовы.

Вознаграждения: не анонсированы

Требования к серверу:

  • CPU - 2+ ядра;
  • RAM - 2+ Gb;
  • SSD - 120+ Gb;
  • Ubuntu 20.04.

Регистрация и получение API-ключа

Перед там как запускать ноду нам потребуется ввести свой ключ доступа, сейчас мы будем его получать. Переходим на сайтhttps://dashboard.alchemyapi.io/ и тут есть несколько вариантов: зарегистрироваться через ввод почты и пароля либо через свой Google-аккаунт:

Как показала практика (в том числе и абуза) лучше использовать регистрацию через аккаунт Gmail.

После входа выбираете по-умолчанию Ethereum 2.0:

Далее вводите название своего 2 названия (без разницы каких) и переключаете с Mainnet сети на Goerli:

Далее выбираете Continue, затем Skip for now, далее Continue и на последнем шаге Let's go.

Загрузится дашборд, где возле своего приложения нажимаете на VIEW KEY.

Первой строчкой будет API-KEY, который сохраняете себе в блокнот. Отсюда можно не выходить, в конце будем проверять корректность работы ноды.

Автоматическая установка / обновление (скрипт)

Подключаемся к серверу через Putty или MobaXterm, после чего приступаем к установке.

Актуальная версия ноды - 0.5.2

Так как файлы ноды компилируются долго (порядка 15-60 минут в зависимости от мощности сервера), то чтобы в Putty не обрывалось соединение необходимо устанавливать через пакетscreen.

Для установки screen (если он отсутствует на сервере):

apt install screen -y

После установки запускаем окружение:

screen -S starknet

И уже в нем запускаем автоматический скрипт для установки / обновления Starknet:

wget -q -O starknet.sh https://nodes.wenmoney.io/starknet.sh && chmod +x starknet.sh && ./starknet.sh

Для сворачивания сессии screen (не уничтожения сессии, а именно выхода с сохранением работы в фоне) нажимаем CTRL+A, затем клавишу D.

В скрипт добавили возможность автоматического обновления. Просто запускаете его и выбираете нужное действие (установка с 0 или обновление ноды).

Чтобы вновь подключиться к работающей сессии и проверить процесс установки ноды используется команда:

screen -r

После установки и проверки работы ноды сессию screen можно уничтожить следующей командой (вводим это в сессии):

exit

Работа ноды не нарушится, так как она работает через сервис.

На последнем этапе установки скрипт попросит вас ввести свой API-ключ, полученный в предыдущем пункте:

Вставляем его и нажимаем Enter. По итогу должны будем увидеть информационное сообщение что нода установлена корректно:

Проверка версии ноды

Если вы устанавливали ноду по нашему скрипту, то для проверки установленой версии достаточно ввести команду:

pathfinder -V

которая отобразит установленную на сервере версию ноды Starknet.

Проверка работы ноды

Далее идете в личный кабинет где создавали API-ключ и смотрите показатели, они должны увеличиваться:

Для достоверности что точно все ок смотрите логи командой:

journalctl -u starknetd -f -o cat

Результат вывода должен быть таким:

На этом все, как видите - ноды это просто 👀 😅

Обновление до версии 0.9+

Версия 0.9+ включает обновленный Merkle tree storage, поэтому предыдущие версии БД не будут корректно работать с новой версией pathfinder.

В этом случае будет использоваться снапшот и обновление БД.

Внимание! У вас должно быть по меньшей мере свободно 200 Гб для совершения следующих операций, так как необходимо будет скачивать снапшот и распаковывать его

Алгоритм действий: устанавливаем rclone, настраиваем файл конфигурации, скачиваем снапшот, распаковываем его и заменяем файл БД.

sudo apt install rclone -y
rclone config # после запуска выйдите из конфига нажав q -> Enter
nano $HOME/.config/rclone/rclone.conf

Вставляем в конфигурационный файл и сохраняем:

[pathfinder-snapshots]
type = s3
provider = Cloudflare
env_auth = false
access_key_id = 7635ce5752c94f802d97a28186e0c96d
secret_access_key = 529f8db483aae4df4e2a781b9db0c8a3a7c75c82ff70787ba2620310791c7821
endpoint = https://cbf011119e7864a873158d83f3304e27.r2.cloudflarestorage.com
acl = private

Затем скачиваем снапшот (testnet), рекомендую это делать через screen чтобы не прерывалось соединение. На скачивание уходит в среднем 30-40 минут (90+ Gb).

rclone copy -P pathfinder-snapshots:pathfinder-snapshots/testnet_0.9.0_880310.sqlite.zst /root

Далее устанавливаем zstd и распаковываем снапшот (понадобится около 120-140 Gb):

sudo apt install zstd -y && zstd -T0 -d testnet_0.9.0_880310.sqlite.zst -o goerli.sqlite

По завершению перемещаем файл БД в целевое место и устанавливаем обновление через скрипт:

mv goerli.sqlite pathfinder/py/ && wget -q -O starknet.sh https://nodes.wenmoney.io/starknet.sh && chmod +x starknet.sh && ./starknet.sh

Далее чекайте логи, если все ок то снапшот можно удалить для очистки места:

rm $HOME/testnet_0.9.0_880310.sqlite.zst

Возможные ошибки и пути их решения

Вообще не заметили чтобы нода была проблемная, сколько установили экземпляров все было как по маслу.

Но на днях заметили одну ошибку, появляется при попытке обновиться. Выглядит примерно так:

Если внимательно посмотреть лог, а именно первую его часть, то причина довольно банальная - нехватка свободного места на сервере. Это можно проверить командой:

df -h

И видим что свободного места вообще нет:

Поэтому обязательно следите за наличием места на SSD, нода в последнее время стала довольно-таки требовательной именно к объему памяти.

Не забывайте ставить свои 👍


Есть вопросы или не работает нода после установки? Задавайте их в нашем телеграм-канале Wen Money. Там найдете еще много полезной информации про амбы, ноды и выбивание ролей для топовых проектов.