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

How to Run a full node

Running a Full Node with Binaries

This guide provides step-by-step instructions on how to set up and run a full node for the Avail network using pre-compiled binaries. Whether you're a beginner or an experienced node operator, this guide aims to make the process straightforward.

BEFORE YOU START
Ensure that you meet the system requirements. We recommend downloading the pre-compiled binary for speed and convenience.

Option 1: Run the Pre-Built Release

All you need to do is run:

./data-avail -d ./data --chain goldberg --name MyAvailNode
Sample Output

The client output should look like this:

2023-11-07 17:35:19 Avail Node    
2023-11-07 17:35:19 ✌️  version 1.8.0-9c5f37b9230    
2023-11-07 17:35:19 ❀️  by Anonymous, 2017-2023    
2023-11-07 17:35:19 πŸ“‹ Chain specification: Avail Goldberg Testnet    
2023-11-07 17:35:19 🏷  Node name: fresh-fan-5502    
2023-11-07 17:35:19 πŸ‘€ Role: FULL    
2023-11-07 17:35:19 πŸ’Ύ Database: RocksDb at /tmp/substrateCTFPb5/chains/avail_goldberg_testnet/db/full    
2023-11-07 17:35:20 πŸ”¨ Initializing Genesis block/state (state: 0x6bc7…ec83, header-hash: 0x6f09…a7ae)    
2023-11-07 17:35:20 πŸ‘΄ Loading GRANDPA authority set from genesis on what appears to be first startup.    
2023-11-07 17:35:21 πŸ‘Ά Creating empty BABE epoch changes on what appears to be first startup.    
2023-11-07 17:35:21 🏷  Local node identity is: 12D3KooWEEa9iNANi6PUeXGaDqTgTR9T5YcP3A69nwbT4VXnG5R1    
2023-11-07 17:35:21 Prometheus metrics extended with avail metrics    
2023-11-07 17:35:21 πŸ’» Operating system: linux    
2023-11-07 17:35:21 πŸ’» CPU architecture: x86_64    
2023-11-07 17:35:21 πŸ’» Target environment: gnu    
2023-11-07 17:35:21 πŸ’» CPU: 13th Gen Intel(R) Core(TM) i7-13700K    
2023-11-07 17:35:21 πŸ’» CPU cores: 16    
2023-11-07 17:35:21 πŸ’» Memory: 31863MB    
2023-11-07 17:35:21 πŸ’» Kernel: 6.5.8-100.fc37.x86_64    
2023-11-07 17:35:21 πŸ’» Linux distribution: Fedora Linux 37 (Workstation Edition)    
2023-11-07 17:35:21 πŸ’» Virtual machine: no    
2023-11-07 17:35:21 πŸ“¦ Highest known block at #0    
2023-11-07 17:35:21 〽️ Prometheus exporter started at 127.0.0.1:9615    
2023-11-07 17:35:21 Running JSON-RPC server: addr=127.0.0.1:9944, allowed origins=["http://localhost:*", "http://127.0.0.1:*", "https://localhost:*", "https://127.0.0.1:*", "https://polkadot.js.org"]    
2023-11-07 17:35:21 🏁 CPU score: 1.62 GiBs    
2023-11-07 17:35:21 🏁 Memory score: 22.99 GiBs    
2023-11-07 17:35:21 🏁 Disk score (seq. writes): 6.78 GiBs    
2023-11-07 17:35:21 🏁 Disk score (rand. writes): 2.67 GiBs    
2023-11-07 17:35:21 πŸ” Discovered new external address for our node: /ip4/176.61.156.176/tcp/30333/ws/p2p/12D3KooWEEa9iNANi6PUeXGaDqTgTR9T5YcP3A69nwbT4VXnG5R1

Your node will also appear on the Avail Telemetry (opens in a new tab) site, listed under the "Node name" from the node command output. Be sure to select the appropriate network tab at the top to view your node's status.

Option 2: Build From Source

To compile the client source code, run the node:

cargo build --release
./target/release/data-avail -d ./data --chain goldberg --name MyAvailNode

How to Run a Full Node with Docker

This guide provides step-by-step instructions for setting up and running a full node on the Avail network using Docker. Whether you're new to node operation or have prior experience, this guide is designed to make the setup process straightforward.

BEFORE YOU START
Ensure that you meet the system requirements. We recommend downloading the pre-compiled binary for speed and convenience.

