使用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))