Skip to main content

Overview

This guide will help you quickly set up and run an Avail node using Docker or from pre-built binaries. Choose the method that best fits your environment.

Prerequisites

Before you begin, ensure you have one of the following:
  • Docker or Podman installed
  • OR sufficient disk space (minimum 20GB recommended) for building from source
The fastest way to get started is using Docker:
1

Build the Docker image

Clone the repository and build the Avail Node Docker image:
git clone https://github.com/availproject/avail.git
cd avail
docker build -t availnode -f ./dockerfiles/avail-node.Dockerfile .
This process will take several minutes as it compiles the node from source.
2

Create a data directory

Create a directory to persist blockchain data:
mkdir output
3

Run the node

Start the Avail Node connected to the Turing testnet:
docker run --rm -p 30333:30333 -p 9944:9944 -v ./output:/output availnode
The SELinux variant is required on Fedora, RHEL, and other SELinux-enabled systems.

Option 2: Run from pre-built binary

Avail provides GPG-signed release binaries for Linux systems.
1

Download the binary

Download the latest release from GitHub Releases:
# Replace X.Y.Z with the desired version
VERSION="vX.Y.Z"
wget https://github.com/availproject/avail/releases/download/$VERSION/avail-node-linux-amd64.tar.gz
wget https://github.com/availproject/avail/releases/download/$VERSION/avail-node-linux-amd64.tar.gz.sig
wget https://github.com/availproject/avail/releases/download/$VERSION/gpg-public-key.asc
2

Verify the signature

Import the GPG key and verify the binary signature:
# Import the public key
gpg --import gpg-public-key.asc

# Verify the signature
gpg --verify avail-node-linux-amd64.tar.gz.sig avail-node-linux-amd64.tar.gz
You should see a message indicating a “Good signature” from the Avail Project release key.
3

Extract and run

Extract the binary and start the node:
tar -xzf avail-node-linux-amd64.tar.gz
chmod +x avail-node
mkdir -p output
./avail-node --chain mainnet -d ./output

Option 3: Build from source

For the latest features or custom builds:
1

Install dependencies

Install Rust and Substrate dependencies:
# Install Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source $HOME/.cargo/env

# Install system dependencies (Ubuntu/Debian)
sudo apt update
sudo apt install -y build-essential git clang curl libssl-dev llvm libudev-dev make cmake protobuf-compiler
See the installation guide for other operating systems.
2

Clone and build

Clone the repository and build the release binary:
git clone https://github.com/availproject/avail.git
cd avail
mkdir -p output
cargo run --locked --release -- --chain mainnet -d ./output
The first build will take 20-30 minutes depending on your hardware.

Verify your node is running

Once started, you should see output similar to:
2025-03-05 11:39:57 Avail Node    
2025-03-05 11:39:57 ✌️  version 2.3.0-6c6b8912fd3    
2025-03-05 11:39:57 ❤️  by Avail Project <[email protected]>, 2017-2025    
2025-03-05 11:39:57 📋 Chain specification: Avail Development Network    
2025-03-05 11:39:57 🏷  Node name: spotty-ducks-6306    
2025-03-05 11:39:57 👤 Role: AUTHORITY    
2025-03-05 11:39:59 🏷  Local node identity is: 12D3KooWDCNjiaVbFL4BGYkbkxHwqJjhDNAxvBuxNdCAB4HDuYjA    
2025-03-05 11:39:59 〽️ Prometheus exporter started at 127.0.0.1:9615    
2025-03-05 11:39:59 Running JSON-RPC server: addr=127.0.0.1:9944, allowed origins=["*"]    

Check node health

You can verify your node is healthy using these methods:
curl -H "Content-Type: application/json" \
  -d '{"id":1, "jsonrpc":"2.0", "method": "system_health"}' \
  http://localhost:9944

Network selection

Connect to different Avail networks by changing the --chain flag:
./avail-node --chain mainnet -d ./output

Enable Kate RPC

To enable Kate RPC for data availability queries, add the --enable-kate-rpc flag:
./avail-node --chain mainnet --enable-kate-rpc -d ./output
The --dev flag automatically enables Kate RPC.

Common configuration options

Customize your node with these frequently used flags:
FlagDescriptionExample
--nameHuman-readable node name--name "MyAvailNode"
--rpc-portJSON-RPC server port--rpc-port 9944
--portP2P networking port--port 30333
--prometheus-portPrometheus metrics port--prometheus-port 9615
--validatorEnable validator mode--validator
--rpc-corsSet CORS for RPC--rpc-cors=all
Never use --unsafe-rpc-external or --rpc-methods=unsafe on a public node. These options expose dangerous RPC methods that can compromise your node.

Resource requirements

Ensure your system meets these minimum requirements:
  • CPU: 4+ cores recommended
  • RAM: 8GB minimum, 16GB recommended
  • Disk: 200GB+ SSD (grows over time)
  • Network: Stable broadband connection
The node displays hardware benchmarks on startup:
2025-03-05 11:39:59 🏁 CPU score: 1.36 GiBs    
2025-03-05 11:39:59 🏁 Memory score: 22.37 GiBs    
2025-03-05 11:39:59 🏁 Disk score (seq. writes): 6.14 GiBs    
2025-03-05 11:39:59 🏁 Disk score (rand. writes): 2.85 GiBs

Next steps

Installation guide

Learn about detailed installation for different platforms

Configuration

Explore advanced node configuration options

Validator setup

Run your node as a validator

Monitoring

Set up Prometheus and Grafana monitoring

Troubleshooting

Node won’t start

Check that ports 9944 and 30333 are not already in use:
sudo lsof -i :9944
sudo lsof -i :30333

Slow synchronization

Increase peer connections or add bootnodes:
./avail-node --chain mainnet --out-peers 25 --in-peers 50

Database corruption

If you encounter database errors, try purging the chain data:
./avail-node purge-chain --chain mainnet -d ./output
Purging the chain will delete all local blockchain data and require a full resync.

Build docs developers (and LLMs) love