May 3

Как установить aztec ноду на ubuntu 22.04

Покупаем VPS (требования)
8 ядер СPU
16 GB of RAM
100+ Mb/s internet
1000 GB of free storage
я предпочитаю https://contabo.com/ или на xorek.cloud просто докупив память до 1 TB

Подготовка

Нам понадобиться кошелек Метамаск, который нужно пополнить более чем на 2 ETH в сети Sepolia testnet
Краны:

Так же нам понадобиться индивидуальные RPC Sepolia testnet и RPC Sepolia testnet beacon

Регистрируемся по почте и запрашиваем адрес RPC для двух сетей

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

Заходим на наш VPS root+пароль

🔧 Устанавливаем необходимые утилиты:

curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh
sudo usermod -aG docker $USER
newgrp docker
docker --version
apt update && sudo apt install -y curl screen net-tools psmisc jq ufw nano

📦 Установка AZTEC CLI:

curl -fsSL https://install.aztec.network | bash
export PATH="$HOME/.aztec/bin:$PATH"
echo 'export PATH="$HOME/.aztec/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

🔄 Обновление до последней версии testnet:

aztec-up alpha-testnet

⚙️ Настройка параметров:

IP=$(curl -s https://api.ipify.org)
L1_RPC_URL="ВАШ SEPOLIA RPC"
L1_CONSENSUS_URL="ВАШ SEPOLIA Beacon"
VALIDATOR_PRIVATE_KEY="ВАШ_ПРИВАТНЫЙ_КЛЮЧ_..."
COINBASE_ADDRESS="ВАШ_АДРЕС_0x..."

7. 📟 Создаtv файл запуска:

cat > $HOME/start_aztec_node.sh << EOL
#!/bin/bash
export PATH=\$PATH:\$HOME/.aztec/bin
aztec start --node --archiver --sequencer \\
  --network testnet \\
  --port 8080 \\
  --l1-rpc-urls $L1_RPC_URL \\
  --l1-consensus-host-urls $L1_CONSENSUS_URL \\
  --sequencer.validatorPrsivateKeys $VALIDATOR_PRIVATE_KEY \\
  --sequencer.coinbase $COINBASE_ADDRESS \\
  --p2p.p2pIp $IP
EOL

chmod +x $HOME/start_aztec_node.sh

8. ▶️ Запуск ноды:

screen -S aztec
./start_aztec_node.sh

Видим вот такие логи значит началась синхронизация

Ждем 10 минут отправляемся в дискорд на канал#operators | start-here

находим свежий пост с данными нам интересен Proven block

Возвращаемся на сервер получаем номер блока который должен совпадать с Proven блоком в дискорде (значение динамическое)

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'
или
bash <(curl -s https://raw.githubusercontent.com/cerberus-node/aztec-network/refs/heads/main/sync-check.sh)

В следующей команде заменяем 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"

получаем вывод proof

8. 📟Получение роли Apprentice в Discord

После запуска и синхронизации узла вы можете получить роль Apprentice в Discord-сервере Aztec

  1. Перейдите в канал #operators | start-here
  2. Выполните команду /operator start.
  3. Вас попросят ввести:
    • Address: ваш адрес валидатора (например, 0x72977488379a24F140139972b3b06bD873Aa0d45).
    • Block-number: номер последнего подтверждённого блока (полученный ранее).
    • Proof: доказательство синхронизации, которое мы дак же получили

9. Регистрация в качестве валидатора

После полной синхронизации узла вы можете зарегистрироваться в качестве валидатора, выполнив следующую команду:

aztec add-l1-validator \
  --l1-rpc-urls ВАШ RPC Sepolia \
  --private-key ВАШ_ПРИВАТНЫЙ_КЛЮЧ_.. \
  --attester ВАШ_АДРЕС_0x... \
  --proposer-eoa ВАШ_АДРЕС_0x... \
  --staking-asset-handler 0xF739D03e98e23A7B65940848aBA8921fF3bAc4b2 \
  --l1-chain-id 11155111


При попытке зарегистрироваться в качестве валидатора вы можете увидеть ошибку типа ValidatorQuotaFilledUntil, что означает, что дневная квота достигнута — преобразуйте предоставленную временную метку Unix в местное время, чтобы узнать, когда вы можете снова попытаться зарегистрироваться в качестве валидатора.

ОБНОВЛЯЕМ НОДУ

1. Останови текущую ноду:

Если она запущена в screen

screen -r aztec

И останови сочетанием Ctrl+C, потом выйди:

3. Обновляем ПО до новой версии:

aztec-up latest

4. Запусти снова:

./start_aztec_node.sh

Проверить версию

aztec -V

УСТРАНЯЕМ ОШИБКИ

ОШИКА НЕХВАТКИ ПАМЯТИ
Node.js в Aztec CLI по умолчанию использует лимит ~1.5–2 ГБ но в пике бывает 6 ГБ

Добавляем в файл запуска строку

nano $HOME/start_aztec_node.sh
export NODE_OPTIONS="--max-old-space-size=8192"

CTRL+O -> ENTR -> CTRL+X

Файл запуска должен выглядеть так:

#!/bin/bash

export PATH=$PATH:$HOME/.aztec/bin
export LOG_LEVEL=debug
export NODE_OPTIONS="--max-old-space-size=8192"

aztec start --node --archiver --sequencer \
--network alpha-testnet \
--port 8080 \
--l1-rpc-urls ВАШ RPC \
--l1-consensus-host-urls ВАШ beacon RPC \
--sequencer.validatorPrivateKeys Ваш приватник \
--sequencer.coinbase Ваш адрес \
--p2p.p2pIp ВАШ IP

АВТОМАТИЧЕСКОЕ ОБНОВЛЕНИЕ

nano $HOME/start_aztec_node.sh

редактируем строку aztec start

aztec start --node --archiver --sequencer --auto-update config-and-version \

CTRL+O -> ENTR -> CTRL+X

Создаем run_forever.sh:

nano $HOME/run_forever.sh

Вставляем туда:

#!/bin/bash
while true; do
/root/.aztec/bin/aztec-up latest
./start_aztec_node.sh
echo "Node stopped. Restarting in 90 seconds..."
sleep 90
done

CTRL+O -> ENTR -> CTRL+X

chmod +x $HOME/run_forever.sh

Теперь запуск ноды будет через команду

./run_forever.sh

В случае если нода автоматически обновится и остановится файл автоматически её перезапустит

Или можно сделать systemd как вам удобно