Развертывание ноды Avalanche

Проектируем и разрабатываем блокчейн-решения полного цикла: от архитектуры смарт-контрактов до запуска DeFi-протоколов, NFT-маркетплейсов и криптобирж. Аудит безопасности, токеномика, интеграция с существующей инфраструктурой.
Показано 1 из 1Все 1306 услуг
Развертывание ноды Avalanche
Средний
от 1 дня до 3 дней
Часто задаваемые вопросы

Направления блокчейн-разработки

Этапы блокчейн-разработки

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1308
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1221
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    921
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1149
  • image_logo-advance_0.webp
    Разработка логотипа компании B2B Advance
    611
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    886

Развёртывание ноды 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