#!/bin/bash usage() { echo "Usage: $0 <node-ip>" echo "Example: $0 111.222.333.444" echo "Monitors the status of a dYdX node, displaying block height, version, and sync status" exit 1 } # Check if IP address is provided [[ $# -ne 1 ]] && usage probe () { NODE_IP="$1" NODE_INFO=$(curl -s http://${NODE_IP}:1317/cosmos/base/tendermint/v1beta1/node_info) STATUS=$(curl -s http://${NODE_IP}:26657/status) printf "%-18s %s\n" \ "Node moniker:" "$(echo ${NODE_INFO} | jq -r '.default_node_info.moniker')" printf "%-18s %s\n" \ "Node ID:" "$(echo ${NODE_INFO} | jq -r '.default_node_info.default_node_id')" printf "%-18s %s\n" \ "Protocol version:" "$(echo ${NODE_INFO} | jq -r '.application_version.version')" printf "%-18s %s\n" \ "Block height:" "$(echo ${STATUS} | jq -r '.result.sync_info.latest_block_height')" printf "%-18s %s\n" \ "Is catching up:" "$(echo ${STATUS} | jq -r '.result.sync_info.catching_up')" } export -f probe watch -n 0 "probe $1"