pow共识算法,
原始实现(python2版本)
https://github.com/santisiri/proof-of-work
依据python3特性改进后:
#!/usr/bin/env python
#工作证明算法示例
导入摘要算法
导入时间
max _ nonce=2 * * 32 # 40亿
延期工作证明(表头,难度_位):
target=2 ** (256难度位)
对于范围内的随机数(max_nonce):
hash _ result=哈希表。sha 256((str(header)str(nonce)).编码( utf-8 ).hexdigest()
if int(hash_result,16)目标:
打印(成功,随机数为% d“% nonce”)
打印(哈希是% s“% hash _ result”)
返回(哈希结果,随机数)
打印(在%d(最大随机数)次尝试% nonce后失败)
返回随机数
if __name__==__main__ :
nonce=0
hash_result=
对于范围(32)内的难度位:
难度=2 **难度_比特
打印()
打印(难度:%ld (%d位) %(难度,难度_位) )
打印(开始搜索.)
start_time=time.time()
new_block=带有事务的测试块哈希结果
(hash_result,nonce)=proof_of_work(new_block,cave _ bits)
end_time=time.time()
经过时间=结束时间-开始时间
打印(运行时间:%.4f秒% elapsed _ time’)
如果已用时间为0:
hash _ power=float(int(nonce)/elapsed _ time)
打印(哈希能力:%ld每秒哈希数% hash _ power’)
运行结果:
注:
具体原理不知。
参考:
简述目前相对成熟的区块链共识算法
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。