区块链随机数值随每次负载而变化

时间:2019-08-26 07:10:00

标签: python json hash

我一直在研究具有基本随机数的区块链,但是每个应用程序重新启动时,随机数的值都会改变,而且我不知道为什么

我尝试了各种检查方式,例如while循环时,如果hash以'0'* difficulty开始,则不显示

def hash_block(self):
        sha = hashlib.sha512()
        sha.update( (str(self.index) + str(self.timestamp) + str(self.data) + str(self.previous_hash)).encode("utf-8") + str(self.nonce).encode() )
        valid = False
        if(sha.hexdigest().startswith('0'*self.difficulty)):
            valid = True
        while not valid:
            self.nonce += 1
            sha.update( (str(self.index) + str(self.timestamp) + str(self.data) + str(self.previous_hash)).encode("utf-8") + str(self.nonce).encode() )
            if(sha.hexdigest().startswith('0'*self.difficulty)):
                valid = True
        return sha.hexdigest()

我希望随机数在应用程序重新启动之前和之后保持静态,但是当再次加载该值时,该值似乎会发生变化,我已经从JSON输出文件中进行了检查

1 个答案:

答案 0 :(得分:0)

让晚上整夜睡觉并再次解决之后,我发现了问题,该问题是使用sha.update而不是清除先前的结果!