Skip to content

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
quadro-network committed Jun 18, 2024
0 parents commit 67e109e
Show file tree
Hide file tree
Showing 39 changed files with 7,335 additions and 0 deletions.
125 changes: 125 additions & 0 deletions Avail/AVAILIGHT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
<p style="font-size:14px" align="right">
<a href="https://t.me/quadro_network" target="_blank">Join our telegram <img src="https://user-images.githubusercontent.com/50621007/183283867-56b4d69f-bc6e-4939-b00a-72aa019d1aea.png" width="30"/></a>
<a href="https://discord.com/users/1225408886966714388" target="_blank">Join our discord <img src="https://user-images.githubusercontent.com/50621007/176236430-53b0f4de-41ff-41f7-92a1-4233890a90c8.png" width="30"/></a>
<a href="https://quadro.network/" target="_blank">Visit our website <img src="https://assets.quadro.network/img/icon_min.png" width="30"/></a>
</p>
<p align="center">
<img height="100" height="auto" src="https://assets.quadro.network/img/1.png">
</p>

# Avail Light Client - Goldberg network

Official documentation:
>- https://github.com/availproject/avail
Explorer:
>- https://telemetry.avail.tools
>- https://kate.avail.tools/
Fill form for Avail Light client:
>- https://docs.google.com/forms/d/e/1FAIpQLSeL6aXqz6vBbYEgD1cZKaQ4vwbN2o3Rxys-wKTuKySVR-oS8g/viewform
## Recommended Hardware Requirements
Minimum
>- 4GB RAM
>- 2core CPU (amd64/x86 architecture)
>- 20-40 GB Storage (SSD)
Recommended
>- 8GB RAM
>- 4core CPU (amd64/x86 architecture)
>- 200-300 GB Storage (SSD)
## Set up your Avail Light Node
### Option 1 (automatic)
You can setup your avail light node in few minutes by using automated script below.
```
wget -O avail-light.sh https://raw.githubusercontent.com/thenhthang/Quadro/main/Avail/avail-light.sh && chmod +x avail-light.sh && ./avail-light.sh
```

### Option 2 (manual)
## Update packages
```
sudo apt update && sudo apt upgrade -y
```
## Install dependencies
```
sudo apt install curl tar wget clang pkg-config protobuf-compiler libssl-dev jq build-essential protobuf-compiler bsdmainutils git make ncdu gcc git jq chrony liblz4-tool -y
```
## Install Rust
```
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source ~/.cargo/env
rustup default stable
rustup update
rustup update nightly
rustup target add wasm32-unknown-unknown --toolchain nightly
```
## Download and build binaries
```
git clone https://github.com/availproject/avail-light.git
cd avail-light
wget -O config.yaml https://raw.githubusercontent.com/thenhthang/Quadro/main/Avail/config.yaml
git checkout v1.7.4
cargo build --release
cp -r target/release/avail-light /usr/local/bin
```
## Create service
```
sudo tee /etc/systemd/system/availightd.service > /dev/null <<EOF
[Unit]
Description=Avail Light Client
After=network-online.target
[Service]
User=$USER
ExecStart=$(which avail-light) --network goldberg
Restart=on-failure
RestartSec=3
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
EOF
```
## Register and start service
```
sudo systemctl daemon-reload
sudo systemctl enable availightd
sudo systemctl restart availightd
```
## Logs and Monitor
### View the logs from the running service:
```
journalctl -f -u availightd.service
```
### Stop node
```
sudo systemctl stop availightd
```
### Fetching the number of the latest block processed by light client
```
curl "http://localhost:7000/v1/latest_block"
```
### Fetching the confidence for given block
```
curl "http://localhost:7000/v1/confidence/1"
```
### Fetching decoded application data for given block
```
curl "http://localhost:7000/v1/appdata/1?decode=true"
```
### Get the status of a latest block
```
curl "localhost:7000/v1/status"
```
### Get the latest block
```
curl "localhost:7000/v1/latest_block"
```
### Health check
```
curl -I "localhost:7000/health"
```
### More
>- https://github.com/availproject/avail-light#configuration-reference
54 changes: 54 additions & 0 deletions Avail/How to participate Avail incentivized testnet.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
## Step 1: Run a Node
Full node: https://github.com/thenhthang/Quadro/blob/main/Avail/README.md

