1️⃣ Ноды
February 6, 2023

Установка ноды Shardeum (Sphinx 1.1.7)

  1. Описание проекта
  2. Подготовительные шаги
  3. Автоматическая установка (скрипт)
  4. Обновление валидатора до 1.1.7
  5. Полезные команды
    1. Настройка портов для доступа к дашборду
  6. Удаление ноды

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

Shardeum - это L1 на базе EVM, использующий динамическое разделение состояний для достижения линейной масштабируемости. Это означает, что Shardeum может увеличивать свою пропускную способность TPS с каждым добавленным в сеть валидатором, чтобы навсегда сохранить низкие комиссии. Во многих блокчейнах с чередованием состояний разработчики сталкиваются с проблемами, поскольку они не сохраняют атомарную совместимость между чередованиями. Однако Shardeum использует новую архитектуру, в которой сохраняется атомарная совместимость. Shardeum обеспечивает самую высокую пропускную способность среди всех блокчейнов на базе EVM L1 без ущерба для децентрализации.

Для разработчиков опыт создания на Shardeum такой же, как и у других EVM-цепочек, вы можете развертывать контракты в Solidity или Vyper, и нет никаких особых соображений относительно шардинга. Вам не нужно задумываться о том, на каком шарде вы развертываете свой контракт, поскольку сеть сохраняет атомарную совместимость со всеми приложениями. Однако разработчики выигрывают от линейного масштабирования на Shardeum, поскольку вам больше не нужно беспокоиться о потере пользователей из-за растущей платы за газ. На Shardeum можно создавать действительно децентрализованные приложения, которые не ограничены узкими местами пропускной способности.


Общий саплай токенов - 508 миллионов $SHM. Из которых 51% направлен на Node mining, а 5% на экосистему / аирдроп. Согласно дорожной карте в 1 квартале 2023 планируются следующие мероприятия:

  1. Запуск майннета
  2. TGE
  3. Publuc sale

Инвестиции: $18.2M в сид-раунде (октябрь 2022), в инвесторах CoinGecko, Spartan, BigBrainHolding, DFG, а также ангел-инвесторы.

Текущая стадия - невознаграждаемый тестнет.

Минимальные требования к серверу:

CPU - 4+ ядра XEON/EPYC;

RAM - 16+ Gb;

SSD - 250 Gb;

Ubuntu 20.04.

Explorer: https://explorer-sphinx.shardeum.org/

Сайт: https://shardeum.org

Дискорд: https://discord.gg/shardeum

Документация: https://docs.shardeum.org

Подготовительные шаги

Как и в случае с нодой Taiko здесь нам необходимо будет создать новый кошелек Metamask и получить на него тестовые токены. Рассказывать про создание кошелька я, конечно же, не буду - поэтому сразу перейдем к получению тестовых токенов $SHM.

Для удобства переходим в документацию - https://docs.shardeum.org/network/endpoints, подключаем сеть Sphinx 1.X и подтверждаем транзакцию:

Далее идем получать токены. Их можно получить несколькими способами:

  1. Через discord - https://discord.com/channels/933959587462254612/1070780355931541514 в формате /faucet METAMASK_ADDRESS
  2. Через официальный кран - https://faucet-sphinx.shardeum.org/
  3. Через сайт ChainDrop - https://chaindrop.org/?chainid=8082&token=0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee

На момент написания гайда работал только 2 вариант (через официальный кран), поэтому на нем и буду показывать.

Кран можно доить вроде как раз в 24 часа, не забываем об этом

В принципе тут все предельно ясно - переходим на кран и здесь по аналогии с Taiko необходимо будет опубликовать Tweet с указанием своего Метамаск-адреса. После чего берем адрес ссылки на свой твит и вставляем в поле, проходим капчу и запрашиваем токены:

По итогу увидим что на кошелек придут 15 токенов SHM.

Спустя пару минут токены на кошельке:

Подготовительный этап завершен, переходим к установке самой ноды.

Автоматическая установка

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

Внимание! Нода по-умолчанию для дашборда использует порт 8080, нам нем у меня крутится SUI, поэтому есть возможность произвольной смены портов.

Изначально определитесь на каком порту будет работать ваша нода. Я выбрал порт 8081, так как он у меня свободный. Для проверки доступности порта (в примере 8081) введите:

netstat -tulpn | grep 8081

Если вывод команды ничего не покажет, значит порт свободен и на него можно поставить ноду.

Также в версии Sphinx 1.1 для корректной работы валидатора должны быть открыты порты 9001 и 10001. На всякий случай проверьте доступность этих портов командой выше.

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

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

После этого запускаем автоматический скрипт для установки самой ноды:

curl -O https://gitlab.com/shardeum/validator/dashboard/-/raw/main/installer.sh && chmod +x installer.sh && ./installer.sh

Во время установки скрипт проверит наличие на сервере Docker и Docker Compose и при отсутствии установит их на сервер.

Далее запустится установочный скрипт непосредственно от команды Shardeum, русифицированный нами для удобства установки. Там в принципе все интуитивно понятно:

  1. Сначала нажимаем y
  2. Do you want to run the web based Dashboard? - y
  3. Set the password to access the Dashboard - устанавливаем пароль для веб-интерфейса
  4. Следующим шагом вводим порт дашборда - здесь указываем кастомизированный порт в интервале 1025-65536. Я задал порт 8081, о чем писал в самом начале.
  5. Следующим шагом вводим порт для p2p - оставляем стандартный нажимаем Enter (или укажите свой)
  6. Следующим шагом вводим второй порт для p2p - оставляем стандартный нажимаем Enter (или укажите свой)
  7. Последний шаг каталог для установки ноды - здесь ничего не меняем, просто жмем Enter.

