Pipelining (Komponen Skalabilitas)

Dipublikasikan pada tanggal 11 Feb 2022
Disadur oleh andre cahyadi (@prosperaan)
Untuk komunitas Cardano Indonesia
Referensi:
(Introducing pipelining: Cardano's consensus layer scaling solution - IOHK Blog)

Pipelining adalah salah satu solusi skalabilitas yang akan diimplementasi di tahun 2022 dan merupakan salah satu elemen yang terpenting.

Pipelining atau lebih tepatnya ‘Diffusion Pipelining’ adalah peningkatan di layer consensus untuk mempercepat block propagation (timeliness). Dengan adanya peningkatan ini, maka dapat memberikan ruang yang cukup untuk meningkatkan parameter jaringan lainnya (parameter – parameter jaringan Cardano, lihat post Parameter – Parameter Blockchain di Cardano).

Saat ini, sebuah block menjalani 6 proses tahapan ketika bergerak di chain:

  1. Transmisi header block
  2. Validasi header block
  3. Request dan transmisi body block
  4. Validasi body block dan ekstensi local chain
  5. Transmisi header block ke downstream nodes
  6. Transmisi body block ke downstream nodes

Semua tahapan di atas berlangsung secara berurutan setiap waktu dan di setiap node. Dengan banyaknya node dan jumlah block yang bertambah terus menerus, maka transmisi block pun membutuhkan waktu yang cukup lama.

Dengan Diffusion Pipelining, beberapa tahapan di atas akan digabung satu sama lain sehingga dapat terjadi secara bersamaan.

Sumber: Blog IOHK

Penghematan waktu yang didapat dari Pipelining memberikan ruang waktu lebih untuk meningkatkan skalabilitas Cardano:
a. Throughput - ukuran block yang lebih besar, semakin banyak transaksi yang dapat ditampung
b. Plutus Script memory units – jumlah memory yang lebih besar untuk eksekusi Plutus Script
c. Plutus CPU limits – computational resources yang lebih besar dapat dialokasikan untuk Plutus Script agar berjalan lebih efisien

Implementasi Pipelining
Prinsip utama dari penerapan Diffusion Pipelining adalah mempercepat block propagation sambil menghindari perubahan yang dapat merusak main chain, karena operasional setiap node bergantung pada mekanisme yang sudah berjalan. Oleh karena itu, pengembangan yang dilakukan bersifat backwards compatibility, yakni menambahkan protokol mini baru yang bertugas memberi notifikasi di awal ketika block baru yang diinginkan sudah terlihat sebelum proses validasi secara penuh. Downstream nodes dari setiap node yang sudah menerima block dapat mengambil lebih dulu (pre-fetch) body block yang baru (tahap no. 6 di atas terjadi lebih cepat). Alhasil, waktu yang dibutuhkan untuk memvalidasi sebuah block berkurang sangat signifikan saat melintasi banyak hop.

1 Like