Step 1: Launch Your Avail Node

To launch your Avail node, navigate to the /mnt/avail directory and execute the following Docker command:

cd /mnt/avail
sudo docker run -v $(pwd)/state:/da/state:rw -p 30333:30333 -p 9615:9615 -p 9944:9944 -d --restart unless-stopped availj/avail:v1.10.0.0 --chain goldberg --name "MyAweasomeInContainerAvailAnode" -d /da/state

The Docker command performs several important steps:

  • Map the state directory, providing read-write permissions for data persistence.
  • Opens various ports for different functionalities, including P2P connections, metrics, and HTTP RPC.
  • Utilizes the Avail image from Docker Hub and sets it to restart unless manually stopped.

Sample output

You should see an output similar to the following:

2023-11-07 17:35:19 Avail Node
2023-11-07 17:35:19 ✌️  version 1.8.0-9c5f37b9230
2023-11-07 17:35:19 ❀️  by Anonymous, 2017-2023
2023-11-07 17:35:19 πŸ“‹ Chain specification: Avail Goldberg Testnet
2023-11-07 17:35:19 🏷  Node name: fresh-fan-5502
2023-11-07 17:35:19 πŸ‘€ Role: FULL
2023-11-07 17:35:19 πŸ’Ύ Database: RocksDb at /tmp/substrateCTFPb5/chains/avail_goldberg_testnet/db/full
2023-11-07 17:35:20 πŸ”¨ Initializing Genesis block/state (state: 0x6bc7…ec83, header-hash: 0x6f09…a7ae)
2023-11-07 17:35:20 πŸ‘΄ Loading GRANDPA authority set from genesis on what appears to be first startup.
2023-11-07 17:35:21 πŸ‘Ά Creating empty BABE epoch changes on what appears to be first startup.
2023-11-07 17:35:21 🏷  Local node identity is: 12D3KooWEEa9iNANi6PUeXGaDqTgTR9T5YcP3A69nwbT4VXnG5R1
2023-11-07 17:35:21 Prometheus metrics extended with avail metrics
2023-11-07 17:35:21 πŸ’» Operating system: linux
2023-11-07 17:35:21 πŸ’» CPU architecture: x86_64
2023-11-07 17:35:21 πŸ’» Target environment: gnu
2023-11-07 17:35:21 πŸ’» CPU: 13th Gen Intel(R) Core(TM) i7-13700K
2023-11-07 17:35:21 πŸ’» CPU cores: 16
2023-11-07 17:35:21 πŸ’» Memory: 31863MB
2023-11-07 17:35:21 πŸ’» Kernel: 6.5.8-100.fc37.x86_64
2023-11-07 17:35:21 πŸ’» Linux distribution: Fedora Linux 37 (Workstation Edition)
2023-11-07 17:35:21 πŸ’» Virtual machine: no
2023-11-07 17:35:21 πŸ“¦ Highest known block at #0
2023-11-07 17:35:21 〽️ Prometheus exporter started at 127.0.0.1:9615
2023-11-07 17:35:21 Running JSON-RPC server: addr=127.0.0.1:9944, allowed origins=["http://localhost:*", "http://127.0.0.1:*", "https://localhost:*", "https://127.0.0.1:*", "https://polkadot.js.org"]
2023-11-07 17:35:21 🏁 CPU score: 1.62 GiBs
2023-11-07 17:35:21 🏁 Memory score: 22.99 GiBs
2023-11-07 17:35:21 🏁 Disk score (seq. writes): 6.78 GiBs
2023-11-07 17:35:21 🏁 Disk score (rand. writes): 2.67 GiBs
2023-11-07 17:35:21 πŸ” Discovered new external address for our node: /ip4/176.61.156.176/tcp/30333/ws/p2p/12D3KooWEEa9iNANi6PUeXGaDqTgTR9T5YcP3A69nwbT4VXnG5R1

Step 2: Verify Node Functionality

Inspect Node Logs

To confirm that your node is operating as expected, inspect the Docker logs by running the following:

ubuntu:/mnt/avail# docker ps
ubuntu:/mnt/avail# docker logs 5b3978de8f35  # 5b3978de8f35 is the container id

Monitor Your Node

You can monitor the status of your node on the Avail Telemetry (opens in a new tab) website.