学习Python时,参考国外大神的Python区块链实现
-
什么是区块链 区块链是很多区块链接起来,组成的一个“链条”,区块链上的每个区块都有相同的数据结构,并通过算法保证每个区块的数据不可或者难于被修改,所以他对用户来说是比较可信的。区块链主要解决的问题也是信任问题(以当前的理解是这样的,可能还有其他主要解决问题)
-
那区块是什么样的?
block = {
'index': 1, //每个区块在区块链上的索引,你可以把他看做mysql的主键id
'timestamp': 1506057125.900785, //事件产生时的时间戳
'transactions': [ //这一整块是事件的具体内容
{
'sender': "8527147fe1f5426f9dd545de4b27ee00", //事件发起者或者发送者标识
'recipient': "a77f5cdfa2934df3954a5c7c7da5df1f", //事件接受者标识
'amount': 5, //涉及金额或者数额
}
],
'proof': 324984774000, //证据
'previous_hash': "2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824" //前一个事件数据的hash值
}
- 区块链怎样保证数据不可修改?
block.previous_hash 区块中的这个数据是用来存贮前一个事件数据的hash值,如果前一个区块数据被修改,那么这个值就会发生变化,进而这个值对应的区块的值也会变化,那么他对应的下一个区块的值也需要发生变化....... 从而引起此区块以后所有的区块都发生变化,不然就不能相互对应。这样就提高了修改成本,修改的时候也会去校验后一个区块的previou_hash是否正确