Крипто
May 26

Aztec Testnet | Нода

t.me/olxs_research
t.me/olxs_research
t.me/olxs_research


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

Хостинг я выбрал VDSina, давно пользуюсь - https://www.vdsina.com/?partner=8evi8an5i1

Характеристики сервера:

RAM 8-16 GB
CPU 4-9 cores
Disk 100+ GB SSD OS: Ubuntu 20.04/22.04 (я делаю на 20)

Я выбрал такой:

Standart server / Pure OS Ubuntu 20.04 / Max Tariff

Обслуживание выйдет около 19-20 долларов в месяц, можете попробовать тариф за 0.33$/day, но не уверен что всё встанет как положено

Создаём сервер. Пока создаётся перейдём ко второму пункту

Putty

Для удобной работы с сервером устанавливаем приложение Putty - https://putty.org.ru/download

Возвращаемся на сайт vdsina - https://cp.vdsina.com/vds/list

В списке серверов видим наш, копируем айпи сервера и вставляем в Putty

Нажимаем Open, дальше Accept (если появится окно)

Дальше выбираем в панели VDSina наш созданный сервер, заходим в пункт Access и копируем пароль

возвращаемся в Putty, в пункте login пишем root и нажимаем enter

дальше просит пароль. Если пароль скопирован - нажимаем ПКМ по консоли и enter (пароль в консоли не отобразится никак).

Если всё ок вы увидите такое:

Работа с Putty / Установка ноды

Дальше просто копируем, вставляем и нажимаем enter по очереди для каждой строки

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

Установка пакетов:

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

Установка докера:

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

!!! 4 ряда снизу копируем как одно целое !!!

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 -y

sudo docker run hello-world

sudo systemctl enable docker
sudo systemctl restart docker

Если после команды sudo docker run hello-world вы увидили это, значит всё ок:

Установка Aztec: когда попросит на первой команде пишем букву y и жмём enter

bash -i <(curl -s https://install.aztec.network)
echo 'export PATH="$HOME/.aztec/bin:$PATH"' >> ~/.bashrc

source ~/.bashrc

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

aztec

После проверки должны увидеть это:

aztec-up alpha-testnet

Настраиваем свои RPC

Заходим и регистрируемся на сайте https://www.ankr.com/rpc/?utm_referral=Dfj8Petg4Z

Нажимаем сюда

Пополняем баланс на 5-10 баксов (баланс периодически нужно будет доливать, сейчас ищу самые дешёвые варианты и обновлю гайд)

переходим сюда https://www.ankr.com/rpc/projects/ и создаём проект с любым названием. В сетях выбираем только Ethereum

Копируем первую ссылку, после чего нажимаем Beacon и копируем вторую ссылку

После этого нам нужно создать обычный EVM кошелёк (метамаск, рабби.. любой) и сохранить privatekey + address кошелька

Дальше нам нужно взять в кране эфир в сети Sepolia. Обычно все краны просят эфир в мейннете, так как кошелёк новый я бриджу 1 бакс через gas.zip сразу в sepolia

Заходим на сайт https://www.gas.zip
Справа (цифра 1 на скрине) выбираем сеть из которой будем бриджить
Цифра 2 - выбираем Ethereum Sepolia
3 - указываем суму 1 доллар
4 - пишем адрес нового кошелька
5 - отправляем транзакцию

Так же сохраняем айпи нашего сервера (в панеле VDSina)

Завершаем установку

дальше так же печатаем по одной команде в консоль как и раньше

ufw allow 22
ufw allow ssh
ufw enable

ufw allow 40400
ufw allow 8080
docker stop $(docker ps -q --filter "ancestor=aztecprotocol/aztec") && docker rm $(docker ps -a -q --filter "ancestor=aztecprotocol/aztec")

screen -ls | grep -i aztec | awk '{print $1}' | xargs -I {} screen -X -S {} quit
  • Создаём папку aztec
mkdir aztec
cd aztec
nano .env

У нас открывается окно, туда вставляем текст ниже. Вместо значений после '=' вставляем данные которые сохраняли ранее (БЕЗ ПРОБЕЛОВ).
RPC_URL - Ethereum Sepolia RPC которое мы копировали первым (не BEACON CHAIN)
BEACON_URL - Ethereum Beacon Chain которое было вторым на скрине
VALIDATOR_PRIVATE_KEY - приватный ключ нового кошелька
COINBASE - адрес нового кошелька
P2P_IP - айпи сервера с VDSina

ETHEREUM_RPC_URL=RPC_URL
CONSENSUS_BEACON_URL=BEACON_URL
VALIDATOR_PRIVATE_KEY=0xYourPrivateKey
COINBASE=0xYourAddress
P2P_IP=P2P_IP

После чего нажимаем CTRL-X, дальше пишем Y и нажимаем Enter

Создаём ещё один файл

nano docker-compose.yml

Вставляем этот текст в файл

services:
  aztec-node:
    container_name: aztec-sequencer
    image: aztecprotocol/aztec:alpha-testnet
    restart: unless-stopped
    environment:
      ETHEREUM_HOSTS: ${ETHEREUM_RPC_URL}
      L1_CONSENSUS_HOST_URLS: ${CONSENSUS_BEACON_URL}
      DATA_DIRECTORY: /data
      VALIDATOR_PRIVATE_KEY: ${VALIDATOR_PRIVATE_KEY}
      COINBASE: ${COINBASE}
      P2P_IP: ${P2P_IP}
      LOG_LEVEL: debug
    entrypoint: >
      sh -c 'node --no-warnings /usr/src/yarn-project/aztec/dest/bin/index.js start --network alpha-testnet --node --archiver --sequencer'
    ports:
      - 40400:40400/tcp
      - 40400:40400/udp
      - 8080:8080
    volumes:
      - /root/.aztec/:/data

После чего нажимаем CTRL-X, дальше пишем Y и нажимаем Enter

docker compose up -d

Cмотрим логи, должен быть бесконечный обновляемый поток сообщений со ссылками на нашу РПС

docker compose logs -fn 1000

Чтобы остановить жмём ctrl-c

Проверяем последний синхронизированный блок:

curl -s -X POST -H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"node_getL2Tips","params":[],"id":67}' \
http://localhost:8080 | jq -r ".result.proven.number"

