def private():
    amount = session.get('amount')
    sender_public_key = str(session.get('sender_public_key'))
    receiver_public_key = session.get('receiver_public_key')
    sender = User.query.filter(User.public_key == '174ebb9e859c11eaadabd983fb560cf7').first()
    print(sender_public_key)
    print(sender)
    print(sender.private_key)
    if request.method == 'GET':
        return render_template('private.html', amount=amount,
                               from_whom=sender_public_key, to_whom=receiver_public_key)
    elif request.method == 'POST':
        input_private_key = request.form['private']
        nodes_numbers = []
        for i in range(1, 7):
            nodes_numbers.append(request.form.get(f'node{i}'))
        if input_private_key == sender.private_key:
            if nodes_numbers.count(None) < 3:
                block_data = write_block(from_who=sender_public_key,
                                         to_whom=receiver_public_key, amount=amount)
                write_block_to_nodes(from_who=sender_public_key,
                                     to_whom=receiver_public_key, amount=amount)
                return render_template('private.html', block=block_data, confirmation='Transaction added to the blockchain!')
            else:
                return render_template('private.html', deny="Not enough nodes to change the blockchain!")
        else:
            wrong = 'The Private Key is incorrect'
            return render_template('private.html', wrong=wrong)
def private(sen, rec, am):
    amount = am
    sender_public_key = request.form.get('from')
    receiver_public_key = request.form.get('to')
    amount = request.form.get('amount')
    if request.method == 'GET':
        return render_template('private.html',
                               amount=amount,
                               from_whom=sender_public_key,
                               to_whom=receiver_public_key)
    elif request.method == 'POST':
        input_private_key = request.form['private']
        nodes_numbers = []
        for i in range(1, 7):
            nodes_numbers.append(request.form.get(f'node{i}'))
        if input_private_key == sender.private_key:
            if nodes_numbers.count(None) < 3:
                block_data = write_block(from_who=sender_public_key,
                                         to_whom=receiver_public_key,
                                         amount=amount)
                write_block_to_nodes(from_who=sender_public_key,
                                     to_whom=receiver_public_key,
                                     amount=amount)
                return render_template(
                    'private.html',
                    block=block_data,
                    confirmation='Transaction added to the blockchain!')
            else:
                return render_template(
                    'private.html',
                    deny="Not enough nodes to change the blockchain!")
        else:
            wrong = 'The Private Key is incorrect'
            return render_template('private.html', wrong=wrong)
Exemple #3
0
def transaction():
    users = User.query.all()
    if request.method == 'POST':
        sender_public_key = request.form.get('from')
        receiver_public_key = request.form.get('to')
        amount = request.form.get('amount')
        sender = User.query.filter_by(public_key=sender_public_key).first()
        print(sender.private_key)
        if request.form.get('private'):
            if sender.private_key == request.form.get('private'):
                block_data = write_block(from_who=sender_public_key,
                                         to_whom=receiver_public_key,
                                         amount=amount)
                write_block_to_nodes(from_who=sender_public_key,
                                     to_whom=receiver_public_key,
                                     amount=amount)
        return render_template(
            'transactions.html',
            block=block_data,
            confirmation='Transaction added to the blockchain!',
            sender=sender_public_key,
            receiver=receiver_public_key,
            amount=amount,
            sender_private_key=sender.private_key,
            users=users)
    else:
        return render_template('transactions.html', users=users)
Exemple #4
0
def private():
    amount = session.get('amount', 'hren')
    sender_public_key = session.get('sender_public_key', 'hren')
    receiver_public_key = session.get('receiver_public_key', 'hren')
    sender = User.query.filter_by(public_key=sender_public_key).first()
    receiver = User.query.filter_by(public_key=receiver_public_key).first()
    if request.method == 'GET':
        return render_template('private.html',
                               amount=amount,
                               from_whom=sender_public_key,
                               to_whom=receiver_public_key,
                               sender_private_key=sender.private_key)
    elif request.method == 'POST':
        input_private_key = request.form['private']
        if input_private_key == sender.private_key:
            sender.balance = sender.balance - int(amount)
            receiver.balance = receiver.balance + int(amount)
            conf = "Transactions added to blockchain!"
            write_block(from_who=sender_public_key,
                        to_whom=receiver_public_key,
                        amount=amount)
            write_block_to_nodes(from_who=sender_public_key,
                                 to_whom=receiver_public_key,
                                 amount=amount)
            db.session.commit()

            return render_template('private.html', confirmation=conf)
        else:
            wrong = 'The Private Key is incorrect'
            return render_template('private.html', wrong=wrong)
