Blockchain adalah teknologi yang memungkinkan transaksi digital yang aman dan transparan tanpa perlu otoritas pusat. Berikut adalah tutorial dasar tentang bagaimana membuat blockchain sederhana menggunakan Python:
1. Mendefinisikan Blok
Pertama, kita perlu mendefinisikan apa itu blok dalam blockchain kita. Dalam kasus paling sederhana, blok dapat didefinisikan sebagai unit data. Blok dalam blockchain bisa berisi informasi apa pun, tetapi untuk tujuan tutorial ini, kita akan menyederhanakannya menjadi bilangan bulat.
class Block:
def __init__(self, data, previous_hash):
self.data = data
self.previous_hash = previous_hash
self.hash = self.calculate_hash()
def calculate_hash(self):
return hash((self.data, self.previous_hash))
Dalam kode di atas, kita mendefinisikan blok sebagai kelas dengan data dan hash dari blok sebelumnya. Fungsi calculate_hash menghitung hash dari blok saat ini.
2. Membuat Blockchain
Sekarang kita dapat menggunakan blok ini untuk membuat blockchain. Blockchain adalah daftar blok yang saling terhubung, di mana setiap blok berisi hash dari blok sebelumnya.
class Blockchain:
def __init__(self):
self.chain = [self.create_genesis_block()]
def create_genesis_block(self):
return Block(0, "0")
def get_latest_block(self):
return self.chain[-1]
def add_block(self, new_block):
new_block.previous_hash = self.get_latest_block().hash
new_block.hash = new_block.calculate_hash()
self.chain.append(new_block)
Dalam kode di atas, kita membuat blockchain dengan blok genesis, yang adalah blok pertama dalam blockchain. Fungsi add_block digunakan untuk menambahkan blok baru ke blockchain.
3. Menggunakan Blockchain
Sekarang kita dapat membuat instance dari blockchain kita dan menambahkan beberapa blok.
blockchain = Blockchain()
blockchain.add_block(Block(1, blockchain.get_latest_block().hash))
blockchain.add_block(Block(2, blockchain.get_latest_block().hash))
Dalam kode di atas, kita membuat blockchain dan menambahkan dua blok. Setiap blok berisi bilangan bulat (1 dan 2) dan hash dari blok sebelumnya.
Ini adalah versi yang sangat disederhanakan dari blockchain dan tidak mencakup beberapa fitur penting dari blockchain sebenarnya seperti proof-of-work (PoW), penambangan, dan konsensus jaringan. Namun, ini memberikan gambaran dasar tentang bagaimana blockchain bekerja.