Lompat ke konten utama
Change page

Pengantar tumpukan Ethereum

Seperti tumpukan perangkat lunak lainnya, "tumpukan Ethereum" yang lengkap akan bervariasi dari satu proyek ke proyek lainnya tergantung pada tujuan Anda.

Namun, ada komponen inti Ethereum yang membantu memberikan model mental tentang bagaimana aplikasi perangkat lunak berinteraksi dengan rantai blok Ethereum. Memahami lapisan-lapisan tumpukan ini akan membantu Anda memahami berbagai cara Ethereum dapat diintegrasikan ke dalam proyek perangkat lunak.

Tingkat 1: Mesin Virtual Ethereum

Mesin Virtual Ethereum (EVM) adalah lingkungan runtime untuk kontrak pintar di Ethereum. Semua kontrak pintar dan perubahan state pada rantai blok Ethereum dieksekusi oleh transaksi. EVM menangani semua pemrosesan transaksi di jaringan Ethereum.

Seperti halnya mesin virtual lainnya, EVM menciptakan tingkat abstraksi antara kode yang dieksekusi dan mesin yang mengeksekusi (sebuah node Ethereum). Saat ini, EVM berjalan pada ribuan node yang terdistribusi di seluruh dunia.

Secara internal, EVM menggunakan serangkaian instruksi opcode untuk mengeksekusi tugas-tugas tertentu. Opcode (140 unik) ini memungkinkan EVM menjadi Turing-complete (opens in a new tab), yang berarti EVM mampu mengkomputasi hampir apa saja, asalkan diberikan sumber daya yang cukup.

Sebagai pengembang aplikasi terdesentralisasi (dapp), Anda tidak perlu tahu banyak tentang EVM selain bahwa ia ada dan secara andal menggerakkan semua aplikasi di Ethereum tanpa waktu henti.

Tingkat 2: Kontrak pintar

Kontrak pintar adalah program yang dapat dieksekusi yang berjalan di rantai blok Ethereum.

Kontrak pintar ditulis menggunakan bahasa pemrograman tertentu yang dikompilasi menjadi kode bita EVM (instruksi mesin tingkat rendah yang disebut opcode).

Kontrak pintar tidak hanya berfungsi sebagai pustaka sumber terbuka, mereka pada dasarnya adalah layanan API terbuka yang selalu berjalan dan tidak dapat dihentikan. Kontrak pintar menyediakan fungsi publik yang dapat berinteraksi dengan pengguna dan aplikasi (dapp), tanpa memerlukan izin. Aplikasi apa pun dapat berintegrasi dengan kontrak pintar yang disebarkan untuk menyusun fungsionalitas, seperti menambahkan umpan data atau untuk mendukung pertukaran token. Selain itu, siapa pun dapat menyebarkan kontrak pintar baru ke Ethereum untuk menambahkan fungsionalitas kustom guna memenuhi kebutuhan aplikasi mereka.

Sebagai pengembang dapp, Anda hanya perlu menulis kontrak pintar jika Anda ingin menambahkan fungsionalitas kustom di rantai blok Ethereum. Anda mungkin menemukan bahwa Anda dapat mencapai sebagian besar atau semua kebutuhan proyek Anda hanya dengan berintegrasi dengan kontrak pintar yang ada, misalnya jika Anda ingin mendukung pembayaran dalam koin stabil atau mengaktifkan pertukaran token yang terdesentralisasi.

Tingkat 3: Node Ethereum

Agar sebuah aplikasi dapat berinteraksi dengan rantai blok Ethereum, aplikasi tersebut harus terhubung ke sebuah node Ethereum. Menghubungkan ke sebuah node memungkinkan Anda untuk membaca data rantai blok dan/atau mengirim transaksi ke jaringan.

Node Ethereum adalah komputer yang menjalankan perangkat lunak - sebuah klien Ethereum. Klien adalah implementasi Ethereum yang memverifikasi semua transaksi di setiap blok, menjaga jaringan tetap aman dan data tetap akurat. Node Ethereum adalah rantai blok Ethereum. Mereka secara kolektif menyimpan state dari rantai blok Ethereum dan mencapai konsensus pada transaksi untuk mengubah state rantai blok.

Dengan menghubungkan aplikasi Anda ke node Ethereum (melalui API JSON-RPC), aplikasi Anda dapat membaca data dari rantai blok (seperti saldo akun pengguna) serta menyiarkan transaksi baru ke jaringan (seperti mentransfer ETH antar akun pengguna atau mengeksekusi fungsi dari kontrak pintar).

Tingkat 4: API klien Ethereum

Banyak pustaka kemudahan (dibangun dan dipelihara oleh komunitas sumber terbuka Ethereum) yang memungkinkan aplikasi Anda untuk terhubung dan berkomunikasi dengan rantai blok Ethereum.

Jika aplikasi yang berhadapan dengan pengguna Anda adalah aplikasi web, Anda dapat memilih untuk npm install sebuah API JavaScript secara langsung di frontend Anda. Atau mungkin Anda akan memilih untuk mengimplementasikan fungsionalitas ini di sisi server, menggunakan API Python atau Java.

Meskipun API ini bukan bagian yang wajib dari tumpukan, mereka mengabstraksi banyak kompleksitas dalam berinteraksi secara langsung dengan node Ethereum. Mereka juga menyediakan fungsi utilitas (misalnya, mengonversi ETH ke Gwei) sehingga sebagai pengembang Anda dapat menghabiskan lebih sedikit waktu untuk berurusan dengan kerumitan klien Ethereum dan lebih banyak waktu berfokus pada fungsionalitas khusus untuk aplikasi Anda.

Tingkat 5: Aplikasi pengguna akhir

Di tingkat teratas dari tumpukan adalah aplikasi yang berhadapan dengan pengguna. Ini adalah aplikasi standar yang biasa Anda gunakan dan bangun saat ini: terutama aplikasi web dan seluler.

Cara Anda mengembangkan antarmuka pengguna ini pada dasarnya tetap tidak berubah. Seringkali pengguna tidak perlu tahu bahwa aplikasi yang mereka gunakan dibangun menggunakan rantai blok.

Siap untuk memilih tumpukan Anda?

Lihat panduan kami untuk menyiapkan lingkungan pengembangan lokal bagi aplikasi Ethereum Anda.

Bacaan lebih lanjut

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