Light node:
https://github.com/thenhthang/Quadro/blob/main/Avail/AVAILIGHT.md

## Step 2: Create account & Set Identity
- Create account

Go to https://goldberg.avail.tools/#/accounts
<img width="1440" alt="image" src="https://github.com/thenhthang/Quadro/assets/16117878/ebf6ebd9-f81b-414a-8b1e-bffae9629f11">
- Set identity

You need 10 AVAIL tokens for identification, faucet on discord
<img width="1437" alt="image" src="https://github.com/thenhthang/Quadro/assets/16117878/b7ad0b47-08fc-48d7-af73-e09426e7190c">
Fill in all information and confirm
<img width="900" alt="image" src="https://github.com/thenhthang/Quadro/assets/16117878/1c3a5b40-d052-49be-b9b4-972d240f1157">

If you run a Full node, continue step 3

More info clash of node: https://docs.availproject.org/clash-of-nodes/challenges/

## Step 3: Controll your full node
Official documentation: https://docs.availproject.org/operate/validator/staking

- Create Stash
<img width="1440" alt="image" src="https://github.com/thenhthang/Quadro/assets/16117878/20a11727-8b4f-43e9-89e1-785206188e03">
<img width="1085" alt="image" src="https://github.com/thenhthang/Quadro/assets/16117878/793db9cb-1c13-4c39-9582-6e43cb4aca7a">
- Submit seesion keys

**After your node is fully synced, you'll need to rotate and submit your session keys.**

Make sure your node is fully synchronized to continue

get hex-encoded, run command on your machine

```
curl -H "Content-Type: application/json" -d '{"id":1, "jsonrpc":"2.0", "method": "author_rotateKeys", "params":[]}' http://localhost:9944
```
Restart your node
```
sudo systemctl restart availd
```
Navigate back to the Staking tab.

Click on **Set Session Key** and enter the hex-encoded result.

Click **Set Session Key** and enter your password when prompted.

