Omnibus commited on
Commit
4dcd66c
·
1 Parent(s): 686c625

Create bc_utils.py

Browse files
Files changed (1) hide show
  1. bc_utils.py +115 -0
bc_utils.py ADDED
@@ -0,0 +1,115 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ def bc_transactions(block):
2
+ #mes, out = issue_tokens(sender,recipient,amount)
3
+ print (f'block:: {block}')
4
+ try:
5
+ blockchain.new_transaction(block)
6
+ message = "Transaction Added to Pool"
7
+ data = pd.DataFrame(blockchain.trans_data_out)
8
+ except Exception as e:
9
+ message = e
10
+ data = None
11
+ return data,message
12
+
13
+ def create_chain(create=None):
14
+ global blockchain
15
+ blockchain = Blockchain(chain_load=main_chain,create=create)
16
+ #blockchain.reset(create=create)
17
+ return "New Chain Created",None,display_chain()
18
+
19
+ def display_chain():
20
+ response = {'chain': blockchain.chain,
21
+ 'length': len(blockchain.chain)}
22
+ return response
23
+
24
+ def mine_block(chain_r=None,chain_n=None):
25
+ if chain_n=="":
26
+ chain_n = chain_d
27
+ previous_block = blockchain.print_previous_block()
28
+ previous_proof = previous_block['proof']
29
+ proof = blockchain.proof_of_work(previous_proof)
30
+ previous_hash = blockchain.hash(previous_block)
31
+ block = blockchain.create_block(proof, previous_hash,chain_r,chain_n)
32
+
33
+ response = {'message': 'A block is MINED',
34
+ 'index': block['index'],
35
+ 'timestamp': block['timestamp'],
36
+ 'proof': block['proof'],
37
+ 'previous_hash': block['previous_hash']}
38
+ message = "A block is MINED"
39
+ show_chain = display_chain()
40
+ if len(blockchain.chain) > 1000:
41
+ blockchain.reset()
42
+ response = None
43
+ show_chain=display_chain()
44
+ message = "New Chain Created at Max 20 Blocks"
45
+ return response, show_chain,pd.DataFrame(blockchain.pending_transactions), message
46
+
47
+ def valid():
48
+ valid,ind,mes = blockchain.chain_valid(blockchain.chain)
49
+ if valid:
50
+ response = 'The Blockchain is valid.'
51
+ z=True
52
+ else:
53
+ response = f'Blockchain is not valid. {mes} at Index {ind}'
54
+ z=False
55
+ return response,z
56
+
57
+ def get_chain(repo_name=None,chain_name=None,token=None):
58
+ if repo_name == "":
59
+ repo_name = repo_d
60
+ if chain_name=="":
61
+ chain_name = chain_d
62
+ try:
63
+ r = requests.get(f'{main_chain}{chain_name}')
64
+ #create_chain(load=r.text)
65
+ global blockchain
66
+ blockchain = Blockchain(chain_load=main_chain,load=r.text)
67
+ response = {'chain': blockchain.chain,
68
+ 'length': len(blockchain.chain)}
69
+ message = f"Blockchain loaded from: {main_chain}{chain_name}"
70
+ return response,message
71
+ except:
72
+ message = f"Error loading from: {src}"
73
+ return ["Error Loading Chain"],message
74
+ def checkp(inp):
75
+ if inp == pa:
76
+ return gr.update(visible=False), gr.update(visible=True)
77
+ elif inp != pa:
78
+ return gr.update(visible=True), gr.update(visible=False)
79
+ def add_node(this_space,repo,space,chain_file):
80
+ #print(f"{api.whoami(['name'])}")
81
+ #repo = f'omnibus/{space}'
82
+ is_valid='True'
83
+ r = requests.get(f'{main_nodes}')
84
+ try:
85
+ lod = json.loads(r.text)
86
+ except:
87
+ lod=[]
88
+ pass
89
+ block = {'index': len(lod) + 1,
90
+ 'timestamp': str(datetime.datetime.now()),
91
+ 'url': f'https://huggingface.co/datasets/{repo}/{space}/raw/main/{chain_file}',
92
+ 'valid': f'{is_valid}'}
93
+ lod.append(block)
94
+
95
+ json_object = json.dumps(lod, indent=4)
96
+ with open("tmp1.json", "w") as outfile:
97
+ outfile.write(json_object)
98
+ try:
99
+ api.upload_file(
100
+ path_or_fileobj="tmp1.json",
101
+ path_in_repo=main_nodes.split('main/',1)[1],
102
+ repo_id=main_nodes.split('datasets/',1)[1].split('/raw',1)[0],
103
+ token=token_self,
104
+ repo_type="dataset",
105
+ )
106
+ os.remove("tmp1.json")
107
+
108
+ except Exception as e:
109
+ pass
110
+
111
+
112
+
113
+ #api = HfApi(token=token)
114
+ repo = main_balance.split('datasets/',1)[1].split('/raw',1)[0].split('/',1)[0]
115
+ name = main_balance.split('datasets/',1)[1].split('/raw',1)[0].split('/',1)[1]