以下是一个使用Python 2.x实现的简单区块链示例代码,总计不到50行:
`python
import hashlib
import json
import time
class Block:
def init(self, index, transactions, timestamp, previoushash):
self.index = index
self.transactions = transactions
self.timestamp = timestamp
self.previoushash = previoushash
self.hash = self.calculatehash()
def calculatehash(self):
blockstring = json.dumps({
"index": self.index,
"transactions": self.transactions,
"timestamp": self.timestamp,
"previoushash": self.previoushash
}, sortkeys=True)
return hashlib.sha256(blockstring).hexdigest()
class Blockchain:
def init(self):
self.chain = [self.creategenesisblock()]
def creategenesisblock(self):
return Block(0, "Genesis Block", time.time(), "0")
def getlatestblock(self):
return self.chain[-1]
def addblock(self, newblock):
newblock.previoushash = self.getlatestblock().hash
newblock.hash = newblock.calculatehash()
self.chain.append(newblock)
def ischainvalid(self):
for i in range(1, len(self.chain)):
currentblock = self.chain[i]
previousblock = self.chain[i-1]
if currentblock.hash != currentblock.calculatehash():
return False
if currentblock.previoushash != previousblock.hash:
return False
return True
if name == "main":
my_blockchain = Blockchain()
# 添加一些区块
myblockchain.addblock(Block(1, "Transaction Data 1", time.time(), ""))
myblockchain.addblock(Block(2, "Transaction Data 2", time.time(), ""))
# 打印区块链
for block in myblockchain.chain:
print "Block #" + str(block.index)
print "Hash: " + block.hash
print "Previous Hash: " + block.previoushash
print "Data: " + str(block.transactions)
print "-" * 20`
这个简单区块链实现包含以下核心功能:
代码特点:
这只是一个基础实现,真实的区块链系统还需要考虑工作量证明、分布式网络、交易验证等复杂功能。
如若转载,请注明出处:http://www.w-share.com/product/236.html
更新时间:2025-10-30 20:27:20