Skip to content

Instantly share code, notes, and snippets.

@QCPOLstakepool
Created October 31, 2023 14:05
Show Gist options
  • Save QCPOLstakepool/6681d4139617371b7f35b0ab868ea390 to your computer and use it in GitHub Desktop.
Save QCPOLstakepool/6681d4139617371b7f35b0ab868ea390 to your computer and use it in GitHub Desktop.
#!/bin/bash
export LD_LIBRARY_PATH=/usr/local/lib
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
export CARDANO_NODE_SOCKET_PATH=/home/core/cardano-my-node/db/socket
JSON_DIRECTORY=$1
if [ ! -d "$JSON_DIRECTORY" ]; then
echo "Le répertoire $JSON_DIRECTORY n'existe pas."
exit 1
fi
LOG_FILE="$JSON_DIRECTORY/cronjob_cncli.log"
CURRENT_TIP=$(/usr/local/bin/cardano-cli query tip --mainnet)
CURRENT_EPOCH=$(echo $CURRENT_TIP | jq -r '.epoch')
SLOTS_TO_END=$(echo $CURRENT_TIP | jq -r '.slotsToEpochEnd')
CURRENT_SLOT=$(echo $CURRENT_TIP | jq -r '.slot')
echo "$(date) ---- Début éxécution" >> $LOG_FILE
echo "$(date) CURRENT_TIP : $CURRENT_TIP" >> $LOG_FILE
echo "$(date) CURRENT_EPOCH : $CURRENT_EPOCH" >> $LOG_FILE
echo "$(date) SLOTS_TO_END : $SLOTS_TO_END" >> $LOG_FILE
echo "$(date) CURRENT_SLOT : $CURRENT_SLOT" >> $LOG_FILE
JSON_FILE="$JSON_DIRECTORY/epoch-$CURRENT_EPOCH.json"
if [ ! -f "$JSON_FILE" ]; then
echo "Le fichier $JSON_FILE n'existe pas." >> $LOG_FILE
echo "$(date) ---- Fin éxécution" >> $LOG_FILE
exit 1
fi
# Parcourir les "assignedSlots"
ASSIGNED_SLOTS=$(cat $JSON_FILE | jq -c '.assignedSlots[]')
for SLOT_INFO in $ASSIGNED_SLOTS; do
ASSIGNED_SLOT=$(echo $SLOT_INFO | jq -r '.slot')
if (( ASSIGNED_SLOT >= (CURRENT_SLOT - 100) && ASSIGNED_SLOT <= (CURRENT_SLOT + 1000) )); then
echo "$(date) Une slot proche est détecté : $ASSIGNED_SLOT." >> $LOG_FILE
echo "$(date) ---- Fin éxécution" >> $LOG_FILE
exit 0
fi
done
# Vérifie si le fichier de l'époque suivante existe
NEXT_EPOCH_FILE="$JSON_DIRECTORY/epoch-$(($CURRENT_EPOCH + 1)).json"
if [ -f "$NEXT_EPOCH_FILE" ]; then
echo "$(date) CNCLI déja éxécuté pour l'epoch $(($CURRENT_EPOCH + 1))" >> $LOG_FILE
elif (( SLOTS_TO_END < 129500 )); then
# Exécute la commande pour cncli
echo "$(date) Éxécution du leaderlog avec cncli-leaderlog.sh" >> $LOG_FILE
cd /home/core/cardano-my-node/cncli/
/home/core/cardano-my-node/cncli/cncli-leaderlog.sh > $NEXT_EPOCH_FILE
ASSIGNED_SLOTS_COUNT=$(jq -r '.assignedSlots | length' $NEXT_EPOCH_FILE)
PAYLOAD="{\"content\": \"Le nombre de blocs assignés pour la prochaine époque ($(($CURRENT_EPOCH + 1))) est de $ASSIGNED_SLOTS_COUNT bloc(s)\"}"
WEBHOOK_URL="https://discord.com/api/webhooks/YOUR_WEBHOOK_URL"
curl -H "Content-Type: application/json" -d "$PAYLOAD" $WEBHOOK_URL
else
echo "$(date) Pas le moment d'éxécuté le script" >> $LOG_FILE
fi
echo "$(date) ---- Fin éxécution" >> $LOG_FILE
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment