构建区块链
前言
小编认为学习区块链如何工作的最快方法是建立一个区块链。虽然网上有很多教程或视频,小编也一一浏览过,但是觉得那些示例效果…小编喜欢边做边学,小编希望在看过这篇文章之后您将拥有一个运行正常的区块链,并对它们的工作原理有扎实的了解。
请记住!!!区块链是一个不变的顺序记录链,称为块。它们可以包含事务,文件或您真正喜欢的任何数据。但是重要的是,它们使用哈希值链接在一起。
前期准备
pip install Flask==0.12.2 requests==2.18.4
开始流程
步骤1:建立区块链
打开你最喜欢的文本编辑器或IDE,我个人❤️ PyCharm。创建一个新文件,名为blockchain.py(代表区块链)。
创建一个区块链类
小编在这里创建一个 Blockchain类,其构造函数创建一个初始的空列表(用于存储我们的区块链),并创建另一个用于存储事务。
class Blockchain(object):
def __init__(self):
self.chain = []
self.current_transactions = []
def new_block(self):
# Creates a new Block and adds it to the chain
pass
def new_transaction(self):
# Adds a new transaction to the list of transactions
pass
@staticmethod
def hash(block):
# Hashes a Block
pass
@property
def last_block(self):
# Returns the last Block in the chain
pass
Blockchain类负责管理链。它将存储事务,并具有一些用于将新块添加到链中的辅助方法。
块看起来像什么?
每个Block都有一个索引,一个时间戳(以Unix时间表示),一个事务列表,一个证明以及前一个Block的哈希值。
这是单个块的外观示例:
block = {
'index': 1,
'timestamp': 1506057125.900785,
'transactions': [
{
'sender': "8527147fe1f5426f9dd545de4b27ee00",
'recipient'