Dalam pengembangan teknologi blockchain, proses mining (penambangan) merupakan salah satu komponen penting untuk menjaga keamanan dan integritas jaringan. Pada bagian kedua ini, kita akan membahas implementasi fungsi-fungsi utama dalam proses mining sebuah blockchain menggunakan bahasa Python dan dijalankan melalui Spyder serta diuji menggunakan Postman.
1. Membuat Web & Blockchain (Spyder: Create Web & a Blockchain)
Pada tahap awal, kita membuat struktur dasar blockchain dan menghubungkannya ke server web sederhana menggunakan Flask. Fungsi __init__() dalam kelas Blockchain digunakan untuk menginisialisasi chain dan membuat blok genesis (blok pertama dalam blockchain).
Fungsi create_block() bertugas untuk membuat blok baru dan menambahkannya ke chain. Blok ini terdiri dari index, timestamp, proof, dan previous_hash
2. Menambang Blok Baru (Spyder: Mining a New Block)
Proses mining dilakukan dengan memecahkan permasalahan Proof of Work. Fungsi proof_of_work(previous_proof) mencari angka yang sesuai dengan kondisi tertentu agar blok bisa ditambahkan ke chain.
Setelah mendapatkan proof yang valid, fungsi mine_block() akan memanggil create_block() dan mengembalikan blok tersebut dalam format JSON.
3. Mendapatkan Seluruh Blockchain (Spyder: Getting the full Blockchain)
Untuk melihat seluruh isi blockchain, dibuatlah endpoint get_chain yang mengembalikan seluruh chain beserta panjangnya:
4. Validasi Blockchain (Spyder: Checking Blockchain Validation)
Fungsi is_chain_valid() memastikan bahwa setiap blok dalam blockchain valid, yaitu setiap previous_hash cocok dan setiap proof valid:
Endpoint /is_valid memanggil fungsi ini dan mengembalikan hasilnya.
5. Menjalankan Aplikasi (Spyder: Running the app)
Aplikasi dijalankan menggunakan:
Ini memungkinkan aplikasi untuk diakses melalui localhost atau alamat IP yang sesuai.
6. Uji Coba di Postman
Setelah server berjalan, dilakukan pengujian menggunakan Postman:
- Get Chain: Mengakses
/get_chainuntuk melihat seluruh blok. - Mine Block: Mengakses
/mine_blockuntuk menambang blok baru. - Is Valid: Mengakses
/is_validuntuk mengecek keabsahan blockchain.
Kesimpulan
Bagian kedua dari pembuatan blockchain ini fokus pada proses penambangan blok, validasi chain, dan pengujian fungsi-fungsi utama. Proses mining yang melibatkan proof of work membentuk pondasi keamanan blockchain. Dengan menghubungkan ke Flask dan Postman, pengujian dapat dilakukan secara interaktif dan efisien.