Как установить 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
Краны:
- https://sepoliafaucet.com
- https://infura.io/faucet/sepolia
- https://faucet-sepolia.rockx.com
- https://access.rockx.com/faucet-sepolia
- https://faucetlink.to/sepolia
- https://sepolia-faucet.pk910.de
Так же нам понадобиться индивидуальные RPC Sepolia testnet и RPC Sepolia testnet beacon
- RPC Sepolia можно взять на https://dashboard.alchemy.com/chains или https://www.ankr.com/rpc
- RPC Sepolia testnet beacon можно взять на https://console.chainstack.com/
Регистрируемся по почте и запрашиваем адрес 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"
8. 📟Получение роли Apprentice в Discord
После запуска и синхронизации узла вы можете получить роль Apprentice в Discord-сервере Aztec
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 -r aztec
И останови сочетанием Ctrl+C
, потом выйди:
3. Обновляем ПО до новой версии:
aztec-up latest
./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"
Файл запуска должен выглядеть так:
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 \
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
chmod +x $HOME/run_forever.sh
Теперь запуск ноды будет через команду
./run_forever.sh
В случае если нода автоматически обновится и остановится файл автоматически её перезапустит