Exemple #5
0
def private():
    amount = session.get('amount')
    sender_public_key = session.get('sender_public_key')
    receiver_public_key = session.get('receiver_public_key')
    sender = User.query.filter_by(public_key=sender_public_key).first()
    receiver = User.query.filter_by(public_key=receiver_public_key).first()
    if request.method == 'GET':
        return render_template('private.html', amount=amount, 
        from_whom=sender_public_key, to_whom=receiver_public_key, 
        sender_private_key=sender.private_key)
    elif request.method == 'POST':
        input_private_key = request.form['private']
        nodes_numbers = []
        for i in range(1, 7):
            nodes_numbers.append(request.form.get(f'node{i}'))
        if input_private_key == sender.private_key:
            for node_num in nodes_numbers:
                if node_num:
                    node = nodes_route + str(node_num) + '/'
                    sender.balance = sender.balance - int(amount)
                    receiver.balance = receiver.balance + int(amount)
                    db.session.commit()
                    conf = "Transactions added to blockchain!"
                    write_block_to_node(node, from_who=sender_public_key,
                                        to_whom=receiver_public_key, amount=amount)
            print(nodes_numbers)
            if nodes_numbers.count(None) < 3:
                write_block_to_nodes(from_who=sender_public_key,
                            to_whom=receiver_public_key, amount=amount)
                return render_template('private.html', confirmation=conf, nodes=nodes_numbers)
            else:
                return render_template('private.html', deny = "Not enough nodes to change the blockchain!")
        else:
            wrong = 'The Private Key is incorrect'
            return render_template('private.html', wrong=wrong)
def transaction():
    users = User.query.all()
    if request.method == 'POST':

        if request.form.get('private'):
            sender_public_key = request.form.get('read_only_sender')
            receiver_public_key = request.form.get('read_only_receiver')
            amount = request.form.get('read_only_amount')
            sender = User.query.filter_by(public_key=sender_public_key).first()
            receiver = User.query.filter_by(
                public_key=receiver_public_key).first()
            if sender.private_key == request.form.get('private'):
                block_data = write_block(from_who=sender_public_key,
                                         to_whom=receiver_public_key,
                                         amount=amount)
                write_block_to_nodes(from_who=sender_public_key,
                                     to_whom=receiver_public_key,
                                     amount=amount)
                sender.balance -= int(amount)
                receiver.balance += amount
                return render_template(
                    'transactions.html',
                    confirmation='Transaction added to the blockchain!',
                    block=block_data)
            else:
                wrong = 'The Private Key is incorrect'
                return render_template('transactions.html', wrong=wrong)
        else:
            sender_public_key = request.form.get('from')
            receiver_public_key = request.form.get('to')
            amount = request.form.get('amount')
            sender = User.query.filter_by(public_key=sender_public_key).first()
            print(sender)
            print(sender)
            return render_template('transactions.html',
                                   sender=sender_public_key,
                                   receiver=receiver_public_key,
                                   amount=amount,
                                   sender_private_key=sender.private_key,
                                   users=users)
    else:
        return render_template('transactions.html', users=users)
Exemple #7
0
        print(type(sender_public_key))
        print(sender_public_key)
        print(sender)
    if request.method == 'GET':
        return render_template('private.html', amount=amount,
                               from_whom=sender_public_key, to_whom=receiver_public_key)
    elif request.method == 'POST':
        input_private_key = request.form['private']
        nodes_numbers = []
        for i in range(1, 7):
            nodes_numbers.append(request.form.get(f'node{i}'))
        if input_private_key == sender.private_key:
            if nodes_numbers.count(None) < 3:
                block_data = write_block(from_who=sender_public_key,
                                         to_whom=receiver_public_key, amount=amount)
                write_block_to_nodes(from_who=sender_public_key,
                                     to_whom=receiver_public_key, amount=amount)
                return render_template('private.html', block=block_data, confirmation='Transaction added to the blockchain!')
            else:
                return render_template('private.html', deny="Not enough nodes to change the blockchain!")
        else:
            wrong = 'The Private Key is incorrect'
            return render_template('private.html', wrong=wrong)


@app.route('/blockchain/', methods=['GET'])
def blockchain():
    blocks_dict = {}
    files = int_and_sort(os.listdir(blockchain_dir))
    for filename in reversed(files[1:]):
        block = json.load(open(blockchain_dir + str(filename), 'rb'))
        blocks_dict[filename] = block