Menyusun Kontrak Pintar
Pelajari cara menggunakan pengkompil Solidity dalam Remix untuk menyemak ralat serta menjana kod bait dan ABI bagi kontrak Anda.
Menyusun Kontrak Pintar ialah pelajaran Asas Pembangunan Web3 & DApp percuma di CoddyKit. Ini ialah pelajaran 2 daripada 3. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Asas Pembangunan Web3 & DApp, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Asas Pembangunan Web3 & DApp merangkumi sejumlah 3 pelajaran.
Mengapa Menyusun Kontrak Pintar?
Kontrak pintar yang ditulis dalam Solidity ialah kod yang boleh dibaca manusia. Namun, rantaian blok tidak memahami Solidity secara langsung! Rantaian blok memerlukan format yang mesra mesin.
Di sinilah penyusunan diperlukan. Proses ini menterjemahkan kod Solidity anda kepada "kod bait" yang boleh dilaksanakan oleh Mesin Maya Ethereum (EVM). Proses ini juga menjana Antara Muka Binari Aplikasi (ABI) untuk interaksi.
Apakah Kod Bait?
Bytecode ialah kod peringkat rendah yang boleh dibaca mesin, yang menjadi hasil kompilasi kontrak pintar. Anggaplah ia sebagai program boleh laku untuk Ethereum Virtual Machine (EVM).
Apabila Anda menggunakan kontrak, sebenarnya Anda menggunakan bytecode-nya pada rantaian blok. Bytecode inilah yang diproses oleh EVM apabila seseorang berinteraksi dengan kontrak Anda.
Pengenalan kepada ABI
Application Binary Interface (ABI) ialah tatasusunan JSON yang menerangkan fungsi kontrak pintar Anda, parameter inputnya dan jenis outputnya.
Ia bertindak sebagai pelan, dengan memberitahu program lain (seperti bahagian hadapan DApp) cara untuk "berkomunikasi" dengan kontrak Anda yang telah digunakan. Tanpa ABI, bahagian hadapan tidak akan tahu cara memanggil fungsi tertentu atau memahami datanya.
Tab Kompilasi Remix
Remix IDE mempunyai tab khusus "Solidity Compiler" (biasanya diwakili oleh ikon pengkompil pada bar sisi kiri). Di sinilah Anda mengurus semua tetapan dan tindakan kompilasi.
Apabila Anda membuka tab ini, Remix akan cuba mengesan dan mengkompil fail Solidity aktif Anda secara automatik, lalu memberikan maklum balas dengan cepat.
Menetapkan Versi Pengkompil
Langkah penting pertama ialah memilih versi pengkompil Solidity yang betul. Kontrak Anda biasanya menyatakan perkara ini dengan baris pragma solidity ^0.8.0;.
Remix sering mencadangkan satu versi. Adalah penting bahawa versi pengkompil yang Anda pilih dalam Remix sepadan dengan atau serasi dengan arahan pragma dalam fail kontrak Anda. Ketidakpadanan boleh menyebabkan ralat!
Versi EVM dan Pengoptimuman
Anda juga boleh memilih versi EVM. Perkara ini berkaitan dengan ciri khusus dan kod operasi yang tersedia dalam cabang keras Ethereum yang berbeza. Bagi kebanyakan kontrak baharu, versi stabil terkini sudah memadai.
Enable optimization ialah satu lagi tetapan. Apabila didayakan, pengkompil cuba mengurangkan saiz bytecode dan kos gas kontrak Anda. Walaupun secara umumnya baik, tetapan ini kadangkala boleh menyukarkan penyahpepijatan.
Mengkompil Kontrak Mudah
Buka tab "Solidity Compiler" dalam Remix. Pastikan fail Anda dipilih dan versi pengkompil sepadan dengan pragma Anda. Kemudian, klik butang "Compile [contract_name].sol".
Jika berjaya, Anda akan melihat tanda semak hijau di sebelah ikon pengkompil! Jika tidak, Remix akan memaparkan ralat atau amaran dalam konsol.
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
contract SimpleStorage {
uint public myNumber;
function setNumber(uint _newNumber) public {
myNumber = _newNumber;
}
function getNumber() public view returns (uint) {
return myNumber;
}
}Meneliti Output: Bytecode
Selepas kompilasi berjaya, tatal ke bawah dalam tab pengkompil. Anda akan menemui bahagian "Bytecode". Rentetan panjang aksara perenambelasan ini ialah kod kontrak Anda yang telah dikompil.
Bytecode inilah yang digunakan pada rantaian blok. Ia padat dan cekap untuk diproses oleh EVM, tetapi tidak mudah dibaca oleh manusia.
Meneliti Output: ABI
Di bawah bytecode, Anda juga akan melihat bahagian "ABI". Klik untuk menyalinnya. Ia ialah tatasusunan JSON yang memperincikan setiap fungsi awam dan luaran, peristiwa serta pemboleh ubah keadaan dalam kontrak Anda.
JSON ini amat penting untuk mana-mana aplikasi luaran (seperti DApp web) supaya aplikasi tersebut tahu dengan tepat cara berinteraksi dengan kontrak Anda pada rantaian blok.
Ralat Kompilasi Lazim
Jangan bimbang jika kontrak Anda tidak berjaya dikompil pada percubaan pertama! Remix menyediakan mesej ralat yang membantu dalam konsol dan terus dalam penyunting kod Anda.
- Ralat Sintaks: Titik koma tiada atau tanda kurung tidak sepadan.
- Ketidakpadanan Versi:
pragmatidak sepadan dengan pengkompil yang dipilih. - Pemboleh Ubah/Fungsi Tidak Ditakrifkan: Kesilapan ejaan pada nama atau nama tersebut belum diisytiharkan.
Baca mesej ralat dengan teliti; mesej tersebut sering menunjukkan nombor baris secara langsung dan menerangkan masalahnya.
Semakan Pantas
Anda telah mempelajari tentang kompilasi, bytecode dan ABI. Apakah tujuan utama ABI kontrak pintar?
Imbas Kembali dan Langkah Seterusnya
Syabas! Anda telah mempelajari bahawa kompilasi kod Solidity menukarkannya kepada bytecode (untuk EVM) dan menjana ABI (untuk interaksi luaran).
Anda juga telah meneroka pengkompil dalam Remix IDE, memahami tetapan pengkompil dan mengetahui tempat untuk mencari bytecode serta ABI yang dijana.
Seterusnya, Anda akan mempraktikkan pengetahuan ini dengan menggunakan kontrak pintar yang telah dikompil pada persekitaran rantaian blok simulasi!
Pelajari Asas Pembangunan Web3 & DApp dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 29
- Pelajaran
- 105
Soalan Lazim
Adakah pelajaran “Menyusun Kontrak Pintar” percuma?
Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Asas Pembangunan Web3 & DApp, termasuk “Menyusun Kontrak Pintar”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Asas Pembangunan Web3 & DApp merangkumi sejumlah 3 pelajaran.
Apakah yang akan saya pelajari dalam “Menyusun Kontrak Pintar”?
Pelajari cara menggunakan pengkompil Solidity dalam Remix untuk menyemak ralat serta menjana kod bait dan ABI bagi kontrak Anda. Anda berlatih Asas Pembangunan Web3 & DApp menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Asas Pembangunan Web3 & DApp?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Asas Pembangunan Web3 & DApp di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 2 daripada 3.
Berapa lamakah pelajaran “Menyusun Kontrak Pintar” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Asas Pembangunan Web3 & DApp ini?
Ya. Setiap pelajaran Asas Pembangunan Web3 & DApp menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Tinjauan IDE Remix
- Menyusun Kontrak Pintar
- Melaksanakan dan Berinteraksi