Tenderduty is a comprehensive monitoring tool for Tendermint chains. Its primary function is to alert a validator if they are missing blocks, and has many other features.
Preparing the server for installation (one command)
sudo apt update && sudo apt upgrade -y && \
sudo apt install curl build-essential git wget jq make gcc tmux htop nvme-cli pkg-config libssl-dev libleveldb-dev tar clang bsdmainutils ncdu unzip libleveldb-dev -y
Installing docker (one command)
apt update && \
apt install apt-transport-https ca-certificates curl software-properties-common -y && \
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - && \
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable" && \
apt update && \
apt-cache policy docker-ce && \
sudo apt install docker-ce -y && \
docker --version
Installing Tenderduty
mkdir tenderduty && cd tenderduty
docker run --rm ghcr.io/blockpane/tenderduty:latest -example-config >config.yml
Download the config optimized for OKP4 and add the necessary values
wget -O $HOME/tenderduty/config.yml "https://github.com/cryptobtcbuyer/Testnet_guides/blob/main/OKP4/config.yml"
nano $HOME/tenderduty/config.yml
You need to insert your valoper address
#valoper_address: okp4valoper...
For more reliability, you can add more RPC
Then to exit hit the following keys:
- To exit your config.yml file: CTRL + X
- To select yes to save your modified file: Y
- To confirm the file name and exit: ENTER
Run the container after editing the config
docker run -d --name tenderduty -p "8888:8888" -p "28686:28686" --restart unless-stopped -v $(pwd)/config.yml:/var/lib/tenderduty/config.yml ghcr.io/blockpane/tenderduty:latest
Check logs
docker logs -f --tail 20 tenderduty
Open monitoring dashboard in the browser
# find out your address and paste it into the browser
echo -e "\033[0;32mhttp://$(wget -qO- eth0.me):8888/\033[0m"
# http://120.120.120.120:8888/
Tenderduty can send notifications about missed blocks to Telegram Group.
The first thing we need to do is create our own bot. Launch the@botfather. Enter the /newbot
command and follow the prompts.
You will create a bot and get an api key that you need to keep in a safe place and not show to anyone.
Create a group and invite the bot you just created to join it.
And to allow the bot to post messages you need to make it an admin.To do this, open the group menu and select the Manage group
section and then Administrators
.
You need to link the bot and the channel to your Tenderduty configuration. To do so, you need to retrieve the channel ID from your newly created group.
Launch the bot @username_to_id_bot and send him an invitation to your group.
To get a link to the group, go back to the menu Manage group
and select the section Invite links
After you send the link, the bot will send you the ID of your group
Add the group id and api key that you received from the @botfather to the config
Restart the container and check logs
docker restart tenderduty
docker logs -f --tail 20 tenderduty
You will receive alerts if the node starts skipping blocks or the RPC server crashes
Tenderduty can send notifications about missed blocks to Discord.
To do this, you need to create a new server and new channel.
Open the server menu and select Integration section and go to the webhooks.
Create a webhook, copy the URL and paste it into the config.
Restart the container and check logs
docker restart tenderduty
docker logs -f --tail 20 tenderduty
You will receive alerts if the node starts skipping blocks or the RPC server crashes