Panduan Tidak Resmi untuk Menulis Kontrak Pintar Qubic
Panduan tidak resmi ini memberikan gambaran tentang pengembangan Kontrak Pintar Qubic, merinci fungsi kunci, alokasi memori, dan prosedur pengujian untuk memastikan penerapan yang kuat dan efisien.
Qsilver ยท 27 Juni 2024.
Pendahuluan
Selamat datang di panduan tidak resmi untuk menulis Kontrak Pintar Qubic (SC). Panduan ini bertujuan untuk memberikan gambaran yang jelas dan ringkas tentang cara mengembangkan dan mengimplementasikan kontrak pintar dalam ekosistem Qubic, dengan merujuk pada dokumentasi inti QPI.
Gambaran Umum Kontrak Pintar Qubic
Saat ini, dokumentasi utama untuk menulis SC adalah file QPI di GitHub. QPI adalah singkatan dari Qubic Programming Interface, yang mirip dengan API (Application Programming Interface) tetapi khusus untuk Qubic.
File QPI mencakup:
- Karakter yang Dilarang: Tidak ada operator perkalian atau pembagian, tidak ada direktif preprosesor.
- Struktur Kode Inti:
- 5000 baris kode: Mendefinisikan setiap jenis ukuran variabel dari bit tunggal hingga array dengan jutaan elemen.
- 1000 baris kode: Mengelola berbagai antrian dan tipe data terkait untuk penanganan data yang efisien.
- Beberapa ratus baris terakhir: Memungkinkan akses ke status jaringan Qubic.
Fungsi Kunci dalam QPI
Berikut adalah beberapa fungsi penting yang disediakan dalam QPI:
id arbitrator() const;
id computor(uint16 computorIndex) const; // [0..675]
uint8 day() const; // [1..31]
uint8 dayOfWeek() const; // [0..6]
uint16 epoch() const; // [0..9'999]
bit getEntity() const; // Mengembalikan "true" jika entitas ditemukan, "false" sebaliknya
uint8 hour() const; // [0..23]
sint64 invocationReward() const;
id invocator() const; // Mengembalikan id dari pengguna/kontrak yang memicu kontrak ini; mengembalikan NULL_ID jika tidak ada
template <typename T> id K12(const T& data) const;
uint16 millisecond() const; // [0..999]
uint8 minute() const; // [0..59]
uint8 month() const; // [1..12]
id nextId(const id& currentId) const;
sint64 numberOfPossessedShares() const;
id originator() const; // Mengembalikan id dari pengguna yang memicu seluruh rantai pemanggilan; mengembalikan NULL_ID jika tidak ada
uint8 second() const; // [0..59]
bit signatureValidity() const;
uint32 tick() const; // [0..999'999'999]
uint8 year() const; // [0..99] (0 = 2000, 1 = 2001, โฆ, 99 = 2099)
Apa Artinya Ini?
Kontrak Pintar Qubic adalah Turing complete, yang berarti Anda dapat mengimplementasikan hampir semua logika komputasi. Namun, batasan tertentu memastikan bahwa SC berjalan dalam lingkungan yang sangat terkotak dan aman.
Alokasi Memori
SC menggunakan model alokasi memori statis di mana semua memori harus dialokasikan sebelumnya. Desain ini sangat penting untuk mengelola struktur data secara efisien dalam batas RAM 1GB. Meskipun batas ini akan berlipat ganda di masa depan, alokasi ini tetap tetap, memerlukan perencanaan penggunaan memori dengan hati-hati.
Penggunaan Perpustakaan
Saat ini, Anda tidak dapat menggunakan perpustakaan eksternal dalam SC; semua kode yang diperlukan harus dimasukkan langsung dalam sumber. Seiring waktu, saat lebih banyak SC menggabungkan berbagai perpustakaan, ini mungkin tersedia untuk digunakan publik dalam SC lainnya.
Transaksi dan Pesan Jaringan RCF
Setiap SC memiliki alamat unik yang berasal dari kunci publik, dengan ID kontrak menjadi 64 bit terendah. SC dipanggil melalui transaksi yang dikirim ke alamat ini, dengan inputData
menentukan operasi. Selain itu, status SC dapat dikueri menggunakan pesan jaringan RCF.
Contoh: Airdrop SC
Airdrop SC dapat mengiterasi melalui dataset dan mendistribusikan QU atau token ke setiap alamat dalam satu tick per transaksi SC. Dengan batas saat ini 1024 transaksi per tick, ini dapat menghasilkan hingga 500 juta transfer per tick. Throughput aktual tergantung pada kompleksitas SC.
Cara Menguji SC Anda
- Kembangkan SC Anda: Tulis dan debug kode kontrak pintar Anda.
- Perbarui qubic-cli: Pastikan transaksi SC dan fungsi RCF Anda terintegrasi.
- Buat Pembaruan Inti Testnet: Integrasikan SC Anda ke dalam lingkungan testnet.
- Jalankan Tes: Gunakan qubic-cli untuk mengueri node testnet Anda dan memvalidasi kinerja SC.
- Pengujian Stres: Lakukan pengujian beban dan pengujian otomatis untuk memastikan stabilitas.
- Ajukan untuk Persetujuan: Setelah debugging selesai, ajukan SC Anda untuk persetujuan kuorum dan kemudian lanjutkan ke IPO.
Dengan mengikuti langkah-langkah ini, Anda dapat memastikan bahwa kontrak pintar Anda kuat, efisien, dan siap untuk diterapkan dalam jaringan Qubic. Selamat coding!
Baca Seri โTidak Resmiโ Qsilver
- Whitepaper Sementara Qubic yang Tidak Resmi
- Detail Crypto Qubic
- Panduan Tidak Resmi untuk Integrasi Layanan Qubic
- Panduan Tidak Resmi untuk Menulis Kontrak Pintar Qubic
Untuk pembaruan terbaru, bergabunglah dengan Discord Valis, ikuti kami di X, dan tandai blog kami.
โ Sebelumnya
Selanjutnya โ