Avalanche Node Deployment

We design and develop full-cycle blockchain solutions: from smart contract architecture to launching DeFi protocols, NFT marketplaces and crypto exchanges. Security audits, tokenomics, integration with existing infrastructure.
Showing 1 of 1 servicesAll 1306 services
Avalanche Node Deployment
Medium
from 1 business day to 3 business days
FAQ
Blockchain Development Services
Blockchain Development Stages
Latest works
  • image_web-applications_feedme_466_0.webp
    Development of a web application for FEEDME
    1161
  • image_ecommerce_furnoro_435_0.webp
    Development of an online store for the company FURNORO
    1051
  • image_logo-advance_0.png
    B2B Advance company logo design
    561
  • image_crm_enviok_479_0.webp
    Development of a web application for Enviok
    827
  • image_logo-aider_0.jpg
    AIDER company logo development
    762
  • image_crm_chasseurs_493_0.webp
    CRM development for Chasseurs
    850

Deploying Avalanche Node

Avalanche is not one network but three interconnected chains plus Subnets mechanism for custom blockchains. Before deploying a node, understand why: for interacting with C-Chain (EVM-compatible, all DeFi is there), P-Chain (platform, validator management and Subnets), X-Chain (UTXO, asset exchange), or for validating your own Subnet.

AvalancheGo: Single Client for All Chains

Avalanche nodes work via AvalancheGo — official Go client. One process handles all three chains simultaneously.

System Requirements

Type 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 stores full EVM state history — needed for historical eth_call and debug_traceTransaction.

Installation

# Official 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

# Or manually
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

Configuration

// ~/.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",
  
  // Only if public RPC needed
  "http-allowed-hosts": "your-domain.com,localhost",
  
  // For 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

Sync and Bootstrapping

AvalancheGo uses state sync (not full replay from genesis) — node downloads current state from peers. Sync time: 2–6 hours for full node, 12–24 hours for archive.

Monitor progress:

# Bootstrapping status
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

# Response: {"result":{"isBootstrapped":true},...} — node ready

Validator: Requirements and Staking

To run validator need minimum 2000 AVAX stake (mainnet, ~$60k at 2024 prices). Uptime requirement — 80%: if node crashes too often, lose validation rewards.

# Get Node ID for staking
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

# Use Node ID when adding validator via P-Chain
# via core.app wallet or Ledger

For validator staking port (9651) must be open publicly — mandatory for P2P.

Subnet: Custom Blockchain Network

Subnet is custom chain with own validation rules, VM, gas token. Subnet validators must also validate Primary Network (same 2000 AVAX stake).

# Install Avalanche CLI for Subnet work
curl -sSfL https://raw.githubusercontent.com/ava-labs/avalanche-cli/main/scripts/install.sh | sh

# Create new Subnet with EVM (Ethereum-compatible)
avalanche subnet create mySubnet
# Choose: SubnetEVM, configure chainId, gas token, genesis

# Deploy to testnet (Fuji)
avalanche subnet deploy mySubnet --fuji

SubnetEVM is go-ethereum fork adapted for Avalanche. Supports all EVM tools: MetaMask, Hardhat, Foundry — just add custom RPC endpoint.

Node Monitoring

# Built-in metrics via API
curl http://127.0.0.1:9650/ext/metrics
# Prometheus-compatible format

Grafana dashboard: github.com/ava-labs/avalanchego-grafana.

Key metrics:

  • avalanche_{chainID}_handler_chits_sum — consensus speed
  • avalanche_network_peers — peer count (norm >50)
  • avalanche_{chainID}_vm_eth_rpc_duration_* — RPC latency
  • Disk I/O — C-Chain under load aggressively reads/writes storage