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
Option 1: Run with Docker (recommended)
The fastest way to get started is using Docker:
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.
Create a data directory
Create a directory to persist blockchain data:
Run the node
Start the Avail Node connected to the Turing testnet: Standard
SELinux
Development mode
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.
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
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.
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:
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.
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:
RPC endpoint
Prometheus metrics
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:
Mainnet
Testnet (Turing)
Development
./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:
Flag Description Example --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.