🇮🇩 Blog IOHK: Plutus Application Backend (PAB): mendukung pengembangan DApp di Cardano

Versi dokumen orisinil: Plutus Application Backend (PAB): supporting DApp development on Cardano
Dipublikasikan pada tanggal 28 Oktober 2021
Ditulis oleh Fernando Sanchez
Terjemahan ke dalam Bahasa Indonesia oleh @andreassosilo
(Translated to Indonesian language by @andreassosilo)


Plutus Application Backend (PAB): mendukung pengembangan DApp di Cardano

PAB menyediakan komponen dan lingkungan untuk membantu developer membuat dan menguji DApps, sebelum menerapkannya ke lingkungan produksi langsung

28 Oktober 2021 | Fernando Sanchez | bacaan 6 menit

Plutus Application Backend (PAB): supporting DApp development on Cardano

Pembaruan protokol Alonzo memperkenalkan Plutus – platform yang menyediakan bahasa kontrak pintar asli bersama dengan infrastruktur dan alat yang diperlukan untuk mendukung kontrak pintar di Cardano. Platform Plutus memungkinkan developer untuk menulis decentralized applications (DApps) dengan kemampuan skrip yang berinteraksi dengan buku besar (ledger) terdistribusi.

Untuk memahami Plutus, kita harus mengenali tiga konsep berikut:

  • Model Extended Unspent Transaction Output (EUTXO)
  • Plutus Core - bagian ‘on-chain’ dari Plutus
  • Plutus Application Framework (PAF) - Kontrak Plutus terdiri dari bagian-bagian yang berjalan di blockchain (kode on-chain) dan bagian-bagian yang berjalan di mesin pengguna (off-chain atau kode klien)

Baik kode on-chain dan off-chain ditulis dalam Haskell, dan kontrak pintar Plutus adalah program Haskell yang efektif.

Apa itu Plutus Application Backend?

Dalam posting blog sebelumnya, kami membahas on- dan off- fungsionalitas rantai komponen inti Plutus secara lebih rinci. Di sini, mari selami lebih dalam kemampuan off-chain Plutus dan lihat lebih dalam Plutus Application Backend (PAB).

Dalam model UTXO, kami memiliki infrastruktur off-chain yang membangun transaksi yang menggerakkan aplikasi. Infrastruktur off-chain ini cukup rumit karena perlu melihat status buku besar, mengambil beberapa informasi dari buku besar, dan menggabungkan semuanya untuk membangun transaksi dengan potongan data yang tepat di tempat yang tepat. PAB adalah library Haskell tunggal yang mempermudah penulisan infrastruktur off-chain dan skrip on-chain ini.

PAB membantu membangun transaksi UTXO dengan dua cara:

  • Jalur baca - Yaitu, mendapatkan informasi dari rantai, dan bereaksi terhadap peristiwa yang terjadi di blockchain. Jalur baca saat ini bekerja di testnet
  • Jalur tulis - Di sinilah kami benar-benar membuat transaksi yang menjalankan skrip Plutus

Peran PAB

PAB adalah komponen kunci dari Plutus Application Framework (PAF) yang memungkinkan developer membuat dan menguji DApps secara lokal, sebelum menerapkannya ke lingkungan produksi langsung. Sedikit seperti Marlowe Playground menyediakan sandbox bagi developer untuk membuat dan menguji kontrak cerdas finansial, PAB menawarkan lingkungan serupa bagi developer untuk membuat dan menguji DApps secara penuh.

PAB adalah layanan backend off-chain untuk mengelola dan menangani persyaratan application instance sepanjang siklus hidupnya. Ini termasuk interaksi dengan klien eksternal (seperti frontend dari dompet) dan bertindak sebagai perantara antara Plutus Applications, node, backend dompet, dan pengguna akhir. Interaksi tersebut dimungkinkan oleh perintah PAB dan komponen tiruan yang memungkinkan simulasi nyaman dan integrasi DApps.

Meskipun bukan prasyarat untuk pembuatan atau implementasi DApp – beberapa developer membuat alat mereka sendiri dan memang alternatif berbasis API sedang dikerjakan oleh komunitas – PAB menghilangkan kebutuhan developer untuk membuat infrastruktur mereka sendiri dari awal (termasuk indeks rantai, dll.) mengurangi waktu pengembangan dan sumber daya yang dibutuhkan. Ini memungkinkan developer untuk mensimulasikan bagaimana aplikasi akan berperilaku on-chain untuk pengujian sebelumnya dan penghapusan kesalahan, untuk memastikan transisi yang sempurna untuk peluncuran.

Tujuan dari PAB adalah untuk:

  • menyediakan lingkungan standar untuk menjalankan aplikasi Plutus
  • menghadirkan antarmuka yang dapat ditemukan ke klien eksternal
  • lacak informasi on-chain untuk penggunaan kontrak pintar
  • memungkinkan developer untuk bekerja di lingkungan emulated atau non-emulated

PAB dapat beralih antara lingkungan emulated dan non-emulated (real network) dengan mulus. Hal ini memudahkan untuk menulis semua jenis pengujian yang berbeda – pengujian unit, pengujian integrasi, pengujian berbasis properti, dll. PAB memungkinkan DApps untuk berkomunikasi dengan mudah dengannya karena backend dapat menerima dan mengirimkan pesan. Dengan demikian, DApp dapat mengirim permintaan biasa ke endpoint yang telah diekspos oleh PAB, dan yang sesuai dengan tindakan dan operasi yang mampu ditangani oleh kontrak cerdas tertentu.

Aplikasi yang disebarkan menggunakan framework’s libraries dapat berjalan di PAB, yang menyediakan dukungan runtime untuk akses ke blockchain untuk lebih lanjut melakukan operasi kontrak pintar yang memicu transaksi berdasarkan [model EUTXO](IOHK Blog - Page 1 /2021/03/11/cardanos-extended-utxo-accounting-model/). Selain itu, PAB memiliki fungsionalitas untuk ketekunan, pencatatan dan pemantauan.

Dimana kita sekarang?

Awal musim panas ini, kami menerapkan yang pertama dalam serangkaian testnet berkode warna untuk menghadirkan kemampuan kontrak pintar inti Plutus ke Cardano. Ini digunakan di mainnet melalui hard fork ‘Alonzo’. Kemampuan kontrak pintar saat ini dapat diakses menggunakan Command Line Interface (CLI). Sementara kontrak pintar sederhana pertama diaktifkan di mainnet pada awal September, hal ini merupakan tahap pertama dalam perjalanan menuju penyebaran DApp di mainnet.

Sementara itu, developer telah mengerjakan DApps mereka (banyak melalui PAB) secara lokal sambil menguji fungsionalitas kontrak pintar inti apa pun di testnet. Elemen-elemen ini perlu disatukan sebelum DApp mencapai mainnet dan ini membutuhkan waktu. Setelah PAB terintegrasi dengan node dan komponen inti lainnya seperti konektor wallet back end (WBE), developer akan dapat memindahkan DApps mereka ke status kesiapan dan membawanya ke testnet Cardano sebelum peluncuran di mainnet.

Aplikasi awal yang dibangun secara lokal ini kemudian dapat berinteraksi dengan mainnet sebagaimana dimaksud. Pendekatan ‘mockchain’ untuk pengembangan hingga saat ini berarti bahwa untuk pembuat DApp, ini akan menjadi transisi yang mulus dari testnet ke mainnet. Yang diperlukan hanyalah perubahan dalam file konfigurasi untuk memulai PAB, tidak memerlukan perubahan pada kode aktual atau kode Haskell. Pekerjaan integrasi ini rumit dan merupakan bagian penting dari infrastruktur Cardano sehingga kami perlu memastikannya dilakukan dengan benar. Kami terus bekerja pada integrasi akhir dan berdasarkan lintasan saat ini, kami berencana untuk memberikan integrasi pada bulan November, dengan asumsi kami tidak menghadapi masalah kritis.

Melihat ke depan

Ini baru permulaan. Seperti biasa, ini akan menjadi proses berulang. Dengan evolusi platform Plutus, kami akan mengundang komunitas developer untuk menerapkan alat mereka sendiri dan membuat kode off-chain untuk DApps mereka yang berjalan di Cardano. Kami telah melihat banyak aktivitas di area ini, baik melalui program testnet Alonzo dan Project Catalyst. Jadi, sementara kami menguji platform dengan insinyur/QA kami dan komunitas developer, kami akan melakukan peningkatan secara bertahap dan menambahkan lebih banyak kemampuan dan fungsionalitas. Tujuannya? Dari hardfork Alonzo dan kedatangan kontrak pintar Plutus, penskalaan cepat dari pengalaman developer, dengan bantuan alat, API dan lingkungan baru untuk mendukung ekosistem yang sudah berkembang.

Untuk update rutin, pastikan Anda mengikuti kami di Twitter dan subscribe channel YouTube kami. Untuk ikhtisar proyek #BuildingOnCardano, pastikan untuk melihat repo Essential Cardano.

2 Likes