Blockchain dan basis data terdesentralisasi

From OnnoWiki
Jump to navigation Jump to search

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.


Pranala Menarik