最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

Blockchain Project: python code coming up with multiple errors dont know why dont know who to ask for assistance - Stack Overflo

programmeradmin2浏览0评论

please go down to the # Mining a new block section i have highlighted the lines of error

# Module 1 - Create a Blockchain
#importing the Libraries
import datetime
import hashlib
import json
from flask import Flask, jsonify
# Part 01 Building a Blockchain
class Blockchain:
    def __init__(self):
        self.chain = []
        self.create_block(proof = 1, previous_hash ='0' )
        
    def create_block(self, proof, previous_hash):
        block ={'index': len(self.chain) +1,
                'timestamp': str(datetime.datetime.now()),
                'proof': proof,
                'previous_hash': previous_hash,}
        self.chain.append(block)
        return block
    
    def get_previous_block(self):
        return self.chain[-1]

    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
    
    def hash(self, block):
        encoded_block = json.dumps(block, sort_keys = True).encode()
        return hashlib.sha256(encoded_block).hexdigest()
    
    def is_chain_valid(self, chain):
        previous_block = chain[0]
        block_index = 1
        while block_index < len(chain):
            block = chain[block_index]
            if block[previous_hash] != self.hash(previous_block):
                return False 
            previous_proof = previous_block['proof']
            proof = block['proof']
            hash_operation = hashlib.sha256(str(proof**2 - previous_proof**2).encode()).hexdigest()
            if hash_operation[:4] !='0000':
                return False
            previous_block = block
            block_index += 1
            return True
        
# Part 2 - Mining our Blockchain

# creating a Web App
app = Flask(__name__)
app.config['JSONIFY_PRETTYPRINT_REGULAR'] = False
# Creating a Blockchain
blockchain = Blockchain()

# Mining a new block
@app.route('/mine_block', method = ['GET'])

def mine_block():
    previous_block = blockchain.get_previous_block()
    previous_block = previous_block['proof']
    **proof = blockchain.proof_of_work (previous_proof)**
    previous_hash = blockchain.hash(previous_block)
    blockchain.create_block(proof, previous_hash)
    response = {'message' : 'Congratulations, you just mined a block!',
**                'index' : block ['index'],
                'timestamp' : block ['timestamp'],
                'proof': block ['proof'],
                'previous_hash': block ['previous_hash']}**
    return jsonify(response), 200

# Getting the Full Blockchain
@app.route('/get_chain', method = ['GET'])
def get_chain():
    response = {'chain': blockchain.chain,
                'length': len(blockchain.chain)}
    return jsonify(response), 200

# Running the app
app.run(host = '0.0.0.0', port = 5000)

I am brand new to this please if anyone can help i would greatly appriciate it

i would like to know where i went wrong and what i can do to fix the issues that came up any advice would be greatly appriciated Thank you in advanced.

与本文相关的文章

发布评论

评论列表(0)

  1. 暂无评论