Calldata
Definisi
Calldata adalah jenis data hanya-baca yang dikirim bersama dengan transaksi saat berinteraksi dengan kontrak pintar di Ethereum. Ini berisi instruksi dan nilai input yang dibutuhkan kontrak pintar untuk mengeksekusi fungsi, tetapi tidak dapat dimodifikasi atau disimpan secara permanen oleh kontrak.
Sederhananya, calldata adalah pesan yang Anda kirim ke kontrak pintar yang memberitahunya apa yang harus dilakukan dan dengan informasi apa.
Untuk Apa Calldata Digunakan?
Calldata terutama Digunakan untuk meneruskan informasi ke kontrak pintar. Ini termasuk:
- Fungsi mana yang akan dipanggil
- Parameter yang diperlukan untuk menjalankan fungsi tersebut
- Data transaksi yang dikodekan dari pengguna atau aplikasi
Karena calldata tidak disimpan dalam Penyimpanan kontrak, ini lebih murah daripada Penyimpanan permanen, menjadikannya cara yang efisien untuk menyediakan data sementara selama eksekusi.
Cara Kerja Calldata
Ketika pengguna mengirimkan transaksi ke kontrak pintar, transaksi tersebut menyertakan calldata yang menentukan tindakan yang akan dilakukan. Ethereum Virtual Machine (EVM) Membaca data ini, mengeksekusi fungsi yang diminta, dan kemudian membuang calldata setelah eksekusi selesai.
Misalnya, ketika pengguna menukar token di bursa terdesentralisasi, calldata transaksi mencakup detail seperti alamat token, jumlah yang ditukar, dan alamat penerima. Kontrak pintar Membaca informasi ini, menyelesaikan pertukaran, dan tidak menyimpan calldata setelahnya.
Calldata dalam Skala Ethereum
Calldata memainkan peran penting dalam skala Ethereum, terutama untuk rollup. Rollup memposting data transaksi terkompresi ke Ethereum menggunakan calldata sehingga siapa pun dapat memverifikasi transaksi off-chain jika diperlukan.
Namun, calldata bisa menjadi mahal ketika sejumlah besar data diposting. Inilah sebabnya mengapa solusi yang lebih baru seperti gumpalan data dan lapisan ketersediaan data eksternal sedang dikembangkan untuk mengurangi biaya.
Calldata vs Penyimpanan dan Memori
Calldata berbeda dari lokasi data lain di Ethereum:
Calldata : Hanya-baca, sementara, dan Digunakan untuk input fungsi.
Memori : Sementara dan dapat dimodifikasi selama eksekusi.
Penyimpanan : Data persisten yang disimpan di blockchain dan paling mahal untuk Digunakan.
Mengapa Ini Penting
Memahami calldata membantu pengguna dan pengembang memahami bagaimana kontrak pintar menerima instruksi dan mengapa biaya transaksi bervariasi. Ini juga menjelaskan mengapa rollup mengandalkan calldata untuk transparansi dan mengapa mengoptimalkan penggunaan data sangat penting untuk skalabilitas Ethereum.
Calldata mungkin tidak terlihat oleh sebagian besar pengguna, tetapi ini adalah blok bangunan inti dari bagaimana kontrak pintar dan solusi penskalaan berfungsi di Ethereum.