После чего начнется сборка и установка ноды. Ждем когда завершится шаг с текстом "Starting image. This could take a while...".

Когда завершится этап можно приступать к запуску основного управляющего нодой скрипта:

cd .shardeum && ./shell.sh

Выглядеть это будет примерно так:

Это значит что CLI ноды запущен и теперь можно управлять дашбордом и самой нодой.

Все следующие команды выполняются именно в CLI. Для выхода из режима CLI необходимо будет ввести команду exit (возможно несколько раз).

Первым шагом запускаем наш дашборд, через который будет просматриваться состояние ноды:

operator-cli gui start

И затем проверяем статус:

operator-cli gui status

В ответ мы получим статус своей ноды:

Здесь в параметре link отмечен кастомизированный порт, который мы указывали при установке (если указали другой порт, а в статусе указывается 8080, то черканите в комменты)

Если все так, то открываем хром на своем компе и пытаемся войти в дашборд нашей ноды. Для этого в адресной строке вводим:

https://SERVER_IP:8081

Где SERVER_IP - это IP-адрес вашего сервера. Так как SSL не подключен, то появится такое окно с предупреждением о том что сайт не защищен:

Выбираем Advanced (дополнительно) и подтверждаем что все равно необходимо открыть сайт. Увидим страницу входа с формой ввода пароля:

Здесь необходимо ввести тот пароль который мы указывали ранее при установке. Скорее всего, при его вводе система скажет что пароль введен неверно. Чтобы это пофиксить необходимо вернуться в окно терминала и в CLI ввести команду:

operator-cli gui set password ВАШ_НОВЫЙ_ПАРОЛЬ

После чего уже попробовать его снова ввести в форме ввода пароля. Обычно это срабатывает и мы входим в дашборд нашей ноды, где будет отображаться нечто подобное:

Далее переходим во вкладку Maintenance и нажимаем кнопку Start Node:

Возвращаемся в CLI и запускаем ноду командой:

operator-cli start

Обновляем страничку в Maintenance где должны увидеть что название кнопки изменилось на Stop Node - это значит что нода успешно запущена и работает.

Последним шагом нам необходимо подключить свой кошелек и застейкать тестовые токены в своего валидатора, подключаем кошелек все на той же вкладке:

После подключения нажимаем кнопку Add Stake и вводим количество токенов для стейкинга (минимально 10 SHM) - я застейкал 12 токенов. Подтверждаем транзакцию.

Тут есть баг - может не получиться застейкать токены с 1 раза (и даже со 2-го). Поэтому не останавливайтесь и у вас все получится 😅

Теперь можно каждые 24 часа дергать в кран и делегировать токены в своего валидатора. Я так понял что в проекте используется ротационная схема валидаторства, поэтому спустя какое-то время вам должны начисляться токены SHM.

Увидеть их можно будет на главном экране в Overview (у меня пока по нулям):

Обновление валидатора до 1.1.7

В первую очередь останавливаем своего валидатора и делаем анстейкинг средств.

После чего переходим в cd $HOME и запускаем исполняемый скрипт от команды Shardeum:

curl -O https://gitlab.com/shardeum/validator/dashboard/-/raw/main/installer.sh && chmod +x installer.sh && ./installer.sh

По сути это установка с нуля. Скрипт сам остановит контейнер и обновит все файлы.

По окончанию если меняли порты то не забудьте проверить их по инструкции. У меня по-умолчанию после обновления заработало без танцев с бубном.

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

cd && cd .shardeum
./shell.sh

Запускаем GUI дашборда:

operator-cli gui start

И затем проверяем статус:

operator-cli gui status

Переходим в веб-морду дашборда, идем в Maintenance и запускаем ноду Start Node. Затем стейкаем токены через Add Stake.

На этом обновление считается завершенным. Для проверки версии валидатора запускаем команду:

curl SERVER_IP:9001/nodeinfo

И смотрим параметр shardeumVersion, он должен быть 1.1.6.

Полезные команды

Скорее вам понадобятся полезные команды по работе в CLI.

Включение GUI (graphic user interface):

operator-cli gui start

Выключение GUI:

operator-cli gui stop

Проверка статуса ноды

operator-cli gui status

Настройка портов для доступа к дашборду

Если имеются проблемы с портом (задали кастомизированный, а в статусе ноды стандартный 8080), то это можно решить так. Сначала останавливаем docker-compose:

cd && cd .shardeum && ./docker-down.sh

Затем идем в настройки docker-compose:

cd && nano .shardeum/docker-compose.yml

И редактируем секцию указывая там свои порты (8081:8081 например):

Сохраняем результаты и запускаем docker-compose:

cd && cd .shardeum && ./docker-up.sh

После чего запускаем CLI:

./shell.sh

Включаем GUI:

operator-cli gui start

Принудительно задаем порт для дашборда (выполняется после выключения GUI если вдруг включен - посмотрите статус):

operator-cli gui set port 8081

Затем необходимо снова запустить GUI и проверить статус ноды:

operator-cli gui status

После этих действий вы должны получить кастомизированное значение порта и успешно зайти в веб-интерфейс.

Запуск ноды:

operator-cli start

Показать, запущен валидатор или нет; также порт и URL для подключения к нему:

operator-cli status

Остановка ноды:

operator-cli stop

Выход из режима CLI:

exit

Удаление ноды

Для удаления ноды выполните команду (это одна команда, или просто запустите установщик, там есть команда на удаление ноды) :

cd $HOME/.shardeum && docker-compose down
cd $HOME && rm -rf .shardeum

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


Есть вопросы или не работает нода после установки? Задавайте их в нашем телеграмм-канале Wen Money:[NODES]. Пишем только по делу.