source <(curl -s https://raw.githubusercontent.com/NodersUA/Scripts/main/avail)
# Update, upgrade and install requirements
sudo apt-get update && \
sudo apt-get upgrade -y
# Update or install rust
if command -v rustup &> /dev/null; then
rustup update
else
curl https://sh.rustup.rs -sSf | sh
source $HOME/.cargo/env
fi
rustc --version
sudo apt-get install build-essential cmake clang pkg-config libssl-dev protobuf-compiler git-lfs g++ -y && \
cargo install sccache
cd $HOME
git clone https://github.com/availproject/avail
cd avail/
git checkout v1.8.0.4
cargo build --release -p data-avail
cp target/release/data-avail /usr/local/bin/avail
avail --version
# Open ports
ufw allow 45333
ufw allow 9944
# Enter your moniker
MONIKER=<your_moniker>
sudo bash -c "cat > /etc/systemd/system/availd.service" <<EOF
[Unit]
Description=Avail Validator
After=network.target
StartLimitIntervalSec=0
[Service]
User=$USER
Type=simple
Restart=always
RestartSec=120
ExecStart=$(which avail) \
--base-path $HOME/.avail/data/ \
--node-key-file "$HOME/.avail/node-key" \
--port 45333 \
--rpc-port 9945 \
--chain goldberg \
--validator \
--name $MONIKER \
--telemetry-url 'ws://telemetry.avail.tools:8001/submit/ 0'
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable availd
systemctl restart availd && journalctl -u availd -f -o cat
# Check your session-key
curl -H "Content-Type: application/json" -d '{"id":1, "jsonrpc":"2.0", "method": "author_rotateKeys", "params":[]}' http://localhost:9945