Развёртывание ноды Avalanche
Avalanche — не одна сеть, а три взаимосвязанных цепи плюс механизм Subnets для кастомных блокчейнов. Прежде чем деплоить ноду, нужно понять, зачем именно она нужна: для взаимодействия с C-Chain (EVM-совместимая, там весь DeFi), P-Chain (platform, управление валидаторами и Subnets), X-Chain (UTXO, обмен активов), или для валидации собственного Subnet.
AvalancheGo: единый клиент для всех цепей
Ноды Avalanche работают через AvalancheGo — официальный Go-клиент. Один процесс обрабатывает все три цепи одновременно.
Системные требования
| Тип | CPU | RAM | Disk | Bandwidth |
|---|---|---|---|---|
| Full node (non-validator) | 8 cores | 16 GB | 1 TB SSD | 25 Mbps |
| Validator | 8+ cores | 16 GB | 1 TB SSD | 25+ Mbps |
| Archive (C-Chain) | 8+ cores | 32 GB | 4+ TB NVMe | 25 Mbps |
C-Chain archive node хранит полную историю EVM состояния — нужна для eth_call по историческим блокам и debug_traceTransaction.
Установка
# Официальный install script
curl -sSfL https://raw.githubusercontent.com/ava-labs/avalanche-docs/master/scripts/avalanchego-installer.sh \
| sh -s -- --ip dynamic --rpc-port 9650 --http-host 0.0.0.0
# Или вручную
VERSION=$(curl -s https://api.github.com/repos/ava-labs/avalanchego/releases/latest \
| jq -r .tag_name)
wget "https://github.com/ava-labs/avalanchego/releases/download/${VERSION}/avalanchego-linux-amd64-${VERSION}.tar.gz"
tar xvf avalanchego-linux-amd64-${VERSION}.tar.gz
Конфигурация
// ~/.avalanchego/configs/node.json
{
"network-id": "mainnet",
"http-host": "127.0.0.1",
"http-port": 9650,
"staking-port": 9651,
"db-dir": "/data/avalanchego",
"log-level": "info",
"log-dir": "/var/log/avalanchego",
// Только если нужен публичный RPC
"http-allowed-hosts": "your-domain.com,localhost",
// Для C-Chain archive mode
"chain-config-dir": "/data/avalanchego/configs/chains"
}
// /data/avalanchego/configs/chains/C/config.json
{
"eth-apis": ["eth","eth-filter","net","web3","internal-eth","internal-blockchain","internal-transaction"],
"pruning-enabled": false, // archive mode
"tx-lookup-limit": 0,
"snapshot-async": true,
"rpc-gas-cap": 50000000,
"rpc-tx-fee-cap": 100
}
Systemd unit
[Unit]
Description=AvalancheGo Node
After=network.target
[Service]
User=avalanche
ExecStart=/home/avalanche/avalanche-node/avalanchego \
--config-file=/home/avalanche/.avalanchego/configs/node.json
Restart=always
RestartSec=10
LimitNOFILE=65536
StandardOutput=append:/var/log/avalanchego/node.log
StandardError=append:/var/log/avalanchego/error.log
[Install]
WantedBy=multi-user.target
Синхронизация и bootstrapping
AvalancheGo использует state sync (не полный replay с genesis) — нода загружает актуальное состояние с пиров. Время синхронизации: 2–6 часов для full node, 12–24 часа для archive.
Мониторинг прогресса:
# Статус bootstrapping
curl -X POST --data '{"jsonrpc":"2.0","id":1,"method":"info.isBootstrapped","params":{"chain":"C"}}' \
-H 'Content-Type: application/json' \
http://127.0.0.1:9650/ext/info
# Ответ: {"result":{"isBootstrapped":true},...} — нода готова
Валидатор: требования и стейкинг
Для запуска валидатора нужен минимальный стейк 2000 AVAX (на mainnet, ~$60k по ценам 2024). Требования к uptime — 80%: если нода падает чаще, теряете вознаграждения за валидацию.
# Получаем Node ID для стейкинга
curl -X POST --data '{"jsonrpc":"2.0","id":1,"method":"info.getNodeID"}' \
-H 'Content-Type: application/json' \
http://127.0.0.1:9650/ext/info
# Node ID используем при добавлении валидатора через P-Chain
# через кошелёк core.app или Ledger
Для валидатора staking port (9651) должен быть открыт публично — это обязательно для P2P.
Subnet: кастомная блокчейн-сеть
Subnet — это кастомная цепь с собственными правилами валидации, VM, токеном для gas. Subnet валидаторы должны также валидировать Primary Network (те же 2000 AVAX стейк).
# Установка Avalanche CLI для работы с Subnets
curl -sSfL https://raw.githubusercontent.com/ava-labs/avalanche-cli/main/scripts/install.sh | sh
# Создание нового Subnet с EVM (совместимой с Ethereum)
avalanche subnet create mySubnet
# Выбираем: SubnetEVM, настраиваем chainId, gas token, genesis
# Деплой в testnet (Fuji)
avalanche subnet deploy mySubnet --fuji
SubnetEVM — форк go-ethereum, адаптированный под Avalanche. Поддерживает все EVM-инструменты: MetaMask, Hardhat, Foundry — нужно только добавить кастомный RPC endpoint.
Мониторинг ноды
# Встроенные метрики через API
curl http://127.0.0.1:9650/ext/metrics
# Prometheus-совместимый формат
Grafana dashboard для AvalancheGo: github.com/ava-labs/avalanchego-grafana.
Ключевые метрики:
-
avalanche_{chainID}_handler_chits_sum— скорость consensus -
avalanche_network_peers— количество пиров (норма >50) -
avalanche_{chainID}_vm_eth_rpc_duration_*— latency RPC запросов - Disk I/O — C-Chain при высокой нагрузке агрессивно читает/пишет storage







