May 10

Aztec. Устанавливаем ноду

CryptoFortochka — гайды, ноды, новости, тестнеты

Aztec Network — это частная ZK-свертка на базе Ethereum, позволяющая децентрализованным приложениям получать доступ к конфиденциальности и масштабированию

Важно! Проект изначально предупреждает, что "никаких вознаграждений, эирдропов или токенов. Как общественное благо и открытая организация проекта, мы не допускаем этих механизмов на нашем сервере, любой пост, связанный с ними, будет удален. Перманентный бан." Так что окончательное решение об участии только за вами!

Подготовка

Подходящий сервер можно арендовать на Xorek за $18.06 в месяц, либо за $39 на Aeza
  • Создайте новый EVM-кошелек и запросите на него тестовый ETH в сети Sepolia — понадобится минимум 2,5 $ETH, если планируете регистрировать валидатора (роль можно получить и без валидатора), но для комиссии всё равно понадобится примерно 0,2 ETH.
  • Идём к крану и запрашиваем тестовые токены $ETH в сети Ethereum Sepolia
  • Дополнительные краны
Кстати, недавно собрал список кранов для многих тестовых сетей — Пользуйтесь
  • Пишем любой название и выбираем, как на скриншоте
  • Включаем переключатель и идем дальше
  • Всегда лучше выбирать вот эти четыре блока и нажимаем на Create app
  • Переходим на Networks
  • Здесь переключаем на Sepolia и копируем в надежное место нашу RPC Sepolia
  • Теперь нам нужно получить свою Beacon Sepolia, переходим сюда и проходим регистрацию через Google
  • Рандомно проходим опрос и попадаем на страницу, где нажимаем на свой проект
  • Далее нажимаем на кнопку
  • Выбираем, как на скриншоте, и нажимаем Next
  • Выбираем Global Node
  • Далее деплоем ноду и немного ждем, нас перекинет на нужную нам страницу
  • Переходим, как на скриншоте
  • Далее листаем вниз и ищем, что нам нужно, сохраняем в надежное место наш URL Beacon Sepolia
  • Так же заранее подготовьте приватный ключ и адрес от кошелька, куда запрашивали тестовые токены.

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

  • Устанавливаем зависимости
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
  • Устанавливаем Docker
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh
sudo usermod -aG docker $USER
rm get-docker.sh
  • Создаем группу для Docker
sudo groupadd docker
  • Добавляем пользователя в группу Docker (на всякий случай ещё раз)
sudo usermod -aG docker $USER
  • Настраиваем права и запускаем Docker
sudo chmod 666 /var/run/docker.sock
sudo systemctl start docker
  • Открываем порты
sudo apt install iptables-persistent
sudo iptables -I INPUT -p tcp --dport 40400 -j ACCEPT
sudo iptables -I INPUT -p udp --dport 40400 -j ACCEPT
sudo iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
sudo sh -c "iptables-save > /etc/iptables/rules.v4"
  • Создаем папку и переходим в неё
mkdir -p "$HOME/aztec-sequencer"
cd "$HOME/aztec-sequencer"
  • Скачиваем последнюю версию образа
docker pull aztecprotocol/aztec:0.85.0-alpha-testnet.8
  • Запускаем контейнер ноды, для этого скопируйте весь блок ниже куда-то и поменяйте на свои значения, а потом вставьте в терминал
docker run -d \
  --name aztec-sequencer \
  --network host \
  -e ETHEREUM_HOSTS="ВАША_RPC_SEPOLIA" \
  -e L1_CONSENSUS_HOST_URLS="ВАША_BEACON_SEPOLIA" \
  -e DATA_DIRECTORY=/data \
  -e VALIDATOR_PRIVATE_KEY="ПРИВАТНЫЙ_КЛЮЧ_ВАШЕГО_КОШЕЛЬКА" \
  -e P2P_IP="IP_ВАШЕГО_СЕРВЕРА" \
  -e LOG_LEVEL=debug \
  -v $HOME/my-node/node:/data \
  aztecprotocol/aztec:0.85.0-alpha-testnet.8 \
  sh -c 'node --no-warnings /usr/src/yarn-project/aztec/dest/bin/index.js \
    start --network alpha-testnet --node --archiver --sequencer'
  • После запуска логи зависнут на некоторое время, пока будет качаться снепшот
  • Потом пойдет синхронизация и нужно будет дождаться её окончания (зависит от сервера, но в среднем 10-30 минут)
  • Когда увидите такие логи, то можно переходить к следующему разделу

Получение роли

  • Проверяем синхронизацию ноды, если команда ниже выведет OK, то можно делать следующие шаги, если ничего не выведет — нужно ждать синхронизации
curl -s http://localhost:8080/status
  • Вводим команду ниже для получения актуальной высоты блока
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"
  • Вы должны получить большой блок из символов, который заканчивается знаком равенства
  • Переходим в их Discord в ветку operators | start-here и пишем команду /operator start, далее нам нужно будет вставить три значения:
    • Адрес кошелька, который вводили ранее
    • Высота блока для пруфа
    • Сам пруф — это большой текстовый блок со скриншота выше (его нужно вставлять целиком со знаком равно)
  • Роль успешно получена!

Регистрация валидатора

При попытке зарегистрироваться в качестве валидатора вы можете увидеть ошибку типа ValidatorQuotaFilledUntil, которая означает, что дневная квота исчерпана — переведите предоставленную временную метку Unix в местное время, чтобы узнать, когда вы сможете повторить попытку регистрации в качестве валидатора. Сделать это можно при помощи конвертора — https://www.unixtimestamp.com

  • Команда для регистрации валидатора
docker exec -it aztec-sequencer \
  node /usr/src/yarn-project/aztec/dest/bin/index.js add-l1-validator \
    --l1-rpc-urls ВАША_RPC_SEPOLIA \
    --private-key ПРИВАТНЫЙ_КЛЮЧ_ВАШЕГО_КОШЕЛЬКА \
    --attester АДРЕС_ВАШЕГО_КОШЕЛЬКА \
    --proposer-eoa АДРЕС_ВАШЕГО_КОШЕЛЬКА \
    --staking-asset-handler 0xF739D03e98e23A7B65940848aBA8921fF3bAc4b2 \
    --l1-chain-id 11155111

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

  • Проверка синхронизации, должно вернуть OK
curl -s http://localhost:8080/status
  • Логи ноды
docker logs --tail 100 -f aztec-sequencer
  • Перезапуск ноды
docker restart aztec-sequencer
  • Удаление ноды
docker stop aztec-sequencer
docker rm aztec-sequencer
rm -rf "$HOME/my-node/node/"*
rm -rf $HOME/aztec-sequencer
  • Узнать Peer ID своей ноды
sudo docker logs $(docker ps -q --filter ancestor=aztecprotocol/aztec:0.85.0-alpha-testnet.8 | head -n 1) 2>&1 | grep -i "peerId" | grep -o '"peerId":"[^"]*"' | cut -d'"' -f4 | head -n 1

Forto Club — закрытое сообщество для нодеров