Дальше заходим в их дискорд https://discord.com/invite/aztec
Проходим капчу и заходим в канал operators | start-here - https://discord.com/channels/1144692727120937080/1367196595866828982

В чате пишем /operator chain-info и получаем такую картину:

Если последний синхронизированный блок из консоли совпадает с Proven block - всё окей

Дальше вводим в консоль эту команду

sudo docker logs $(docker ps -q --filter ancestor=aztecprotocol/aztec:alpha-testnet | head -n 1) 2>&1 | grep -i "peerId" | grep -o '"peerId":"[^"]*"' | cut -d'"' -f4 | head -n 1

после чего в консоли покажет айди нашей ноды

Сохраняем его, т.к в дальнейшем мы сможем мониторить статус ноды по этому айди на сайте - https://aztec.nethermind.io

сюда вписываем айди который получили в консоли. Чтобы инфа подтянулась нужно подождать несколько часов

Получаем роли в ДС

Мы уже вошли в дискорд. Переходим в канал operators | start-here - https://discord.com/channels/1144692727120937080/1367196595866828982

Вводим ещё раз эту команду

curl -s -X POST -H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"node_getL2Tips","params":[],"id":67}' \
http://localhost:8080 | jq -r ".result.proven.number"

Запоминаем число

Вводим эту команду, но вместо BLOCK_NUMBER пишем число, которое было выше

curl -s -X POST -H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"node_getArchiveSiblingPath","params":["BLOCK_NUMBER","BLOCK_NUMBER"],"id":67}' \
http://localhost:8080 | jq -r ".result"

Получаем большой текст, копируем его
Переходим в дискорд и пишем команду /operator start подставляя туда наши значения (address - адрес кошелька который указывали в конфиге ноды, block-number - номер блока который получали в консоли, proof - большой текст из последней команды)

отправляем и получаем сообщение в чате от бота и роль

так же переходим в канал uninitiated - https://discord.com/channels/1144692727120937080/1367348435459772467 , листаем в самый верх и нажимаем лайк на первом сообщении, получаем ещё одну роль

Регистрируем валидатора

aztec add-l1-validator \
  --l1-rpc-urls RPC_URL \
  --private-key private-key \
  --attester your-wallet-address \
  --proposer-eoa your-wallet-address \
  --staking-asset-handler 0xF739D03e98e23A7B65940848aBA8921fF3bAc4b2 \
  --l1-chain-id 11155111

Меняем на наши данные (RPC, private-key, your-wallet-address)

Сейчас можно регистрировать всего 5 валидаторов в день, поэтому после выполнения этой команды вы скорее всего получите эту ошибку:

ERROR: cli Failed to send L1 transaction: 'ValidatorQuotaFilledUntil(1748296152)'

цифры в скобках - это время

date -d @1748296152 - подставляем вместо этих цифр ваши цифры из скобок - получаем время и дату когда таймер обновится и мы сможем выполнить эту команду чтобы попытаться стать валидатором

Буду благодарен за подписку на телеграм - t.me/olxs_research