Tech Neo技巧沙龙 | 11月25号,九州云/ZStack与您一路商量云时代收集界线治理实践
- # Create the blockchain and add the genesis block
- blockchain = [create_genesis_block()]
- previous_block = blockchain[0]
- # How many blocks should we add to the chain
- # after the genesis block
- num_of_blocks_to_add = 20
- # Add blocks to the chain
- for i in range(0, num_of_blocks_to_add):
- block_to_add = next_block(previous_block)
- blockchain.append(block_to_add)
- previous_block = block_to_add
- # Tell everyone about it!
- print "Block #{} has been added to the blockchain!".format(block_to_add.index)
- print "Hash: {}\n".format(block_to_add.hash)
尽管一些人认为区块链是一个等待问题的解决筹划,但毫无疑问,这种新技巧是计算机的事业。然则,区块链到底是什么呢?
区块链
它是比特币或其他加密泉币进行交易的数字账本,账本按时光次序记录并对外公开。
在更一般的术语中,它是一个公共数据库,新数据存储在一个名为块的容器中,并被添加到一个弗成变链(后来的区块链)中添加了以前的数据。在比特币和其他加密泉币的情况下,这些数据是一组交易记录。当然,数据可所以任何类型的。
区块链技巧已经催生了新的、完全数字化的泉币,如比特币和莱特币,这些泉币并不是由中心当局发行或治理的。是以为那些认为今天的银行体系是骗局或终将掉败的人带来了新的自由。区块链所包含的以太坊技巧对分布式计算进行了变革立异,它惹人了一些有趣的概念,比如智能合约。
在本文中,我将用不到50行的Python2代率攀来做一个简单的区块链。我称它为SnakeCoin。
起首将定义块将是什么样子。在区块链中,每个块都存储一个时光戳和一个索引。在SnakeCoin中,须要把两者都存储起来。为了确保全部区块链的完全性,每个块都有一个主动辨认散列。与比特币一样,每个块的散列将是块索引、时光戳、数据和前块哈希的加密哈希。数据可所以你想要的任何器械。
- import hashlib as hasher
- class Block:
- 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):
- sha = hasher.sha256()
- sha.update(str(self.index) +
推荐阅读
Tech Neo技巧沙龙 | 11月25号,九州云/ZStack与您一路商量云时代收集界线治理实践 物联网与云计算都是基于互联>>>详细阅读
地址:http://www.17bianji.com/lsqh/39207.html
1/2 1