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)
Обслуживание выйдет около 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 {} quitmkdir 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
Проверяем последний синхронизированный блок:
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 - подставляем вместо этих цифр ваши цифры из скобок - получаем время и дату когда таймер обновится и мы сможем выполнить эту команду чтобы попытаться стать валидатором