Guest User

Untitled

a guest
Apr 20th, 2018
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.12 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. POST_INIT_SYNC_DELAY=60
  4. POLL_DELAY=60
  5. STALL_THRESHOLD=5
  6. BTCCTL='docker exec btcd btcctl --rpcuser=YOUR_USER --rpcpass=YOUR_PASS --rpccert=/rpc/rpc.cert '
  7.  
  8. stalls=0
  9. echo "Starting watcher..."
  10. while true; do
  11. start=`$BTCCTL getinfo | jq -r .blocks`
  12. sleep $POLL_DELAY
  13. end=`$BTCCTL getinfo | jq -r .blocks`
  14. echo "Processed $((end - start)) blocks in the last $POLL_DELAY seconds"
  15. if [[ "$start" == "$end" ]]; then
  16. if (( stalls > STALL_THRESHOLD )); then
  17. echo "Too many stalls detected. Restarting btcd..."
  18. docker restart btcd
  19. stalls=0
  20. else
  21. syncnode=`eval "$BTCCTL getpeerinfo | jq -r '.[] | select(.syncnode == true) | .addr' | cut -f1 -d:"`
  22. if [ -z "$syncnode" ]; then
  23. echo "Stall detected, but no syncnode found. Restarting btcd..."
  24. docker restart btcd
  25. stalls=0
  26. else
  27. echo "Stall detected! Evicting potentially bad node $syncnode"
  28. eval "$BTCCTL node disconnect $syncnode"
  29. stalls=$(( stalls + 1 ))
  30. fi
  31. fi
  32. fi
  33. done
Add Comment
Please, Sign In to add comment