Avail is now backed by prominent investors to accelerate the unification of web3 ๐ŸŽ‰๐ŸŽ‰

Docs
System Requirements

System Requirements

What You Need

To ensure a smooth experience, considering the following:

  1. Hardware Configuration: Verify that your hardware meets the Avail node's requirements.
  2. Methods to Run a Node: Familiarize yourself with the different Avail node types and the methods to run them.
  3. Prerequisites & Installation: Ensure you have the necessary prerequisites and packages installed on your machine.
  4. Notable System Configuration: Pay attention to system configuration details, including port settings and disk setup.

Hardware

This is the hardware configuration required to set up an Avail node:

ComponentMinimumRecommended
RAM8GB16GB
CPU (amd64/x86 architecture)4 core8 core
Storage (SSD)20-40 GB200-300 GB

While we do not favor any operating system, more secure and stable Linux server distributions (like CentOS) should be preferred over desktop operating systems (like Mac OS and Windows). Also, the minimum storage requirements will change over time as the network grows. It is recommended to use more than the minimum requirements to run a robust full node.

Methods to Run an Avail Node

There are two primary methods to run an Avail node, each with its own set of instructions:

  1. Using Binaries: You can follow the instructions provided here for setting up an Avail node using binary releases. This method is suitable for users who prefer manual installation and configuration. For reference, you can also explore the GitHub Releases (opens in a new tab) page for binary releases.

  2. Using Docker: Alternatively, if you're comfortable with Docker, you can pull Avail node images from the DockerHub Repository (opens in a new tab). Docker provides a convenient way to containerize and deploy Avail nodes.

    The Avail team offers official Docker images specifically designed for running nodes on the Goldberg testnet.

Setting Up Your Environment

The node deployment guides provide specific instructions tailored for Linux distributions with apt support, such as Debian. Additionally, it's common practice to run nodes on cloud servers.

Installation

Download the client binary and config file for the node you want to run:

Node TypeRepository NameLatest Release
Full Nodeavail (opens in a new tab)v1.10.0.0 (opens in a new tab)

Common Dependencies

Before proceeding, install the required dependencies:

sudo apt update
sudo apt install make clang pkg-config libssl-dev build-essential
curl https://sh.rustup.rs -sSf | sh
source $HOME/.cargo/env
rustup update nightly
rustup target add wasm32-unknown-unknown --toolchain nightly
rustc --version # Verify Rust installation by displaying the version

Clone the node repository you would like to run:

Node TypeBuild Steps
Full Node (opens in a new tab)cargo build --release -p data-avail

The available Docker images are compatible exclusively with Linux/amd64 or x86_64 based CPUs.

Install Docker

If Docker is not already installed on your system, please follow the installation instructions provided here (opens in a new tab). In this guide, we will use the Ubuntu-specific installation instructions, but it's advisable to refer to the official guidelines for the most up-to-date information.

To install Docker, execute the following commands:

sudo apt-get update
sudo apt-get install ca-certificates curl gnupg lsb-release
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin

At this point, you should have Docker installed. To ensure a more convenient user experience and avoid running Docker as the root user (which can be inconvenient), follow the post-installation steps here (opens in a new tab). These steps enable you to interact with Docker without requiring root privileges:

sudo groupadd docker
sudo usermod -aG docker $USER
Node TypeDocker Repository NameLatest Version
Full Nodeavailj/avail (opens in a new tab)v1.10.0.0 (opens in a new tab)

Notable Configurations

Ports

Port 30333 is typically required for peer exchange. Ensure that this port, along with any others needed for machine access, is open when configuring your firewall or your cloud provider's security groups.

Disk Setup

You'll typically have a root partition for the operating system on one device, and one or more separate devices for storing blockchain data. In these guides, we'll assume the additional storage device is mounted at /mnt/avail.

Before mounting the additional disk, it's advisable to format it and create a filesystem. For guidance, you can follow these instructions (opens in a new tab).

Here's an example of working with a 300 GB device located at /dev/nvme1n1. Mount the device with these steps:

sudo mkdir /mnt/avail
sudo mount -a /dev/nvme1n1 /mnt/avail

Use df -h to verify the successful configuration.

If everything looks good, create sub-directories for data and configuration files:

sudo mkdir /mnt/avail/config
sudo mkdir /mnt/avail/state
sudo mkdir /mnt/avail/keystore

Depending on your use case and operating system, you may need to add an entry to /etc/fstab to ensure the device remains mounted after system reboots. In our scenario, we'll proceed as follows:

# Use blkid to get the UUID for the device that we're mounting
 
blkid
 
# Edit the fstab file  and add a line to mount your device
# UUID={your uuid}      /mnt/data   {your filesystem}   defaults    0   1
sudo emacs /etc/fstab
 
# you can use any test editor based on your preference to edit the file here we have used emacs.
 
# use this to verify the fstab actually works
sudo findmnt --verify --verbose

Alternate Networks & Releases Information

The instructions provided here are specifically for the Kate testnet. If you need to connect to a different network, you may have to download an alternate node version from the node releases page (opens in a new tab) and obtain the corresponding chain specification file.

How Many Tokens Do I Need to Become an Active Validator?

To become an active validator, you'll need a certain number of tokens for staking. Please refer to the Faucet guide on obtaining test AVAIL tokens.

If you have any questions or need further assistance, don't hesitate to get in touch with the Avail team for guidance and support. -->