Розгортування ноди 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 ядер | 16 GB | 1 TB SSD | 25 Mbps |
| Validator | 8+ ядер | 16 GB | 1 TB SSD | 25+ Mbps |
| Archive (C-Chain) | 8+ ядер | 32 GB | 4+ TB NVMe | 25 Mbps |
C-Chain archive node зберігає повну історію EVM стану — потрібна для історичних eth_call та debug_traceTransaction.
Встановлення
# Офіційний install скрипт
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: github.com/ava-labs/avalanchego-grafana.
Ключові метрики:
-
avalanche_{chainID}_handler_chits_sum— швидкість консенсусу -
avalanche_network_peers— кількість пирів (норма >50) -
avalanche_{chainID}_vm_eth_rpc_duration_*— RPC latency - Disk I/O — C-Chain під навантаженням агресивно читає/пише storage







