模仿用python flask 写了个小demo 这注释也花了我不少时间
import hashlib # 信息安全加密
import json
import time
from urllib.parse import urlparse #网络编码解码
from uuid import uuid4 # 生成唯一序列号
import requests #生成网络请求
from flask import Flask,jsonify,request #请求,网络请求
from typing import Any,Dict,List,Optional #数据结构
class DaDaCoinBlockChain:
def __init__(self): #初始化
self.current_transactions = []#交易列表
self.chain=[]#区块链管理多个区块
self.nodes=set()#保存网络中的多个节点
self.new_block(previous_hash="1",proof=100)#创建创世区块
def new_block(self,proof:int,#确定proof为int类型
previous_hash:Optional[str])->Dict[str,Any]: #创建一个区块,返回字典数据类型
block={
"index":len(self.chain)+1,#索引
"timestamp":time.time(),#时间戳
"teainsactions":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_transactions(self,sender:str,recipient:str,amount:int)->int: #创建一个交易
self.current_transactions.append({
"sender":sender,#付款方