原创: Leoxin 菜鸟学Python
最近区块链又开始火起来来啦,其实对于我们码农来说,除了平时埋头苦干,对新技术需要保持一定敏感性!每一种新的技术的出现都和未来的产业发展非常相关,蕴含着巨大的机会,除了干活还要扩张自己的眼界,对自己大有裨益!
那作为当下最火的语言Python,其实可以干很多事情,今天我们用Python来简单的实现一个区块链吧,想想都觉得很酷!
1什么是区块
首先区块链就是一种去中心化的分布式账本数据库,简单说就是一组区块组合的链条。那么里面每一个单元就是区块:
图片来源于天善学院
区块上面有几个重要的属性:一个数据data,一个pre_hash和自身的hash:
1).我们用hashlib这个库函数来处理hash计算操作
2).新建一个Block类,来表示区块,里面有两个属性(一个pre_hash,一个data)
3).这个为了简便用了类属性@property装饰器来除了hash的值,即当我用block.hash=xxx的时候,会系统自动调用这个hash函数。
4).这个hash函数很关键,以为你区块链里面的都是用sha256来加密的,也是安全性比较高的一种加密方式,我们最后会得到一个十六进制数据字符串值。
区块中有一个非常特殊,就是创世区块!它是所有区块里面的头,他是父区块,因此没有pre_hash
#创世区块 #其中第一个区块,也叫创世区块,它是一个特殊的区块,没有父区块 def create_genesis_block(): return Block(data="Genesis Block",prev_hash="")
2定义一个区块链
我们上面已经定义了区块,下面来定义一个区块链,把一个一个区块连起来!