![image](https://github.com/thenhthang/Quadro/assets/16117878/85cb24a6-d9da-4ef2-a70d-03782fd43c58)




173 changes: 173 additions & 0 deletions Avail/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,173 @@
<p style="font-size:14px" align="right">
<a href="https://t.me/Quadro" target="_blank">Join our telegram <img src="https://user-images.githubusercontent.com/50621007/183283867-56b4d69f-bc6e-4939-b00a-72aa019d1aea.png" width="30"/></a>
<a href="https://discord.gg/dvNSrwyU" target="_blank">Join our discord <img src="https://user-images.githubusercontent.com/50621007/176236430-53b0f4de-41ff-41f7-92a1-4233890a90c8.png" width="30"/></a>
<a href="https://Quadro.com" target="_blank">Visit our website <img src="https://github.com/thenhthang/Quadro/blob/main/content/logo.jpg?raw=true" width="30"/></a>
</p>
<p align="center">
<img height="100" height="auto" src="https://github.com/thenhthang/Quadro/blob/main/content/avail.png?raw=true">
</p>

# Avial Full node

Official documentation:
>- https://docs.availproject.org/
>- https://github.com/availproject/avail
Explorer:
>- https://telemetry.avail.tools
>- https://goldberg.avail.tools
>- LeaderBoard:
>- https://leaderboard.availproject.org
>- Fill form for validator test:
>- https://docs.google.com/forms/d/e/1FAIpQLScvgXjSUmwPpUxf1s-MR2C2o5V79TSoud1dLPKVgeLiLFuyGQ/viewform
## Hardware Requirements
Minimum
>- 4GB RAM
>- 2core CPU (amd64/x86 architecture)
>- 20-40 GB Storage (SSD)
Recommended
>- 8GB RAM
>- 4core CPU (amd64/x86 architecture)
>- 200-300 GB Storage (SSD)
```diff
- While Avail is currently in its testnet phase, running validator nodes requires significant system administration expertise.
```
| Network | Version | Current | Last modified |
|---------------|-------------|-------------|-------------|
| **Kate Testnet** | v1.7.2 | No | |
| **Goldberg Testnet** | 1.11.0.0 | Yes | 2024/02/20 |
```
Ports used: 30333
```
## Step 1: Set up your Avail Node
### Option 1 (automatic)
You can setup your avail validator in few minutes by using automated script below. It will prompt you to input your validator node name!
```
wget -O avail-auto.sh https://raw.githubusercontent.com/thenhthang/Quadro/main/Avail/avail-auto.sh && chmod +x avail-auto.sh && ./avail-auto.sh
```

### Option 2 (manual)
## Setting up vars
Here you have to put name of your node name (validator) that will be visible in explorer
```
NODENAME=<YOUR_NODE_NAME_GOES_HERE>
```
Save and import variables into system
```
AVAIL_PORT=30333
echo "export NODENAME=$NODENAME" >> $HOME/.bash_profile
echo "export AVAIL_PORT=${AVAIL_PORT}" >> $HOME/.bash_profile
source $HOME/.bash_profile
```
## Update packages
```
sudo apt update && sudo apt upgrade -y
```
## Install dependencies
```
sudo apt install curl tar wget clang pkg-config protobuf-compiler libssl-dev jq build-essential protobuf-compiler bsdmainutils git make ncdu gcc git jq chrony liblz4-tool -y
```
## Install Rust
```
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source ~/.cargo/env
rustup default stable
rustup update
rustup update nightly
rustup target add wasm32-unknown-unknown --toolchain nightly
```
## Download and build binaries
```
git clone https://github.com/availproject/avail.git
cd avail
mkdir -p data
git checkout v1.11.0.0
cargo build --release -p data-avail
sudo cp $HOME/avail/target/release/data-avail /usr/local/bin
```
## Create service
```
sudo tee /etc/systemd/system/availd.service > /dev/null <<EOF
[Unit]
Description=Avail Validator
After=network-online.target
[Service]
User=$USER
ExecStart=$(which data-avail) -d `pwd`/data --chain goldberg --validator --name $NODENAME
Restart=on-failure
RestartSec=3
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
EOF
```
## Register and start service
```
sudo systemctl daemon-reload
sudo systemctl enable availd
sudo systemctl restart availd && sudo journalctl -u availd -f -o cat
```
## Logs
>- View the logs from the running service: journalctl -f -u availd.service
>- Check the node is running: sudo systemctl status availd.service
>- Stop your avail node: sudo systemctl stop availd.service
>- Start your avail node: sudo systemctl start availd.service
## Update from old version to v1.10.0.0
Step 1
```
sudo systemctl stop availd
cd avail/data/chains/avail_goldberg_testnet
rm -rf db
rm -rf network
mkdir db
mkdir network
cd db
mkdir full
cd full
curl -o - -L https://snapshots.avail.nexus/goldberg/avail_goldberg_testnet_snapshot_jan_31.tar.gz | tar -xz -C .
cd
```
Step 2
```
wget -O avail-update.sh https://raw.githubusercontent.com/thenhthang/Quadro/main/Avail/avail-update.sh && chmod +x avail-update.sh && ./avail-update.sh
```
Step 3: After full sync (Please check you node is full sync before execute this step
Find your node on https://telemetry.avail.tools
```
sudo systemctl stop availd
```
```
sudo tee /etc/systemd/system/availd.service > /dev/null <<EOF
[Unit]
Description=Avail Validator
After=network-online.target
[Service]
User=$USER
ExecStart=$(which data-avail) -d `pwd`/data --chain goldberg --validator --name $NODENAME
Restart=on-failure
RestartSec=3
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
EOF
```
```
sudo systemctl start availd
```
## Update from old version to v1.11.0.0
```
wget -O avail-update.sh https://raw.githubusercontent.com/thenhthang/Quadro/main/Avail/avail-update.sh && chmod +x avail-update.sh && ./avail-update.sh
```
### Before you can become an active validator, you need to bond your funds to your node.
>- Stake your validator: https://docs.availproject.org/operate/validator/staking
## Step 2: Create wallet and Set Identity
## Step 3: Control your full node account
>- Step 2 and step 3 read guide here: https://github.com/thenhthang/Quadro/blob/main/Avail/How%20to%20participate%20Avail%20incentivized%20testnet.md
Question: <a href="https://t.me/nodesrunnerguruchat" target="_blank">NodesRunner Chat</a>
Loading

0 comments on commit 67e109e

Please sign in to comment.