Skip to content

Instantly share code, notes, and snippets.

@bimalm
Created February 20, 2023 13:53
Show Gist options
  • Save bimalm/396d1185733ac2777db604d6fec94be5 to your computer and use it in GitHub Desktop.
Save bimalm/396d1185733ac2777db604d6fec94be5 to your computer and use it in GitHub Desktop.
helium live node detecter
import requests
import sys
import json
import socket
#Script to generate 'peer sync' command based on currently elected + reachable nodes
#Change the miner binary name here
MINER_NAME="miner1"
#Function to check connectivity
def check_open(ip,port):
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.settimeout(3) #3 secods delay
try:
s.connect((ip, int(port)))
s.shutdown(2)
return True
except:
return False
def main():
url="https://api.helium.io/v1/validators/elected"
res = requests.get(url)
rows = res.json()
for row in rows['data']:
addrs=row['status']['listen_addrs'][0].split("/")
if(check_open(addrs[2],addrs[4])):
print("{} peer sync {}".format(MINER_NAME,row['status']['listen_addrs'][0]))
if __name__ == '__main__':
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment