Lompat ke konten utama
Change page

Pengantar teknis untuk dapp

Sebuah aplikasi terdesentralisasi (dapp) adalah aplikasi yang dibangun di atas jaringan terdesentralisasi yang menggabungkan kontrak pintar dan antarmuka pengguna frontend. Di Ethereum, kontrak pintar dapat diakses dan transparan – seperti API terbuka – sehingga dapp Anda bahkan dapat menyertakan kontrak pintar yang telah ditulis oleh orang lain.

Prasyarat

Sebelum mempelajari tentang dapp, Anda harus memahami dasar-dasar rantai blok dan membaca tentang jaringan Ethereum serta bagaimana jaringan tersebut terdesentralisasi.

Definisi dapp

Sebuah dapp memiliki kode backend yang berjalan di jaringan peer-to-peer terdesentralisasi. Bandingkan ini dengan aplikasi di mana kode backend berjalan di server terpusat.

Sebuah dapp dapat memiliki kode frontend dan antarmuka pengguna yang ditulis dalam bahasa apa pun (sama seperti aplikasi biasa) untuk melakukan panggilan ke backend-nya. Selain itu, frontend-nya dapat dihosting di penyimpanan terdesentralisasi seperti IPFS (opens in a new tab).

  • Terdesentralisasi - dapp beroperasi di Ethereum, sebuah platform terdesentralisasi publik terbuka di mana tidak ada satu orang atau kelompok pun yang memegang kendali
  • Deterministik - dapp menjalankan fungsi yang sama terlepas dari lingkungan tempat mereka dieksekusi
  • Lengkap Turing - dapp dapat melakukan tindakan apa pun asalkan diberikan sumber daya yang diperlukan
  • Terisolasi - dapp dieksekusi dalam lingkungan virtual yang dikenal sebagai Ethereum Virtual Machine sehingga jika kontrak pintar memiliki bug, hal itu tidak akan menghambat fungsi normal dari jaringan rantai blok

Tentang kontrak pintar

Untuk memperkenalkan dapp, kita perlu memperkenalkan kontrak pintar – backend dari dapp, karena tidak ada istilah yang lebih baik. Untuk gambaran umum yang mendetail, kunjungi bagian kami tentang kontrak pintar.

Kontrak pintar adalah kode yang hidup di rantai blok Ethereum dan berjalan persis seperti yang diprogramkan. Setelah kontrak pintar disebarkan di jaringan, Anda tidak dapat mengubahnya. Dapp dapat terdesentralisasi karena dikendalikan oleh logika yang ditulis ke dalam kontrak, bukan oleh individu atau perusahaan. Ini juga berarti Anda perlu merancang kontrak Anda dengan sangat hati-hati dan mengujinya secara menyeluruh.

Manfaat pengembangan dapp

  • Tanpa waktu henti (Zero downtime) – Setelah kontrak pintar disebarkan di rantai blok, jaringan secara keseluruhan akan selalu dapat melayani klien yang ingin berinteraksi dengan kontrak tersebut. Oleh karena itu, pelaku kejahatan tidak dapat meluncurkan serangan penolakan layanan (denial-of-service) yang ditargetkan ke dapp individu.
  • Privasi – Anda tidak perlu memberikan identitas dunia nyata untuk menyebarkan atau berinteraksi dengan dapp.
  • Tahan terhadap penyensoran – Tidak ada entitas tunggal di jaringan yang dapat memblokir pengguna dari mengirimkan transaksi, menyebarkan dapp, atau membaca data dari rantai blok.
  • Integritas data yang lengkap – Data yang disimpan di rantai blok tidak dapat diubah dan tidak dapat dibantah, berkat primitif kriptografi. Pelaku kejahatan tidak dapat memalsukan transaksi atau data lain yang telah dipublikasikan.
  • Komputasi tanpa kepercayaan/perilaku yang dapat diverifikasi – Kontrak pintar dapat dianalisis dan dijamin akan dieksekusi dengan cara yang dapat diprediksi, tanpa perlu memercayai otoritas pusat. Hal ini tidak berlaku pada model tradisional; misalnya, ketika kita menggunakan sistem perbankan online, kita harus percaya bahwa lembaga keuangan tidak akan menyalahgunakan data keuangan kita, merusak catatan, atau diretas.

Kekurangan pengembangan dapp

  • Pemeliharaan – Dapp bisa lebih sulit untuk dipelihara karena kode dan data yang dipublikasikan ke rantai blok lebih sulit untuk dimodifikasi. Sulit bagi pengembang untuk melakukan pembaruan pada dapp mereka (atau data mendasar yang disimpan oleh dapp) setelah disebarkan, bahkan jika bug atau risiko keamanan teridentifikasi dalam versi lama.
  • Beban kinerja – Terdapat beban kinerja yang sangat besar, dan penskalaan sangatlah sulit. Untuk mencapai tingkat keamanan, integritas, transparansi, dan keandalan yang dicita-citakan Ethereum, setiap node menjalankan dan menyimpan setiap transaksi. Selain itu, konsensus Bukti Kepemilikan (PoS) juga membutuhkan waktu.
  • Kemacetan jaringan – Ketika satu dapp menggunakan terlalu banyak sumber daya komputasi, seluruh jaringan akan terhambat. Saat ini, jaringan hanya dapat memproses sekitar 10-15 transaksi per detik; jika transaksi dikirim lebih cepat dari ini, kumpulan transaksi yang belum dikonfirmasi dapat membengkak dengan cepat.
  • Pengalaman pengguna – Mungkin lebih sulit untuk merancang pengalaman yang ramah pengguna karena rata-rata pengguna akhir mungkin merasa terlalu sulit untuk menyiapkan tumpukan alat yang diperlukan untuk berinteraksi dengan rantai blok dengan cara yang benar-benar aman.
  • Sentralisasi – Solusi yang ramah pengguna dan ramah pengembang yang dibangun di atas lapisan dasar Ethereum pada akhirnya mungkin akan terlihat seperti layanan terpusat. Misalnya, layanan semacam itu mungkin menyimpan kunci atau informasi sensitif lainnya di sisi server, menyajikan frontend menggunakan server terpusat, atau menjalankan logika bisnis penting di server terpusat sebelum menulis ke rantai blok. Sentralisasi menghilangkan banyak (jika tidak semua) keuntungan rantai blok dibandingkan model tradisional.

Lebih suka belajar secara visual?

What is a dapp? Decentralized application on the blockchain

An introduction to decentralized applications (dapps) and how they differ from traditional apps.

Tonton dengan transkrip 

Alat untuk membuat dapp

Scaffold-ETH - Bereksperimen dengan cepat menggunakan Solidity dengan frontend yang beradaptasi dengan kontrak pintar Anda.

Create Eth App - Buat aplikasi bertenaga Ethereum dengan satu perintah.

One Click Dapp - Alat FOSS untuk menghasilkan frontend dapp dari .

Etherflow - Alat FOSS bagi pengembang Ethereum untuk menguji node mereka, serta menyusun & men-debug panggilan RPC dari peramban.

thirdweb - SDK dalam setiap bahasa, kontrak pintar, alat, dan infrastruktur untuk pengembangan Web3.

Crossmint - Platform pengembangan Web3 tingkat perusahaan untuk menyebarkan kontrak pintar, mengaktifkan pembayaran kartu kredit dan lintas rantai, serta menggunakan API untuk membuat, mendistribusikan, menjual, menyimpan, dan mengedit NFT.

Bacaan lebih lanjut

Tahu sumber daya komunitas yang membantu Anda? Edit halaman ini dan tambahkan!

Tutorial: Membangun aplikasi dan frontend di Ethereum