March 22

LayerEdge — ставим cli ноду



Рекомендуемые минимальные характеристики:

  • Процессор: 4+ ядер
  • ОЗУ: 8 ГБ+
  • Хранилище: 50 ГБ SSD
  • ОС: Ubuntu 20.04 LTS или новее

Чек-лист для развертывания

  • Docker установлен и настроен
  • Версия Go от 1.17 до 1.23
  • Служба провера работает на порту 3001
  • Брандмауэр разрешает порт 3001
  • Ограничения ресурсов Docker настроены
  • Переменные окружения установлены (.env или экспорт в системе)
  • Установлена последняя версия CLI-узла

Начальная настройка

Откройте терминал на вашем VPS и выполните следующие команды для обновления системы и установки базовых инструментов:

sudo apt update && sudo apt upgrade -y
sudo apt install build-essential
sudo apt install git -y
sudo apt install screen -y

Запуск сессии Screen

Чтобы нода продолжала работать даже после закрытия терминала, создайте сессию Screen:

screen -S layeredge

Клонирование репозитория Light Node

Склонируйте репозиторий легкой ноды и перейдите в его директорию:

git clone https://github.com/Layer-Edge/light-node
cd light-node

Установка зависимостей

Установите необходимые инструменты и зависимости:

Установка Go

Используйте указанную версию Go (1.21.6), так как она проверена на совместимость:

wget https://go.dev/dl/go1.21.6.linux-amd64.tar.gz; sudo tar -C /usr/local -xzf go1.21.6.linux-amd64.tar.gz; echo "export GOROOT=/usr/local/go" >> ~/.bashrc; echo "export GOPATH=\$HOME/go" >> ~/.bashrc; echo "export PATH=\$GOPATH/bin:\$GOROOT/bin:\$PATH" >> ~/.bashrc; source ~/.bashrc; go version

Установка Rust

Для установки Rust выполните:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source $HOME/.cargo/env

Установка Risc0 Toolchain

Установите Risc0 Toolchain с помощью следующих команд:

curl -L risczero.com/install | bash
source "/root/.bashrc"
rzup install
source "/root/.bashrc"

Установка Cargo

Установите Cargo:

sudo apt install cargo -y

Настройка файла .env

Для этого шага вам понадобится приватный ключ EVM-кошелька (можно использовать временный кошелек).

Откройте текстовый редактор Nano для создания файла .env:

nano .env

Вставьте следующий код в файл:

GRPC_URL=grpc.testnet.layeredge.io:9090
CONTRACT_ADDR=cosmos1ufs3tlq4umljk0qfe8k5ya0x6hpavn897u2cnf9k0en9jr7qarqqt56709
ZK_PROVER_URL=http://127.0.0.1:3001
API_REQUEST_TIMEOUT=100
POINTS_API=light-node.layeredge.io
PRIVATE_KEY=ваш приватный ключ EVM-кошелька здесь (можно использовать кошелек, подключенный к сайту LayerEdge)

PRIVATE_KEY=ваш приватный ключ EVM-кошелька здесь — вставляем без кавычек и начальных 0х

# Альтернативно:
ZK_PROVER_URL=layeredge.mintair.xyz

API_REQUEST_TIMEOUT=100 — я сразу здесь ставлю 100000, так как у меня сыпались ошибки при апрувах, а с таким показателем таймаута все наладилось

Запуск Merkle Service

Перейдите в директорию Risc0 Merkle Service и соберите его:

cd risc0-merkle-service
cargo build && cargo run

Когда вы увидите сообщение "Starting server on port 3001...", отсоединитесь от сессии Screen, нажав CTRL + A, затем D.

Сборка Light Node

Создайте новую сессию Screen:

screen -S light-node

Перейдите в директорию Light Node:

cd light-node

Соберите ноду с помощью команды:

go build

Запуск Light Node

Запустите ноду командой:

./light-node

На экране появится публичный ключ. Скопируйте и сохраните его, так как он понадобится для подключения ноды к dashboard. Если в логах отображается "Worker 1 is running", нода успешно запущена.

Подключение вашей ноды

Получение очков через CLI

Используйте следующий запрос:

https://light-node.layeredge.io/api/cli-node/points/{адрес_вашего_кошелька}

Замените {адрес_вашего_кошелька} на реальный адрес вашего CLI-кошелька.

Подключение к dashboard LayerEdge:

  1. Перейдите на сайт dashboard.layeredge.io.
  2. Подключите ваш кошелек.
  3. Найдите раздел "CLI Node Points" на dashboard.
  4. Нажмите кнопку "+".
  5. Вставьте публичный ключ, полученный при запуске ноды.

Готово!

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

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

Ниже приведены частые проблемы и способы их устранения на основе документации LayerEdge (https://docs.layeredge.io/introduction/developer-guide/run-a-node/faq-and-troubleshooting-guide):

Ошибка: "Missing Dependencies" (Отсутствуют зависимости)

    • Причина: Не установлены необходимые инструменты (Go, Rust, Cargo и т.д.).
    • Решение: Убедитесь, что вы выполнили все шаги установки из раздела 4. Проверьте версии:
go version # Должно быть 1.21.6 rustc --version cargo --version

Ошибка: "Failed to Connect to GRPC_URL" (Не удалось подключиться к GRPC_URL)

  • Причина: Неправильный адрес GRPC или проблемы с сетью.
  • Решение: Проверьте правильность GRPC_URL в файле .env (должно быть grpc.testnet.layeredge.io:9090). Убедитесь, что порт 9090 открыт на вашем сервере:
sudo ufw allow 9090

Ошибка: "ZK Prover Not Responding" (ZK Prover не отвечает)

  • Причина: Сервис Merkle не запущен или работает некорректно.
  • Решение: Убедитесь, что вы запустили cargo run в директории risc0-merkle-service и видите сообщение "Starting server on port 3001...". Если нет, перезапустите процесс.

Ошибка: "Invalid Private Key" (Недействительный приватный ключ)

  • Причина: Неверный формат или ошибка в ключе в файле .env.
  • Решение: Проверьте, что ключ начинается с 0x и соответствует формату EVM. Используйте кошелек, созданный через Metamask или другой совместимый инструмент.

Ошибка: "Build Failed" (Сборка не удалась)

  • Причина: Проблемы с версией Go или Rust.
  • Решение: Убедитесь, что используется Go 1.21.6:
go version

Если версия отличается, удалите старую версию и установите заново:

sudo rm -rf /usr/local/go

Ошибка: "Worker 1 is not running" (Worker 1 не запущен)

    • Причина: Проблема с конфигурацией или зависимостями.
    • Решение: Проверьте логи ноды после запуска ./light-node. Убедитесь, что все шаги выполнены, и перезапустите процесс.

Если проблема сохраняется, обратитесь к официальной документации или сообществу LayerEdge за дополнительной поддержкой.

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

Вернуться в сессию Merkle Service:

screen -r layeredge

Вернуться в сессию Light Node:

screen -r light-node

Вывести запущенные сессии screen

screen -ls

Удалить лишние сессии screen

kill ID_screen


Гайд от канала lvch_clan

Все вопросы можно задать в ЧАТЕ КАНАЛА