用python生成Merkle tree
时间: 2024-05-07 14:22:49 浏览: 218
python-merkle-tree
生成 Merkle 树的 Python 代码如下:
```python
import hashlib
def merkle_tree(txns):
if len(txns) % 2 != 0:
txns.append(txns[-1])
tree = []
for txn in txns:
tree.append(hashlib.sha256(txn.encode('utf-8')).hexdigest())
while len(tree) > 1:
temp = []
for i in range(0, len(tree)-1, 2):
temp.append(hashlib.sha256((tree[i]+tree[i+1]).encode('utf-8')).hexdigest())
tree = temp
return tree[0]
```
其中,`txns` 是一个包含所有交易信息的列表。首先判断列表长度是否为偶数,如果不是,则复制最后一项,使其变为偶数长度。然后,将每个交易信息进行哈希值计算,将结果存储在列表 `tree` 中。接着,使用 while 循环逐层将相邻的哈希值合并,直到只剩下一个哈希值为止,即为 Merkle 根。最后返回 Merkle 根的哈希值。
阅读全文