欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

python 簡單區塊鏈

傅智翔2年前8瀏覽0評論

區塊鏈是近年來備受矚目的技術,而Python 作為一門易學易用的編程語言,可用于開發簡單的區塊鏈。

下面我們來實現一個基于Python 的簡單區塊鏈。

import hashlib
import json
from time import time
class BlockChain:
def __init__(self):
self.chain = []
self.current_transactions = []
# 創建創世塊
self.new_block(previous_hash=1, proof=100)
def new_block(self, proof, previous_hash=None):
"""
創建一個新的塊,并將它添加到鏈上
:param proof:工作證明算法提供的證明值
:param previous_hash: (可選)前一個塊的hash值
:return:新的塊
"""
block = {
'index': len(self.chain) + 1,
'timestamp': time(),
'transactions': self.current_transactions,
'proof': proof,
'previous_hash': previous_hash or self.hash(self.chain[-1]),
}
# 將交易列表重置為空
self.current_transactions = []
self.chain.append(block)
return block
def new_transaction(self, sender, recipient, amount):
"""
創建新的交易,并添加到transaction列表中
:param sender: 發送方的地址
:param recipient: 接收方的地址
:param amount: 交易金額
:return:返回當前塊的索引
"""
self.current_transactions.append({
'sender': sender,
'recipient': recipient,
'amount': amount,
})
return self.last_block['index'] + 1
@staticmethod
def hash(block):
"""
對塊進行sha256加密,生成hash值
:param block:塊
:return:哈希值
"""
# 必須保證字典排列一致性,否則會得到不同的hash值
block_string = json.dumps(block, sort_keys=True).encode()
return hashlib.sha256(block_string).hexdigest()
@property
def last_block(self):
# 獲取最后一個塊
return self.chain[-1]

以上代碼實現了一個簡單的區塊鏈的基本功能,包括新建一個區塊、創建新的交易、對塊進行 sha256 加密等操作。如需深度了解區塊鏈,可在此基礎上繼續擴展。