首页后端开发Pythonpython 简单区块链

python 简单区块链

时间2023-07-26 05:46:03发布访客分类Python浏览514
导读:区块链是近年来备受瞩目的技术,而Python 作为一门易学易用的编程语言,可用于开发简单的区块链。下面我们来实现一个基于Python 的简单区块链。import hashlibimport jsonfrom time import time...

区块链是近年来备受瞩目的技术,而Python 作为一门易学易用的编程语言,可用于开发简单的区块链。

下面我们来实现一个基于Python 的简单区块链。

import hashlibimport jsonfrom time import timeclass BlockChain:def __init__(self):self.chain = []self.current_transactions = []# 创建创世块self.new_block(previous_hash=1, proof=100)def new_block(self, proof, previous_hash=None):"""创建一个新的块,并将它添加到链上:param proof:工作证明算法提供的证明值:param previous_hash: (可选)前一个块的hash值:return:新的块"""block = {
'index': len(self.chain) + 1,'timestamp': time(),'transactions': self.current_transactions,'proof': proof,'previous_hash': previous_hash or self.hash(self.chain[-1]),}
# 将交易列表重置为空self.current_transactions = []self.chain.append(block)return blockdef new_transaction(self, sender, recipient, amount):"""创建新的交易,并添加到transaction列表中:param sender: 发送方的地址:param recipient: 接收方的地址:param amount: 交易金额:return:返回当前块的索引"""self.current_transactions.append({
'sender': sender,'recipient': recipient,'amount': amount,}
    )return self.last_block['index'] + 1@staticmethoddef hash(block):"""对块进行sha256加密,生成hash值:param block:块:return:哈希值"""# 必须保证字典排列一致性,否则会得到不同的hash值block_string = json.dumps(block, sort_keys=True).encode()return hashlib.sha256(block_string).hexdigest()@propertydef last_block(self):# 获取最后一个块return self.chain[-1]

以上代码实现了一个简单的区块链的基本功能,包括新建一个区块、创建新的交易、对块进行 sha256 加密等操作。如需深度了解区块链,可在此基础上继续扩展。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: python 简单区块链
本文地址: https://pptw.com/jishu/330299.html
css动画效果+点击按钮(css动画效果 点击按钮不见了) h5 css3 动态旋转

游客 回复需填写必要信息