使用了Python语言和Flask框架。创建一个区块链网络,允许用户通过HTTP请求进行交互,如包括创建区块链、挖矿、验证区块链等功能。(持续更新)

目录

大概来说:

二、代码注释

1.添加交易方法(add_transaction函数)

2.添加新的节点(add_node 函数)

3、替换链的方法(replace_chain函数)

总结


大概来说:

  1. 定义了一个名为Blockchain的类,用于构建区块链。
  2. 在Blockchain类中,定义了创建区块、获取上一个区块、工作量证明、哈希计算、验证区块链等方法。
  3. 使用Flask框架创建了一个Web应用,提供了挖矿、获取整个区块链和验证区块链的API接口。
  4. 运行Web应用,监听5000端口。

一、代码展示

# Module 1 - Create a Cryptocurrency
# To be installed:
# Flask==0.12.2: pip install Flask==0.12.2
# Postman HTrp Client: https://www.getpostman.com
# requests==2.18.4: pip install requests==2.18.4

# 时间戳
import datetime
import hashlib
import json

# Flask可以定义Web应用的路由(URL到Python函数的映射),并处理HTTP请求和响应。
# jsonify是一个函数,用于将Python对象转换为JSON格式的响应。
# 当你在Flask路由函数中返回一个jsonify对象时,Flask会自动将该对象对应的数据转换为JSON格式,
# 并设置合适的HTTP响应头,以便客户端可以正确解析响应内容。
from flask import Flask, jsonify, request
import requests
from uuid import uuid4
from urllib.parse import urlparse

# 1******Building a Blockchain

class Blockchain:
    # 初始化区块链类
    def __init__(self):
        self.transactions = []  # 存储交易信息
        self.chain = []  # 存储区块链
        self.create_block(proof=1, previous_hash='0')  # 创建创世区块
        self.nodes = set()  # 存储网络节点

    # 创建一个新的区块
    def create_block(self, proof, previous_hash):
        block = {
            'index': len(self.chain) + 1,
            'timestamp': str(datetime.datetime.now()),
            'proof': proof,
            'previous_hash': previous_hash,
            'transactions': self.transactions
        }
        self.transactions = []  # 清空交易列表
        self.chain.append(block)  # 将新区块添加到链中
        return block  # 返回创建的区块

    # 获取链中最后一个区块
    def get_previous_block(self):
        return self.chain[-1]

    # 工作量证明(Proof of Work)
    def proof_of_work(self, previous_proof):
        new_proof = 1
        check_proof = False
        while check_proof is False:
            hash_operation = hashlib.sha256(str(new_proof**2 - previous_proof**2).encode()).hexdigest()
            if hash_operation[:4] == '0000':
                check_proof = True
            else:
                new_proof += 1
        return new_proof

    # 哈希函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值