Установка ноды Shardeum (Sphinx 1.1.7)
- Описание проекта
- Подготовительные шаги
- Автоматическая установка (скрипт)
- Обновление валидатора до 1.1.7
- Полезные команды
- Удаление ноды
Описание проекта
Shardeum - это L1 на базе EVM, использующий динамическое разделение состояний для достижения линейной масштабируемости. Это означает, что Shardeum может увеличивать свою пропускную способность TPS с каждым добавленным в сеть валидатором, чтобы навсегда сохранить низкие комиссии. Во многих блокчейнах с чередованием состояний разработчики сталкиваются с проблемами, поскольку они не сохраняют атомарную совместимость между чередованиями. Однако Shardeum использует новую архитектуру, в которой сохраняется атомарная совместимость. Shardeum обеспечивает самую высокую пропускную способность среди всех блокчейнов на базе EVM L1 без ущерба для децентрализации.
Для разработчиков опыт создания на Shardeum такой же, как и у других EVM-цепочек, вы можете развертывать контракты в Solidity или Vyper, и нет никаких особых соображений относительно шардинга. Вам не нужно задумываться о том, на каком шарде вы развертываете свой контракт, поскольку сеть сохраняет атомарную совместимость со всеми приложениями. Однако разработчики выигрывают от линейного масштабирования на Shardeum, поскольку вам больше не нужно беспокоиться о потере пользователей из-за растущей платы за газ. На Shardeum можно создавать действительно децентрализованные приложения, которые не ограничены узкими местами пропускной способности.
Общий саплай токенов - 508 миллионов $SHM. Из которых 51% направлен на Node mining, а 5% на экосистему / аирдроп. Согласно дорожной карте в 1 квартале 2023 планируются следующие мероприятия:
Инвестиции: $18.2M в сид-раунде (октябрь 2022), в инвесторах CoinGecko, Spartan, BigBrainHolding, DFG, а также ангел-инвесторы.
Текущая стадия - невознаграждаемый тестнет.
Минимальные требования к серверу:
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 и подтверждаем транзакцию:
Далее идем получать токены. Их можно получить несколькими способами:
- Через discord - https://discord.com/channels/933959587462254612/1070780355931541514 в формате
/faucet METAMASK_ADDRESS
- Через официальный кран - https://faucet-sphinx.shardeum.org/
- Через сайт 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, русифицированный нами для удобства установки. Там в принципе все интуитивно понятно:
- Сначала нажимаем y
- Do you want to run the web based Dashboard? - y
- Set the password to access the Dashboard - устанавливаем пароль для веб-интерфейса
- Следующим шагом вводим порт дашборда - здесь указываем кастомизированный порт в интервале 1025-65536. Я задал порт 8081, о чем писал в самом начале.
- Следующим шагом вводим порт для p2p - оставляем стандартный нажимаем Enter (или укажите свой)
- Следующим шагом вводим второй порт для p2p - оставляем стандартный нажимаем Enter (или укажите свой)
- Последний шаг каталог для установки ноды - здесь ничего не меняем, просто жмем 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, то черканите в комменты)
Если все так, то открываем хром на своем компе и пытаемся войти в дашборд нашей ноды. Для этого в адресной строке вводим:
Где 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
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
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
./shell.sh
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
exit
Удаление ноды
Для удаления ноды выполните команду (это одна команда, или просто запустите установщик, там есть команда на удаление ноды) :
cd $HOME/.shardeum && docker-compose down cd $HOME && rm -rf .shardeum