> For the complete documentation index, see [llms.txt](https://stavr-team.gitbook.io/nodes-guides/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://stavr-team.gitbook.io/nodes-guides/testnets/avail-t/node-installation.md).

# Node Installation

## [TELEMETRY](https://telemetry.avail.so/#list/0xd3d2f3a3495dc597434a99d7d449ebad6616db45e4e4f178f31cc6fa14378b70)

* **Minimum hardware requirements**:

| Node Type | CPU | RAM | Storage |
| --------- | --- | --- | ------- |
| Testnet   | 4   | 8GB | 150GB   |

#### Preparing the server

```bash
sudo apt update && sudo apt upgrade -y
sudo apt install curl tar wget clang pkg-config libssl-dev jq build-essential bsdmainutils git make ncdu gcc git jq chrony liblz4-tool -y
```

### GO 1.21.6

```bash
ver="1.21.6"
wget "https://golang.org/dl/go$ver.linux-amd64.tar.gz"
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf "go$ver.linux-amd64.tar.gz"
rm "go$ver.linux-amd64.tar.gz"
echo "export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin" >> $HOME/.bash_profile
source $HOME/.bash_profile
go version
```

## Build 28.07.25

```bash
cd $HOME
wget https://github.com/availproject/avail/releases/download/v2.3.2.0/x86_64-ubuntu-2204-avail-node.tar.gz
tar -xvf x86_64-ubuntu-2204-avail-node.tar.gz
mv avail-node /usr/bin/avail
rm -rf x86_64-ubuntu-2204-avail-node.tar.gz
```

`avail --version`

* avail 2.3.2-5b22f419256

## Create a service file

```
yourname=<name>
```

```bash
tee /etc/systemd/system/avail.service > /dev/null << EOF
[Unit]
Description=Avail Validator Node
After=network-online.target
StartLimitIntervalSec=0
[Service]
User=$USER
Restart=always
RestartSec=3
LimitNOFILE=65535
ExecStart=/usr/bin/avail \
  --base-path $HOME/.node-data/ \
  --chain turing \
  --port 40333 \
  --rpc-port 8933 \
  --prometheus-port 9615 \
  --validator \
  --name '$yourname'
[Install]
WantedBy=multi-user.target
EOF
```

### Start

```bash
systemctl daemon-reload
systemctl enable avail
systemctl restart avail && journalctl -u avail -f -o cat
```

* After launch, we wait for our node to synchronize. You can track our condition using telemetry

## [TELEMETRY](https://telemetry.avail.so/#list/0xd3d2f3a3495dc597434a99d7d449ebad6616db45e4e4f178f31cc6fa14378b70)

* After the node has synchronized, we pull out the key from our node by entering the command

```python
curl -H "Content-Type: application/json" -d '{"id":1, "jsonrpc":"2.0", "method": "author_rotateKeys", "params":[]}' http://localhost:9933
```

### Creating a validator

* Go to the [website](https://temp-explorer.avail.so/#/staking) and first create a wallet
* We create a validator. To do this, select `Network - Staking - Accounts - Validator`

## SnapShot Testnet - updated every 12 hours <a href="#snapshot-mainnet-updated-every-5-hours" id="snapshot-mainnet-updated-every-5-hours"></a>

```bash
cd $HOME
apt install lz4
sudo systemctl stop avail
rm -rf $HOME/.node-data/chains/avail_turing_network/paritydb
curl -o - -L https://avail-t.snapshot.stavr.tech/avail-snap.tar.lz4 | lz4 -c -d - | tar -x -C $HOME/.node-data/chains/ --strip-components 4
systemctl restart avail && journalctl -fu avail -o cat
```

## [🧩Services and Tools🧩](https://stavr-team.gitbook.io/nodes-guides/testnets/avail/statesync-snapshot)

`logs`

```python
journalctl -fu avail -o cat
```

`restart`

```
systemctl restart avail && journalctl -fu avail -o cat
```

`delete node`

```bash
systemctl stop avail
systemctl disable avail
rm /etc/systemd/system/avail.service
systemctl daemon-reload
cd && rm -rf .node-data
```
