Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/availproject/avail/llms.txt

Use this file to discover all available pages before exploring further.

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 <info@availproject.org>, 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