BISA AI - AI For Everyone
Blockchain Development Sederhana Part 1

Yanuar Rizky Anggada

Sosial Media


0 orang menyukai ini
Suka

Summary

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.

Description

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

  1. Pastikan Python telah terinstal di komputer.
  2. Buat folder proyek baru untuk blockchain.
  3. Buka terminal atau command prompt, lalu navigasikan ke folder proyek tersebut.

Menginstal Dependensi

  1. Gunakan pip (package installer Python) untuk menginstal dependensi yang diperlukan. Ketikkan perintah berikut di terminal atau command prompt:

Membuat Blockchain

  1. Buat file Python baru dalam folder proyek, misalnya blockchain.py.
  2. Buka file blockchain.py menggunakan editor teks atau IDE Python.

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)

 

 

Informasi Course Terkait
  Kategori: Blockchain
  Course: Blockchain Development dengan Python Part 1