May 10

Установка ноды Aztec (Sequencer Node)

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

  • 8 CPU
  • 16 GB RAM (Можно использовать 6-8 RAM добавив недостающую память через файл подкачки)
  • 100 GB Свободного места
  • Порты: 8080, 40400, 40500
  • Подходящий сервер LC-5 сервер за 1040 ₽ / месяц.
    Я буду использовать тот же сервер LC-5 на который ставил ноду Spheron из прошлого гайда, так как Spheron нода почти не потребляет ресурсы на сервере.

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

Вы можете запустить Aztec ноду на более слабом сервере, например 4 CPU, 8 GB RAM и 80 GB свободного места, но чем дольше нода будет работать, тем больше вероятность, что ресурсов не будет хватать. Поэтому на свой страх и риск, с пониманием, что в дальнейшем возможно придётся переносить ноду на более мощный сервер.

Внимание у хостера PLAY2GO - появился промокод SNGDAO для подписчиков канала. Промокод дает +5% к сумме вашего пополнения🔥

Содержание гайда:

Подготовка

Установка

Решение проблем

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

Подготовка:

1) Для установки Aztec ноды нужно иметь на кошельке тестовый эфир в сети Sepolia ETH. Рекоменду от 2.5- 3 ETH.

Как получить тестовый эфир смотрите в гайде на канале.

2) Подготовить ссылку на RPC Sepolia ETH. Используем либо паблик, например https://1rpc.io/sepolia Но лучше всего использовать свою ссылку на RPC в Alchemy

3) Так же нужна ссылка Beacon_URL либо используем паблик, будет ниже в гайде. Либо создаем свою бесплатно в dRPC. Add Key>Create> и берем ссылку на Ethereum Beacon Chain

Еще варианты для создания своей ссылки RPC
https://www.allnodes.com
http://chainstack.com

4) Так же для установки ноды нужен Docker.
Проверяем установлен ли он на вашем сервере, командой:

docker --version

Если докер установлен, переходим к следующему пункту Установка ноды.
Если Dockera нет, то ставим.
2.1 Установка docker, копируем целиком и запускаем на сервере:

sudo apt update -y && sudo apt upgrade -y
for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt-get remove $pkg; done

sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

echo \
  "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

sudo apt update -y && sudo apt upgrade -y

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# Test Docker
sudo docker run hello-world

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

1) Выполняем проверку и установку обновлений: sudo apt update && sudo apt upgrade -y

2) Настраиваем зависимости:

sudo apt install curl iptables build-essential git wget lz4 jq make gcc nano automake autoconf tmux htop nvme-cli libgbm1 pkg-config libssl-dev libleveldb-dev tar clang bsdmainutils ncdu unzip libleveldb-dev  -y

Если спрашивает о перезагрузке, как обычно, выбираем пункт: none of the above

3) Устанавливаем Aztec Tools

bash -i <(curl -s https://install.aztec.network)

Нажимаем Y

4) Указываем путь:

echo 'export PATH="$HOME/.aztec/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

5) Проверяем версию:

aztec --version

6) Обновляем версию:

aztec-up alpha-testnet

7) Включаем файрволл и открываем порты:

sudo ufw allow ssh
sudo ufw enable

sudo ufw allow 40400
sudo ufw allow 40500
sudo ufw allow 8080

Если пишет, что команда не найдена, то ставим службу файрволла sudo apt install ufw и после этого открываем порты командой выше.

8) Запускаем screen сессию:

screen -S aztec

9) Запускаем ноду изменив данные на свои:

Вместо RPC_URL мы вставляем ссылку на Sepolia RPC. Паблик RPC, например https://1rpc.io/sepolia
Вместо Beacon_URL указываем https://rpc.drpc.org/eth/sepolia/beacon или https://lodestar-sepolia.chainsafe.io

ВАШ_ПРИВАТНИК меняем на приватный ключ кошелька

ВАШ_АДРЕСС на публичный адрес кошелька

ВАШ_IP на IP сервера, где будет стоять нода.

aztec start --node --archiver --sequencer \
  --network alpha-testnet \
  --l1-rpc-urls RPC_URL  \
  --l1-consensus-host-urls BEACON_URL \
  --sequencer.validatorPrivateKey ВАШ_ПРИВАТНИК \
  --sequencer.coinbase ВАШ_АДРЕСС \
  --p2p.p2pIp ВАШ_IP
  --p2p.maxTxPoolSize 1000000000


После того как вы введете эту команду, ваша нода начнет работать. Может понадобится несколько часов для синхронизации ноды(в зависимости от мощности сервера)

Можете свернуть ноду с помощью CTRL+A+D

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

Посмотреть логи:

screen -r -d aztec

Закрыть логи и оставить ноду работать: нажать CTRL+A+D

Остановить ноду: нажать CTRL+C


Как понять, что нода синхронизировалась?

Переходите в Aztecscan

и смотрите номера последних блоков. Те же номера должны быть у вас в логах ноды

Решение проблем:

🟥 Ошибка No blob bodies found

1) Останавливаем ноду с помощью CTRL+C

2) Удаляем базу данных:

rm -rf ~/.aztec/alpha-testnet/data/

3) Обновляем ноду:

aztec-up alpha-testnet

4) Перезапускаем ноду, заменив на свои данные. Важно, чтобы BEACON_URL был не паблик, а созданная для вас уникальная ссылка из любого сервиса из раздела Подготовка.

aztec start --node --archiver --sequencer \
  --network alpha-testnet \
  --l1-rpc-urls RPC_URL  \
  --l1-consensus-host-urls BEACON_URL \
  --sequencer.validatorPrivateKey ВАШ_ПРИВАТНИК \
  --sequencer.coinbase ВАШ_АДРЕСС \
  --p2p.p2pIp ВАШ_IP
  --p2p.maxTxPoolSize 1000000000

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

1) Удаляем файлы:

rm -r /root/.aztec

2) Освобождаем порт 8080:

Проверяем какой процесс использует это порт:

sudo ss -tulpn | grep 8080

Например нам показало LISTEN 0 128 0.0.0.0:0380 0.0.0.0:* users:(("nginx",pid=1234,fd=6))

Выключаем этот процесс:

sudo kill -9 1234

В итоге порт 8080 становиться свободным на сервере.