1. Inisialisasi Flask dan Blockchain
Kode diawali dengan mengimpor modul yang diperlukan dan menginisialisasi aplikasi Flask:
Flask memungkinkan kita membuat aplikasi web untuk berinteraksi dengan blockchain.
2. Membuat Kelas Blockchain
Kelas Blockchain bertanggung jawab atas berbagai fungsi utama, seperti pembuatan blok baru, penentuan proof-of-work, dan validasi rantai. Berikut fungsi-fungsi di dalamnya:
A. __init__: Inisialisasi Blockchain
Fungsi __init__ adalah konstruktor yang menginisialisasi chain sebagai list kosong. Blok pertama (genesis block) dibuat dengan nilai proof=1 dan previous_hash='0'.
B. create_block: Membuat Blok Baru
create_block digunakan untuk membuat blok baru, yang mencakup:
- index: Nomor urutan blok.
- timestamp: Waktu pembuatan blok.
- proof: Bukti dari proof-of-work.
- previous_hash: Hash dari blok sebelumnya.
C. get_previous_block: Mendapatkan Blok Terakhir
Fungsi ini mengembalikan blok terakhir dalam rantai untuk digunakan dalam proof-of-work dan pembuatan blok baru.
D. proof_of_work: Proses Proof of Work
Fungsi ini menentukan proof-of-work dengan mencari angka (new_proof) yang, ketika digabungkan dengan previous_proof, menghasilkan hash yang diawali dengan empat angka nol (0000). Ini mengontrol kesulitan dalam menambang blok.
E. hash: Menghitung Hash dari Blok
Fungsi hash menghasilkan hash SHA-256 untuk setiap blok. Fungsi ini digunakan untuk memverifikasi keaslian blok di blockchain.
F. is_chain_valid: Validasi Rantai Blockchain
is_chain_valid memastikan bahwa blockchain tidak dimodifikasi. Fungsi ini melakukan dua pemeriksaan:
- Memastikan previous_hash setiap blok sesuai dengan hash blok sebelumnya.
- Memverifikasi bahwa bukti proof-of-work setiap blok valid.
3. Endpoint API untuk Interaksi dengan Blockchain
Berikut adalah endpoint Flask untuk mengakses fungsi-fungsi blockchain melalui HTTP:
A. mine_block: Menambang Blok Baru
Endpoint ini menambang blok baru dengan mengidentifikasi previous_proof, menjalankan proof_of_work, dan membuat blok baru melalui create_block. Hasilnya dikirimkan sebagai respons JSON.
B. get_chain: Mendapatkan Rantai Blockchain
C. is_valid: Memeriksa Validitas Blockchain
Endpoint ini memvalidasi blockchain, mengembalikan pesan apakah rantai tersebut valid atau tidak.
4. Menjalankan Aplikasi Flask
Terakhir, aplikasi Flask diaktifkan untuk berfungsi di alamat 0.0.0.0 pada port 5000:
Python akan menjalankan aplikasi Flask yang berisi implementasi blockchain sederhana. Berikut adalah penjelasan dari setiap output yang muncul:
Serving Flask app 'Blockchain'
Ini menunjukkan bahwa Flask berhasil menemukan aplikasi bernama 'Blockchain'. Nama ini didasarkan pada nama file yang Anda jalankan, yaitu Blockchain.py.
Debug mode: off
Menunjukkan bahwa Flask menjalankan aplikasi dalam mode produksi dan bukan mode debug. Mode debug biasanya digunakan dalam pengembangan untuk memudahkan debugging, tetapi untuk keamanan dan performa, ini dimatikan pada aplikasi siap produksi.
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
Ini adalah peringatan dari Flask bahwa server yang dijalankan sekarang adalah server pengembangan. Flask menyarankan untuk tidak menggunakan server ini dalam produksi karena server ini tidak cukup aman atau cepat untuk aplikasi yang melayani banyak pengguna. Untuk produksi, Anda disarankan menggunakan WSGI server seperti Gunicorn atau uWSGI.
Running on all addresses (0.0.0.0)
Output ini menunjukkan bahwa aplikasi Flask berjalan di semua alamat jaringan yang tersedia di perangkat Anda. Artinya, aplikasi dapat diakses melalui alamat IP lokal maupun IP jaringan.
Running on http://127.0.0.1:5000
Ini adalah alamat lokal yang dapat Anda gunakan untuk mengakses aplikasi dari komputer yang sama di mana server dijalankan. 127.0.0.1 adalah alamat loopback standar (localhost), dan 5000 adalah port default yang digunakan oleh Flask.
Running on http://192.168.18.54:5000
Ini adalah alamat IP jaringan lokal yang diberikan oleh router atau jaringan. Alamat ini memungkinkan Anda mengakses aplikasi dari perangkat lain yang terhubung ke jaringan yang sama, seperti komputer atau ponsel yang terhubung ke Wi-Fi.
Cara Menggunakan Aplikasi Blockchain
Mengakses Endpoint: Buka browser atau aplikasi seperti Postman, lalu akses salah satu dari alamat yang diberikan, misalnya http://127.0.0.1:5000.
Endpoint yang Tersedia:
No comments:
Post a Comment