我正在创建一个利用区块链进行记录保存的选举系统。我在下面的类中定义了块:
class Block:
def __init__(self, machine_id, timestamp, data, previous_hash):
self.machine_id = machine_id
self.timestamp = timestamp
self.data = data
self.previous_hash = previous_hash
self.hash = self.hash_block()
# Function to create hash of proposed block
def hash_block(self):
sha = hasher.sha256()
sha.update((str(self.machine_id) + str(self.timestamp) + str(self.data) + str(self.previous_hash)).encode("utf-8"))
return sha.hexdigest()
使用套接字,我希望节点在所有节点上广播其建议的块以附加到其本地区块链。在广播之前,我希望节点使用私钥对其块进行签名。每个节点都将记录所有其他节点的公钥,以便验证签名。有没有办法签署类对象,如块而不是简单的字符串消息?