python实现简单区块链

使用python2.7环境实现
import hashlib as hasher
import datetime as date

#首先定义一个区块类
class Block:
# 在实例化的过程中(创造区块),会有本区块的索引,时间戳,区块数据,以及父区块hash
def init(self,index,timestamp,data,previous_hash):
self.index = index
self.timestamp = timestamp
self.data = data
self.previous_hash = previous_hash
self.hash = self.hash_block()

def hash_block(self):
# 采用sha256进行加密
sha = hasher.sha256()
sha.update(str(self.index) + str(self.timestamp) + str(self.data) + str(self.previous_hash))
# 返回十六进制结果,起到双重加密的作用
return sha.hexdigest()

#创建创世区块
def create_god_block():
# 手动构造区块链,索引为0,时间戳获取,区块数据,父hash赋值
return Block(0,date.datetime.now(),‘Genesis Block’,“0”)

#实现创世区块后区块创建
def next_block(last_block):
this_index = last_block.index + 1
this_timestamp = date.datetime.now()
this_data = “hello world” + str(this_index)
this_fa_hash = last_block.hash
return Block(this_index,this_timestamp,this_data,this_fa_hash)

#使用列表实现区块链的创建
blockchain = [create_god_block()]
previous_block = blockchain[0]

#定义区块链最终数量,并添加块到链上
num_totalblock = 20
for i in range(0,num_totalblock):
new_block = next_block(previous_block)
blockchain.append(new_block)
previous_block = new_block
print(‘Block #{} has been added to the blockchain’.format(new_block.index))
print(‘Hash: {}\n’.format(new_block.hash))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值