66 lines
2.3 KiB
Bash
Executable File
66 lines
2.3 KiB
Bash
Executable File
#!/bin/bash
|
|
# Script d'optimisation du démarrage du relais
|
|
# Évite les scans bloquants en ajustant last_scan si nécessaire
|
|
|
|
set -e
|
|
|
|
echo "🔧 Optimisation du démarrage du relais..."
|
|
|
|
# Vérifier si le conteneur sdk_relay existe
|
|
if ! docker ps -a --format "table {{.Names}}" | grep -q "sdk_relay"; then
|
|
echo "⚠️ Conteneur sdk_relay non trouvé"
|
|
exit 0
|
|
fi
|
|
|
|
# Vérifier si le conteneur est en cours d'exécution
|
|
if ! docker ps --format "table {{.Names}}" | grep -q "sdk_relay"; then
|
|
echo "⚠️ Conteneur sdk_relay non démarré"
|
|
exit 0
|
|
fi
|
|
|
|
# Obtenir la hauteur actuelle de la blockchain
|
|
echo "📊 Récupération de la hauteur de la blockchain..."
|
|
CURRENT_HEIGHT=$(docker exec sdk_relay curl -s -X POST -H "Content-Type: application/json" -d '{"jsonrpc":"1.0","id":"test","method":"getblockcount","params":[]}' http://bitcoin:38332/ | jq -r '.result' 2>/dev/null || echo "0")
|
|
|
|
if [ "$CURRENT_HEIGHT" = "0" ] || [ "$CURRENT_HEIGHT" = "null" ]; then
|
|
echo "⚠️ Impossible de récupérer la hauteur de la blockchain"
|
|
exit 0
|
|
fi
|
|
|
|
echo "📊 Hauteur actuelle: $CURRENT_HEIGHT"
|
|
|
|
# Vérifier le last_scan actuel
|
|
LAST_SCAN=$(docker exec sdk_relay cat /home/bitcoin/.4nk/default 2>/dev/null | jq -r '.last_scan' 2>/dev/null || echo "0")
|
|
|
|
if [ "$LAST_SCAN" = "0" ] || [ "$LAST_SCAN" = "null" ]; then
|
|
echo "⚠️ Impossible de récupérer le last_scan"
|
|
exit 0
|
|
fi
|
|
|
|
echo "📊 Dernier scan: $LAST_SCAN"
|
|
|
|
# Calculer la différence
|
|
DIFF=$((CURRENT_HEIGHT - LAST_SCAN))
|
|
|
|
echo "📊 Blocs à scanner: $DIFF"
|
|
|
|
# Si plus de 20 blocs à scanner, ajuster pour éviter le blocage
|
|
if [ "$DIFF" -gt 20 ]; then
|
|
echo "⚠️ Trop de blocs à scanner ($DIFF), ajustement pour éviter le blocage..."
|
|
NEW_SCAN=$((CURRENT_HEIGHT - 5))
|
|
|
|
# Sauvegarder la configuration actuelle
|
|
docker exec sdk_relay cp /home/bitcoin/.4nk/default /home/bitcoin/.4nk/default.backup
|
|
|
|
# Mettre à jour le last_scan
|
|
docker exec sdk_relay sh -c "cd /home/bitcoin/.4nk && sed 's/\"last_scan\":$LAST_SCAN/\"last_scan\":$NEW_SCAN/' default > default.new && mv default.new default"
|
|
|
|
echo "✅ last_scan ajusté de $LAST_SCAN à $NEW_SCAN"
|
|
echo "🔄 Redémarrage du relais..."
|
|
docker compose restart sdk_relay
|
|
else
|
|
echo "✅ Nombre de blocs à scanner acceptable ($DIFF)"
|
|
fi
|
|
|
|
echo "✅ Optimisation terminée"
|