python实现区块链工作机制示例代码

代码语言:python

所属分类:其他

代码描述:python实现区块链工作机制示例代码,代码包含区块链基础结构、区块创建、哈希验证、交易记录等核心功能,通过简洁的类设计和注释,清晰展现区块链的工作机制。

代码标签: python 区块链 工作 机制 示例 代码

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

#!/usr/local/python3/bin/python3
# -*- coding: utf-8 -*
import hashlib
import json
from time import time
from typing import List, Dict, Optional


class Block:
    """区块类:存储区块链的基本单元"""
    def __init__(
        self,
        index: int,
        timestamp: float,
        transactions: List[Dict],
        proof: int,
        previous_hash: str
    ):
        # 区块索引(唯一标识)
        self.index = index
        # 区块创建时间戳(Unix时间)
        self.timestamp = timestamp
        # 区块包含的交易记录
        self.transactions = transactions
        # 工作量证明(挖矿结果)
        self.proof = proof
        # 前一个区块的哈希值(保证区块链完整性)
        self.previous_hash = previous_hash

    def to_dict(self) -> Dict:
        """将区块对象转换为字典(用于哈希计算)"""
        return {
            "index": self.index,
            "timestamp": self.timestamp,
            "transactions": self.transactions,
            "proof": self.proof,
            "previous_hash": self.previous_hash
        }

    def calculate_hash(self) -> str:
        """计算区块的SHA-256哈希值(保证数据不可篡改)"""
        # 将区块字典转换为有序JSON字符串(避免哈希值因键顺序变化而改变)
        block_string = json.dumps(self.to_dict(), sort_keys=True).encode()
        # 返回SHA-256哈希的十六进制表示
        return hashlib.sha256(block_string).hexdigest()


class Blockchain:
    """区块链类:管理区块链、交易和挖矿过程"""
    def __init__(self):
        # 存储区块链的完整链.........完整代码请登录后点击上方下载按钮下载查看

网友评论0