说明
本文操作是centos环境下操作,其他linux版本/mac环境类似
pow,proof of work,工作量证明,简单理解就是做一件事情,这件事情要求有一定难度,但是否满足要求却极其容易验证。比如如下代码:1
2
3
4
5
6
7
8#the number must be difficult to find but easy to verify
from hashlib import sha256
x = 5
y = 0
while sha256(f'{x*y}'.encode()).hexdigest()[-1] != "0":
y += 1
print(f'the solution is y = {y}')
注意,上述代码需要再python3的环境可以直接执行,
上面代码比较简单,就是寻找一个满足一定条件的数字:与5乘积的sha256的哈希值的16进制最后一位为0,这个可以认为就是一个pow.1
2>>> sha256('105'.encode()).hexdigest()
'1253e9373e781b7500266caa55150e08e210bc8cd8cc70d89985e3600155e860'