Переменные хеши в питоне
Я пытаюсь реализовать дерево Меркель в Python. Вот мой текущий код (Incomplete)
Код:
from random import randint
import math
import sys
#First create a leaf node with some data
#Creates the Hash of L1
class Leaf():
def __init__(self,x):
self.data = x
self.recompute()
def write(self,new_data):
self.data = new_data
def recompute(self):
self.hash = str(abs(hash(self.data)))
return self.hash
#Node will have a left and right leaf
class Node():
def __init__(self,left_node,right_node):
self.hash = None
self.left = left_node
self.right = right_node
def recompute(self):
#Hash the left and right first, recursively
#l = self.left.recompute()
#Hash the left and right first, recursively
#r = self.right.recompute()
print(self.left)
print(self.right)
self.hash = str(abs(hash(self.left.recompute()+self.right.recompute())))
return self.hash
#Add some data to one of the leaf node
l1 = Leaf("left")
l2 = Leaf("right")
print(l1)
print(l2)
#Generates the Hash
#print(leaf.recompute())
node = Node(l1,l2)
print(node.recompute())
Выход:
mohit@mohit-LIFEBOOK-UH552:~/Documents/python/merkeltree$ python3 main.py
<__main__.Leaf object at 0x7fe80bc21748>
<__main__.Leaf object at 0x7fe80bc21780>
<__main__.Leaf object at 0x7fe80bc21748>
<__main__.Leaf object at 0x7fe80bc21780>
7573330512381989326
mohit@mohit-LIFEBOOK-UH552:~/Documents/python/merkeltree$ python3 main.py
<__main__.Leaf object at 0x7f11938bf780>
<__main__.Leaf object at 0x7f11938bf7b8>
<__main__.Leaf object at 0x7f11938bf780>
<__main__.Leaf object at 0x7f11938bf7b8>
6285654789845752725
Проблема, с которой я сталкиваюсь, заключается в создании хэша для узла, который меняется каждый раз, когда я выполняю код. Теоретически, если мой ввод статический, вывод должен быть таким же хешем.