Yanuar Rizky Anggada
Blockchain development adalah proses pembangunan sistem blockchain yang melibatkan pengembangan perangkat lunak, algoritma kriptografi, dan konsep desentralisasi. Blockchain adalah teknologi yang memungkinkan penyimpanan dan pertukaran data yang aman, transparan, dan tidak dapat dimanipulasi.
Untuk memulai pengembangan blockchain sederhana dengan Python, perlu menginstal beberapa dependensi dan menggunakan beberapa pustaka Python yang tersedia. Berikut adalah langkah-langkah dasar untuk membuat blockchain sederhana menggunakan Python:
Persiapan Proyek
Menginstal Dependensi
Membuat Blockchain
Menulis Kode Blockchain
Berikut adalah contoh kode Python untuk blockchain sederhana:
import hashlib
import json
from time import time
from flask import Flask, jsonify, request
class Blockchain:
def __init__(self):
self.chain = []
self.current_transactions = []
self.new_block(previous_hash='1', proof=100)
def new_block(self, proof, previous_hash=None):
block = {
'index': len(self.chain) + 1,
'timestamp': time(),
'transactions': 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_transaction(self, sender, recipient, amount):
self.current_transactions.append({
'sender': sender,
'recipient': recipient,
'amount': amount,
})
return self.last_block['index'] + 1
@staticmethod
def hash(block):
block_string = json.dumps(block, sort_keys=True).encode()
return hashlib.sha256(block_string).hexdigest()
@property
def last_block(self):
return self.chain[-1]
app = Flask(__name__)
blockchain = Blockchain()
@app.route('/mine', methods=['GET'])
def mine():
last_block = blockchain.last_block
last_proof = last_block['proof']
proof = blockchain.proof_of_work(last_proof)
blockchain.new_transaction(sender="0", recipient=node_identifier, amount=1)
previous_hash = blockchain.hash(last_block)
block = blockchain.new_block(proof, previous_hash)
response = {
'message': "New Block Forged",
'index': block['index'],
'transactions': block['transactions'],
'proof': block['proof'],
'previous_hash': block['previous_hash'],
}
return jsonify(response), 200
@app.route('/transactions/new', methods=['POST'])
def new_transaction():
values = request.get_json()
required = ['sender', 'recipient', 'amount']
if not all(k in values for k in required):
return 'Missing values', 400
index = blockchain.new_transaction(values['sender'], values['recipient'], values['amount'])
response = {'message': f'Transaction will be added to Block {index}'}
return jsonify(response), 201
@app.route('/chain', methods=['GET'])
def full_chain
Inisialisasi Flask untuk membuat antarmuka web
Kode : app = Flask(__name__)
blockchain = Blockchain()
Definisikan endpoint-endpoint API untuk berinteraksi dengan blockchain:
Kode :
@app.route('/transactions/new', methods=['POST'])
def new_transaction():
values = request.get_json()
required = ['sender', 'recipient', 'amount']
if not all(k in values for k in required):
return 'Data transaksi tidak lengkap', 400
index = blockchain.new_transaction(values['sender'], values['recipient'], values['amount'])
response = {'message': f'Transaksi akan ditambahkan ke blok {index}'}
return jsonify(response), 201
@app.route('/chain', methods=['GET'])
def full_chain():
response = {
'chain': blockchain.chain,
'length': len(blockchain.chain),
}
return jsonify(response), 200
Jalankan aplikasi Flask
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000)