Introduction to Avail light clients
Learn about Avail's data availability chain
System Requirements
| Component | Minimum | Recommended |
|---|---|---|
| RAM | 512MB | 1 GB |
| CPU (amd64/x86 architecture) | 2 core | 4 core |
Note
JUST LOOKING FOR INSTRUCTIONS?
If you're not interested in theory, skip to this link for instructions on how to run an Avail light client.
If you're not interested in theory, skip to this link for instructions on how to run an Avail light client.
Introduction

This screenshot is from a purely in-browser interface built by the Avail team that uses a light client to determine the confidence of blocks in real time. You can check it out at light.avail.tools.Light client functionality is separated into two logical parts - the light client and the app client. While the LC is primarily focused on DAS, the app client is used to perform data reconstruction.
Light client
Note
Avail blocks are chunked and divided into equal sized cells as a part of that blocks matrix. Each row in the matrix is then erasure coded using Reed-Solomon (RS) erasure codes and committed with Kate-Zaverucha-Goldberg (KZG) commitments.
- DHT - the client first tries to retrieve cells via Kademlia DHT, on the LC-only high availability peer-to-peer network.
- RPC - if some or all of the required cells can't be found on the DHT, LC uses RPC calls to the Avail node(s) to retrieve the data. Cells not already found in the DHT will be uploaded thus increasing blocks availability in the LC P2P network
Note
Light client uses libp2p with Kademlia as a DHT implementation. Peer-to-peer network is able to perform NAT traversal, both symmetric and asymmetric, enabling easy connectivity with various network configurations (e.g. symmetric and asymmetric NAT).
Note
On fresh startup, the LC performs a block sync with the node, using both DHT and RPC mechanisms. The block depth to which the sync is going to be done is set with the
sync_block_depth config parameter, which needs to be set to the max number of blocks the connected node is caching (if downloading via RPC).When and how to embed the light client
Note
You can check out all the different methods supported by the Avail light client in our Light Client API Reference.
How is this guide?