2020-05-10 21:11:21 -03:00
|
|
|
#Developer: Curly60e
|
|
|
|
|
#Python BlockClock its a clock of the Bitcoin blockchain.
|
2020-05-13 19:47:58 -03:00
|
|
|
#Version: 0.0.3
|
2020-05-10 21:11:21 -03:00
|
|
|
|
2020-05-06 16:34:55 -03:00
|
|
|
import os
|
|
|
|
|
import time as t
|
2020-05-08 08:37:26 -03:00
|
|
|
from art import *
|
2020-05-06 16:34:55 -03:00
|
|
|
|
2020-05-09 18:22:43 -03:00
|
|
|
|
2020-05-08 08:37:26 -03:00
|
|
|
def getblock(): # get access to bitcoin-cli with the command getblockchaininfo
|
2020-05-07 10:59:47 -03:00
|
|
|
bitcoincli = " getblockchaininfo"
|
|
|
|
|
os.system(path + bitcoincli)
|
|
|
|
|
|
2020-05-08 08:37:26 -03:00
|
|
|
def getblockcount(): # get access to bitcoin-cli with the command getblockcount
|
2020-05-07 10:59:47 -03:00
|
|
|
bitcoincli = " getblockcount"
|
2020-05-06 17:04:20 -03:00
|
|
|
os.system(path + bitcoincli)
|
|
|
|
|
|
2020-05-08 08:37:26 -03:00
|
|
|
def clear(): # clear the screen
|
2020-05-06 16:34:55 -03:00
|
|
|
os.system('cls' if os.name=='nt' else 'clear')
|
2020-05-10 21:11:21 -03:00
|
|
|
|
|
|
|
|
#-------------------From this line the program starts----------------------
|
2020-05-06 17:04:20 -03:00
|
|
|
|
2020-05-09 18:22:43 -03:00
|
|
|
def connected(info): # here we complete the connection to the external node
|
|
|
|
|
if info == "Y" or info == "y":
|
2020-05-13 19:47:58 -03:00
|
|
|
clear()
|
|
|
|
|
prt()
|
|
|
|
|
print("\nAdd your node information\n")
|
2020-05-10 21:11:21 -03:00
|
|
|
userconn()
|
2020-05-09 18:22:43 -03:00
|
|
|
else:
|
2020-05-13 19:47:58 -03:00
|
|
|
menu()
|
2020-05-09 18:22:43 -03:00
|
|
|
|
|
|
|
|
def nodeinfo():
|
|
|
|
|
connected(input("Are you sure you want to connect to a node? Y/n: ")) # call 'connected' function to make the connection with the node information
|
2020-05-13 19:47:58 -03:00
|
|
|
|
2020-05-09 18:22:43 -03:00
|
|
|
def artist(): # here we convert the result of the command 'getblockcount' on a random art design
|
|
|
|
|
custom = input("Do you want random designs? Y/n: ")
|
|
|
|
|
if custom == "Y" or custom == "y":
|
|
|
|
|
while True:
|
|
|
|
|
clear()
|
2020-05-10 21:11:21 -03:00
|
|
|
design()
|
2020-05-09 18:22:43 -03:00
|
|
|
tmp()
|
2020-05-07 10:59:47 -03:00
|
|
|
else:
|
2020-05-09 18:22:43 -03:00
|
|
|
while True:
|
|
|
|
|
clear()
|
|
|
|
|
getblockcount()
|
|
|
|
|
tmp()
|
2020-05-10 21:11:21 -03:00
|
|
|
|
|
|
|
|
def design():
|
|
|
|
|
bitcoinclient = path + " getblockcount"
|
|
|
|
|
block = os.popen(str(bitcoinclient)).read() # 'getblockcount' convert to string
|
|
|
|
|
b = block
|
|
|
|
|
tprint(b, font="rnd-large")
|
|
|
|
|
|
|
|
|
|
def userconn():
|
|
|
|
|
user = input("USER@NODE: ")
|
|
|
|
|
s = input("Do you want to see the blockheight? Y/n: ")
|
|
|
|
|
if s == "Y" or s == "y":
|
|
|
|
|
clear()
|
|
|
|
|
c = input("Do you want to see custom design? Y/n: ")
|
|
|
|
|
if c == "Y" or c == "y":
|
|
|
|
|
while True: # connection via ssh
|
|
|
|
|
clear()
|
|
|
|
|
sshb = "ssh " + user + " '" + "{}".format(path) + "'" + " getblockcount"
|
|
|
|
|
sshc = os.popen(str(sshb)).read()
|
|
|
|
|
sshd = sshc
|
|
|
|
|
tprint(sshd, font="rnd-large")
|
|
|
|
|
tmp()
|
|
|
|
|
else:
|
2020-05-13 19:47:58 -03:00
|
|
|
menu()
|
|
|
|
|
|
|
|
|
|
else:
|
|
|
|
|
while True: # connection via ssh
|
|
|
|
|
clear()
|
|
|
|
|
sshb = "ssh " + user + " '" + "{}".format(path) + "'" + " getblockchaininfo"
|
|
|
|
|
os.system(sshb)
|
|
|
|
|
tmp()
|
2020-05-09 18:22:43 -03:00
|
|
|
|
2020-05-13 19:47:58 -03:00
|
|
|
|
2020-05-09 18:22:43 -03:00
|
|
|
def tmp():
|
2020-05-10 18:34:30 -03:00
|
|
|
t.sleep(15)
|
2020-05-07 10:59:47 -03:00
|
|
|
|
|
|
|
|
|
2020-05-13 19:47:58 -03:00
|
|
|
def menu():
|
|
|
|
|
clear()
|
|
|
|
|
prt()
|
|
|
|
|
print("""\t\t
|
|
|
|
|
Python BlockClock Menu
|
|
|
|
|
Version 0.0.3
|
|
|
|
|
|
|
|
|
|
A. Connect to an external node through SSH
|
|
|
|
|
B. Show Blockchain information in your own node
|
|
|
|
|
C. Run BlockClock in your own node
|
|
|
|
|
\n\n""")
|
|
|
|
|
menuA(input("Select option: "))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def menuA(menu):
|
|
|
|
|
if menu == "A" or menu == "a":
|
|
|
|
|
nodeinfo()
|
|
|
|
|
elif menu == "B" or menu == "b":
|
|
|
|
|
while True:
|
|
|
|
|
clear()
|
|
|
|
|
getblock()
|
|
|
|
|
tmp()
|
|
|
|
|
elif menu == "C" or menu == "c":
|
|
|
|
|
artist()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def prt():
|
|
|
|
|
tprint("BlockClock", font="rnd-large") # random title design
|
|
|
|
|
|
|
|
|
|
|
2020-05-09 18:22:43 -03:00
|
|
|
while True: # Loop
|
|
|
|
|
clear() # call clear function that clears the screen
|
2020-05-13 19:47:58 -03:00
|
|
|
prt()
|
2020-05-09 18:22:43 -03:00
|
|
|
print("Welcome to Python BlockClock\n\n")
|
|
|
|
|
path = input("Insert the Path to Bitcoin-Cli: ") # path to the bitcoin-cli
|
2020-05-13 19:47:58 -03:00
|
|
|
clear()
|
|
|
|
|
menu()
|
|
|
|
|
|