mirror of
https://github.com/fluencelabs/tendermint-demo
synced 2025-03-15 15:50:51 +00:00
47 lines
1.2 KiB
Python
Executable File
47 lines
1.2 KiB
Python
Executable File
import sys, urllib, json, datetime, time
|
|
|
|
def uvarint(buf):
|
|
x = long(0)
|
|
s = 0
|
|
for b in buf:
|
|
if b < 0x80:
|
|
return x | long(b) << s
|
|
x |= long(b & 0x7f) << s
|
|
s += 7
|
|
return 0
|
|
|
|
def parse_utc(utctxt):
|
|
#tz conversion may be wrong
|
|
now_timestamp = time.time()
|
|
offset = datetime.datetime.fromtimestamp(now_timestamp) - datetime.datetime.utcfromtimestamp(now_timestamp)
|
|
dt, _, tail = utctxt.partition(".")
|
|
if tail == "":
|
|
dt, _, _ = utctxt.partition("Z")
|
|
tail = "0Z"
|
|
pure = int((datetime.datetime.strptime(dt, '%Y-%m-%dT%H:%M:%S') + offset).strftime("%s"))
|
|
ns = int(tail.rstrip("Z").ljust(9, "0"), 10)
|
|
return pure + ns / 1e9
|
|
|
|
def format_bytes(value):
|
|
if value < 1024:
|
|
return "%.0f B" % value
|
|
elif value < 1024 * 1024:
|
|
return "%.3f KiB" % (value / 1024.0)
|
|
else:
|
|
return "%.3f MiB" % (value / 1024.0 / 1024.0)
|
|
|
|
def read_json(url):
|
|
response = urllib.urlopen("http://" + url)
|
|
return json.loads(response.read())
|
|
|
|
def get_sync_info(tmaddress):
|
|
status = read_json(tmaddress + "/status")["result"]
|
|
if "sync_info" in status: # compatibility
|
|
return status["sync_info"]
|
|
else:
|
|
return status
|
|
|
|
def get_max_height(tmaddress):
|
|
return get_sync_info(tmaddress)["latest_block_height"]
|
|
|