Spaces:
Running
Running
Husnain
commited on
✨ [Enhance] Add support for user-defined name in ProofWorker class
Browse files- networks/proof_worker.py +20 -15
networks/proof_worker.py
CHANGED
@@ -37,21 +37,24 @@ class ProofWorker:
|
|
37 |
]
|
38 |
|
39 |
def calc_proof_token(self, seed: str, difficulty: str):
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
self.
|
53 |
-
|
54 |
-
|
|
|
|
|
|
|
55 |
|
56 |
|
57 |
if __name__ == "__main__":
|
@@ -59,5 +62,7 @@ if __name__ == "__main__":
|
|
59 |
seed, difficulty = "0.42665582693491433", "05cdf2"
|
60 |
worker = ProofWorker(user_name)
|
61 |
proof_token = worker.calc_proof_token(seed, difficulty)
|
|
|
62 |
print(f"proof_token: {proof_token}")
|
|
|
63 |
# python -m networks.proof_worker
|
|
|
37 |
]
|
38 |
|
39 |
def calc_proof_token(self, seed: str, difficulty: str):
|
40 |
+
try:
|
41 |
+
config = self.get_config()
|
42 |
+
diff_len = len(difficulty) // 2
|
43 |
+
for i in range(100000):
|
44 |
+
config[3] = i
|
45 |
+
json_str = json.dumps(config)
|
46 |
+
base = base64.b64encode(json_str.encode()).decode()
|
47 |
+
hasher = sha3_512()
|
48 |
+
hasher.update((seed + base).encode())
|
49 |
+
hash_val = hasher.digest().hex()
|
50 |
+
if hash_val[:diff_len] <= difficulty:
|
51 |
+
return "gAAAAAB" + base
|
52 |
+
self.proof_token = (
|
53 |
+
self.proof_token_prefix + base64.b64encode(seed.encode()).decode()
|
54 |
+
)
|
55 |
+
return self.proof_token
|
56 |
+
except Exception as e:
|
57 |
+
return str(e)
|
58 |
|
59 |
|
60 |
if __name__ == "__main__":
|
|
|
62 |
seed, difficulty = "0.42665582693491433", "05cdf2"
|
63 |
worker = ProofWorker(user_name)
|
64 |
proof_token = worker.calc_proof_token(seed, difficulty)
|
65 |
+
decoded_proof_token = base64.b64decode(proof_token.encode()).decode()
|
66 |
print(f"proof_token: {proof_token}")
|
67 |
+
print(f"decoded_proof_token: {decoded_proof_token}")
|
68 |
# python -m networks.proof_worker
|