python利用flask框架完成区块链小demo(实现转账,节点更新)

模仿用python flask 写了个小demo 这注释也花了我不少时间import hashlib # 信息安全加密import json import time from urllib.parse import urlparse #网络编码解码from uuid import uuid4 # 生成唯一序列号import requests #生成网络请求from flask i...
摘要由CSDN通过智能技术生成

模仿用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,#付款方
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值