Blockchain dan basis data terdesentralisasi
Berikut adalah Modul 13: Tren Terkini dalam Basis Data – Blockchain dan Basis Data Terdesentralisasi lengkap dengan contoh implementasi di Ubuntu 24.04.
Tren Terkini dalam Basis Data
Topik: Blockchain dan Basis Data Terdesentralisasi
1. Tujuan Pembelajaran
Setelah mempelajari modul ini, mahasiswa diharapkan mampu:
- Memahami konsep dasar blockchain sebagai basis data terdesentralisasi.
- Menjelaskan perbedaan antara basis data terpusat dan terdesentralisasi.
- Menerapkan simulasi blockchain sederhana menggunakan Python di Ubuntu 24.04.
- Mengenal proyek blockchain populer seperti IPFS, BigchainDB, atau Ethereum (Geth).
2. Konsep Dasar
2.1 Blockchain
Blockchain adalah struktur data terdistribusi yang terdiri dari rantai blok yang saling terhubung, di mana setiap blok berisi data dan hash kriptografi dari blok sebelumnya. Sifat utama:
- Immutable (tidak dapat diubah)
- Terdistribusi
- Transparan
- Konsensus diperlukan untuk validasi data baru
2.2 Basis Data Terdesentralisasi
Berbeda dari DBMS konvensional, data tidak disimpan di satu server pusat, melainkan didistribusikan ke banyak node. Setiap node menyimpan salinan data dan berpartisipasi dalam konsensus jaringan.
3. Perbandingan
Aspek | Basis Data Konvensional | Blockchain / Terdesentralisasi |
---|---|---|
Arsitektur | Terpusat | Terdesentralisasi |
Keamanan | Kontrol akses | Kriptografi dan konsensus |
Skalabilitas | Vertikal/Horizontal | Terbatas (bergantung sistem) |
Transparansi | Terbatas | Publik (tergantung sistem) |
Contoh | MySQL, PostgreSQL | Ethereum, BigchainDB, IPFS |
4. Contoh Implementasi Blockchain Sederhana di Ubuntu 24.04 (Python)
Langkah 1: Instalasi Python
sudo apt update sudo apt install python3 python3-pip
Langkah 2: Buat Simulasi Blockchain
File: blockchain.py
import hashlib import json from time import time class Block: def __init__(self, index, timestamp, data, previous_hash): self.index = index self.timestamp = timestamp self.data = data self.previous_hash = previous_hash self.hash = self.calculate_hash() def calculate_hash(self): content = f"{self.index}{self.timestamp}{self.data}{self.previous_hash}" return hashlib.sha256(content.encode()).hexdigest() class Blockchain: def __init__(self): self.chain = [self.create_genesis_block()] def create_genesis_block(self): return Block(0, time(), "Genesis Block", "0") def get_last_block(self): return self.chain[-1] def add_block(self, data): last_block = self.get_last_block() new_block = Block(len(self.chain), time(), data, last_block.hash) self.chain.append(new_block) def print_chain(self): for block in self.chain: print(f"Index: {block.index}, Hash: {block.hash}, Data: {block.data}\n") # Simulasi if __name__ == "__main__": chain = Blockchain() chain.add_block("Transaksi 1: A → B") chain.add_block("Transaksi 2: B → C") chain.add_block("Transaksi 3: C → A") chain.print_chain()
Jalankan Program
python3 blockchain.py
5. Contoh Basis Data Terdesentralisasi Nyata
5.1 BigchainDB
BigchainDB adalah sistem basis data terdesentralisasi dengan fitur blockchain.
Instalasi Docker di Ubuntu 24.04:
sudo apt install docker.io sudo systemctl start docker sudo systemctl enable docker
Jalankan BigchainDB Node (via Docker):
docker run -d --name bigchaindb -p 9984:9984 \ -e BIGCHAINDB_DATABASE_BACKEND=mongodb \ -e BIGCHAINDB_SERVER_BIND=0.0.0.0:9984 \ bigchaindb/bigchaindb
5.2 IPFS (InterPlanetary File System)
IPFS menyimpan file secara desentralisasi.
sudo apt install ipfs ipfs init ipfs daemon
Tambahkan file ke jaringan:
ipfs add hello.txt
6. Use Case Blockchain sebagai Basis Data
- Supply Chain: Melacak asal-usul dan pergerakan barang secara transparan.
- Sertifikasi & Dokumen: Menyimpan ijazah, sertifikat, dan kontrak legal.
- Identitas Digital: Sistem identitas tanpa pusat kendali.
- Voting Sistem: Pemilu digital dengan transparansi tinggi.
7. Kesimpulan
Blockchain memperkenalkan paradigma baru dalam pengelolaan data: transparansi, imutabilitas, dan desentralisasi. Di Ubuntu 24.04, simulasi dan eksperimen dengan Python, BigchainDB, dan IPFS memungkinkan pemahaman lebih dalam tentang masa depan basis data yang lebih terbuka dan aman.