Please notice! This is just additional notification service which can NOT be taken as a main source of the Validator control!
In this guide Tenderduty run as a "build from source" binaries via systemd service. Also docker container and docker-compose available as an options. U can find original docs HERE for docker options.
If any commnets or issues U can contact me at Discord - AlexeyM#5409
adduser tenderduty
usermod -aG sudo tenderduty
ssh tenderduty@localhost
sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y && sudo apt install make clang pkg-config libssl-dev build-essential git jq llvm libudev-dev -y
wget https://go.dev/dl/go1.19.linux-amd64.tar.gz \
&& sudo tar -xvf go1.19.linux-amd64.tar.gz \
&& sudo mv go /usr/local \
&& echo "export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin" >> ~/.bash_profile \
&& source ~/.bash_profile \
&& go version
rm go1.19.linux-amd64.tar.gz
git clone https://github.com/blockpane/tenderduty.git
cd tenderduty
go install
wget -qO $HOME/config.yml https://github.com/AlexToTheMoon/AM-Solutions/raw/main/Tenderduty/rebus/config.yml
Open file $HOME/config.yml
find chains:
paragraph, set your valoper address here : valoper_address:
and save file.
sudo tee /etc/systemd/system/tenderduty.service << EOF
[Unit]
Description=Tenderduty
After=network.target
ConditionPathExists=$(which tenderduty)
[Service]
Type=simple
Restart=always
RestartSec=5
TimeoutSec=180
User=$USER
WorkingDirectory=$HOME
ExecStart=$(which tenderduty)
# there may be a large number of network connections if a lot of chains
LimitNOFILE=infinity
# extra process isolation
NoNewPrivileges=true
ProtectSystem=strict
RestrictSUIDSGID=true
LockPersonality=true
PrivateUsers=true
PrivateDevices=true
PrivateTmp=true
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable tenderduty
sudo systemctl start tenderduty
sudo journalctl -u tenderduty -f -o cat
This is how the right logs supposed to look like
By default Tenderduty dashboard run at port 8888
. Just open your browser and open dashboard by typing http://<SERVER_IP_HERE>:8888
Sample of right working dashboard
Create your own group at Telegram where your bot will be sending alert notifications
Find @BotFather user at telegram and create your own Bot (use any available name) Use /newbot
command
>>> PLEASE COPY HTTP API KEY AND SAVE <<<
Find your bot by TG @username and add to your group
Find bot named @JsonViewBot and add to your group
Bot should join group, show your group ID and leave the group.
>>> PLEASE COPY GROUP ID AND SAVE <<<
Open file $HOME/config.yml
find #telegram settings:
paragraph, set some params we saved above:
enabled: yes
api_key: <YOUR_BOT_API_KEY>
channel: <YOUR_GROUP_ID>
Save changes.
Restart tenderduty service
sudo systemctl restart tenderduty
NOTE : If after restart U will find logs like :
Rebus is configured for telegram alerts, but it is not enabled
never mind, it doesn`t mean Telegram notification is not working.
Set up Your Telegram notification settings to receive notifications from created group!
Now we can stop Rebus validator to miss >=5 blocks, and this what we expect to see when missing blocks and then when node back to normal state:
Coming soon...
GOOD LUCK