🟢 Активные ноды / Active nodes
October 17

Unichain

Unichain - это новый Layer2 от всеми известного DEX - Uniswap. Недавно они запустили тестовую сеть, в которым уже каждый из вас сделал ончейн активности. В данный момент имеется возможность поднять light-node.

  • Инвестиции: 188 000 000 $
  • Инвестора: Paradigm, a16z, Polychain, Coinbase и другие.
  • Соцсети: Twitter, Discord
  • Характеристики: 2CPU/4RAM/20SSD
  • Арендовать сервер: Hetzner, Contabo
  • Операционная сеть: Ubuntu 22.04

Особую мотивацию держать ноду команда не даёт, но так происходит почти всегда. Поэтому сжимаем зубы и подселиваем на свои серваки.


Подготовка к установке:

  • Скачиваем и устанавливаем Termius
Для Windows - тут
Для macOS - тут
  • Арендуем север (рекомендую всем начинать свой путь с Hetzner - на нем лучшее соотношение цены и качества, а также зарегистрируясь по рефке вы получите 20€ на свой аккаунт, которые сможете использовать для оплаты серверов. Гайд по аренде сервера на Hetzner.
  • Открываем Termius и жмём New Host
  • Откроется панель для ввода данных, где нам понадобится ввести IP который предоставит нам провайдер после аренды сервера в строке "IP or Hostname"; Любое название, которое вам нравится в "Label"; в строке "Username" вводим root, в строке "Password" вводим выданный пароль:
  • После этого жмем стрелку справа вверху:
  • И наконец-то подключаемся к серверу:

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

1. Обновление системы и установка необходимых инструментов разработки

sudo apt-get update -y && sudo apt upgrade -y && sudo apt-get install make build-essential unzip lz4 gcc git jq -y
  • Обновление системы: apt-get update обновляет список пакетов, доступных для установки, а apt upgrade обновляет уже установленные пакеты до последних версий.
  • Установка инструментов: Устанавливаются инструменты разработки, такие как:
    • make — утилита для сборки проектов.
    • build-essential — комплект инструментов для компиляции.
    • unzip — для распаковки файлов.
    • lz4 — утилита для сжатия данных.
    • gcc — компилятор C.
    • git — система контроля версий.
    • jq — утилита для работы с JSON.

2. Установка сертификатов и дополнительных утилит

sudo apt install -y ca-certificates curl gnupg lsb-release
  • ca-certificates: Устанавливает корневые сертификаты, чтобы обеспечить безопасное соединение при скачивании файлов.
  • curl: Утилита для передачи данных с использованием различных протоколов, необходима для загрузки внешних ресурсов.
  • gnupg: Инструмент для работы с криптографическими ключами.
  • lsb-release: Пакет для получения информации о версии дистрибутива Linux.

3. Добавление ключа GPG для Docker

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
  • Скачивание и добавление ключа: Загружается и добавляется ключ GPG для подтверждения подлинности пакетов Docker.

4. Добавление репозитория Docker

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  • Добавление Docker репозитория: Команда добавляет официальный репозиторий Docker для Ubuntu, что позволит устанавливать Docker напрямую с сервера разработчиков.

5. Установка Docker

sudo apt update && sudo apt install -y docker-ce docker-ce-cli containerd.io
  • Обновление списка пакетов: sudo apt update обновляет список пакетов, чтобы включить новый репозиторий Docker.
  • Установка Docker: Устанавливаются:
    • docker-ce — Docker Engine (основная часть Docker).
    • docker-ce-cli — командная строка для работы с Docker.
    • containerd.io — подсистема, которая управляет контейнерами.

6. Добавление текущего пользователя в группу Docker

sudo usermod -aG docker $USER
  • Разрешение работы с Docker без root: Добавляет пользователя в группу docker, чтобы запускать команды Docker без использования sudo.

7. Применение изменений группы

newgrp docker
  • Применение изменений: Команда обновляет группы пользователя в текущем сеансе, чтобы изменения вступили в силу сразу.

8. Установка Docker Compose

sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
  • Скачивание Docker Compose: Скачивается исполняемый файл Docker Compose, который используется для управления многоконтейнерными приложениями.

9. Придание прав на выполнение Docker Compose

sudo chmod +x /usr/local/bin/docker-compose
  • Разрешение на выполнение: Команда делает файл docker-compose исполняемым.

10. Клонирование репозитория Uniswap Node

git clone https://github.com/Uniswap/unichain-node.git
  • Скачивание исходников ноды: Клонируется репозиторий проекта unichain-node, который содержит все необходимые файлы для развертывания ноды.

11. Переход в директорию проекта

cd unichain-node
  • Переход в рабочую директорию: После клонирования репозитория, команда перемещает вас в папку с проектом.

12. Редактирование файла конфигурации

nano .env.sepolia
  • Редактирование конфигурации: Открывается файл .env.sepolia для настройки переменных окружения. Здесь можно указать важные параметры для работы ноды, например, подключение к сети.

12. Редактирование файла конфигурации

  • теперь идем сюда
  • берем RPC (1 - rpc, 2 - beacon API) вставляем в файл, в строки, как на скрине:
Как должны выглядеть первые строки после команды nano .env.sepolia
  • Нажимаем Ctrl X
  • Нажимаем Y
  • Нажимаем Enter

13. Запуск Docker контейнеров в фоновом режиме

docker compose up -d
  • Запуск контейнеров: Эта команда запускает все сервисы, описанные в файле docker-compose.yml, в фоновом режиме. Флаг -d (detached) позволяет контейнерам работать в фоне, не занимая вашу консоль.В этом случае будут запущены два основных сервиса:
    • execution-client: Клиент, который выполняет вычисления и управляет блокчейном на уровне выполнения.
    • op-node: Узел для связи и координации между различными частями блокчейн-экосистемы.

Что происходит при запуске:

  • Сервисы связываются через общие объемы (volumes): Эти тома используются для хранения данных контейнеров, которые сохраняются даже при перезапуске.
  • Порты открыты: Порты (например, 8545) используются для взаимодействия с различными компонентами блокчейн-сети и внешними системами.

14. Проверяем логи

docker logs unichain-node-op-node-1 -f
Так должны выглядеть
docker logs unichain-node-execution-client-1 -f
Так должны выглядеть

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

  • Проверка логов:
docker logs unichain-node-op-node-1 -f
  • Проверка логов:
docker logs unichain-node-execution-client-1 -f
  • Перезапуск ноды:
docker restart unichain-node-op-node-1 && docker restart unichain-node-execution-client-1
  • Удаление ноды:
sudo docker stop unichain-node-op-node-1 && sudo docker stop unichain-node-execution-client-1
sudo docker rm unichain-node-op-node-1 && sudo docker rm unichain-node-execution-client-1
rm -rf ~/unichain-node

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