88032023006 | ZICO

...

Mining a Blockchain

Image

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_chain untuk melihat seluruh blok.
  • Mine Block: Mengakses /mine_block untuk menambang blok baru.
  • Is Valid: Mengakses /is_valid untuk 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.