Cara menulis kontrak pintar - pengalaman pribadi saya

Para penggemar kripto yang terhormat! Saya memutuskan untuk berbagi pengalaman saya dalam membuat kontrak pintar. Jujur saja, ketika saya baru mulai, hampir saja saya mencabut rambut saya karena semua istilah dan proses ini. Tapi ayo kita mulai.

Pemilihan blockchain - langkah pertama dan utama

Pertama-tama, kita perlu menentukan blockchain. Saya memilih Ethereum, meskipun jujur saja, biaya di sana benar-benar membuat saya frustrasi! Ada juga opsi lain - BNB Chain atau Solana. Masing-masing memiliki kelebihan dan kekurangan.

Apa bedanya di mana menulis kode, kata Anda? Sangat besar! Beberapa blockchain lebih cepat dan lebih murah, tetapi kurang aman. Lainnya - sebaliknya. Selain itu, pemilihan blockchain juga mempengaruhi audiens yang akan menggunakan kontrak Anda.

Bahasa pemrograman - Solidity memimpin

Pada umumnya, semua orang menulis dalam Solidity. Ya, Anda dapat menggunakan bahasa lain, tetapi mengapa membuatnya rumit? Solidity dirancang khusus untuk kontrak pintar dan memiliki sintaks yang jelas.

soliditas pragma solidity ^0.8.0;

kontrak MoyPervyyKontrakt { string public privet = "Halo, blockchain!"; }

Ini adalah hal sederhana yang sudah dapat dianggap sebagai kontrak. Namun, proyek nyata tentu jauh lebih kompleks.

Lingkungan pengembangan - tanpa alat tidak ke mana-mana

Saya mulai dengan Remix IDE - ini adalah lingkungan berbasis browser di mana Anda dapat menulis, mengompilasi, dan menguji kontrak langsung di internet. Sangat nyaman untuk pemula! Kemudian saya beralih ke alat yang lebih canggih seperti Hardhat atau Truffle.

Pengujian - tahap yang paling menegangkan

Inilah tempat di mana "kesenangan" sebenarnya dimulai! Ketika kamu menulis kontrak, itu perlu diuji. Dan di sini saya menginjak semua perangkap yang mungkin.

Suatu ketika saya membuat kontrak untuk mini game dengan koin, tetapi saya lupa menambahkan pemeriksaan untuk penarikan ulang dana. Hasilnya? Seseorang dari kelompok pengujian hampir membuat proyek bangkrut dengan menarik uang berulang kali. Untungnya, ini adalah testnet!

Deploy - titik tanpa kembali

Setelah semua pengujian, kontrak perlu dideploy (ke dalam blockchain. Dan di sinilah penting untuk dipahami - ini adalah proses yang tidak dapat diubah! Kode yang masuk ke blockchain tidak dapat diubah. Hanya dapat dideploy versi baru.

Saya sekali lupa menghapus baris dengan kode uji. Saya harus membuat kontrak baru dan menjelaskan kepada pengguna mengapa yang lama tidak lagi berfungsi. Memalukan bagi saya!

Kerentanan - mimpi buruk bagi setiap pengembang

Keamanan dalam kontrak pintar adalah sapi suci. Kesalahan sekecil apapun bisa mengakibatkan kerugian jutaan. Ingat cerita tentang The DAO? Di sana seorang hacker mencuri ) juta karena kerentanan dalam kode.

Saya pasti memeriksa kontrak saya di:

  • overflow
  • serangan masuk kembali
  • kerentanan pengendalian akses
  • dan banyak hal lainnya

Saran saya untuk pemula

Jangan menciptakan sepeda! Gunakan pustaka siap pakai seperti OpenZeppelin. Mereka telah teruji oleh waktu dan komunitas.

Dan ya, jangan terburu-buru untuk langsung menulis kontrak yang kompleks untuk pasar perdagangan atau protokol DeFi. Mulailah dengan yang sederhana - token, pemungutan suara, permainan sederhana.

Dan juga - selalu pikirkan tentang apa yang bisa salah. Di dunia kontrak pintar, tidak ada hak untuk melakukan kesalahan. Setiap fungsi harus diperiksa bukan pada bagaimana seharusnya ia bekerja, tetapi pada bagaimana penjahat dapat merusaknya.

Semoga berhasil di dunia blockchain! Saya akan pergi menulis kontrak baru yang, saya harap, tidak akan diretas satu jam setelah diluncurkan.

Lihat Asli
Halaman ini mungkin berisi konten pihak ketiga, yang disediakan untuk tujuan informasi saja (bukan pernyataan/jaminan) dan tidak boleh dianggap sebagai dukungan terhadap pandangannya oleh Gate, atau sebagai nasihat keuangan atau profesional. Lihat Penafian untuk detailnya.
  • Hadiah
  • Komentar
  • Posting ulang
  • Bagikan
Komentar
0/400
Tidak ada komentar
  • Sematkan
Perdagangkan Kripto Di Mana Saja Kapan Saja
qrCode
Pindai untuk mengunduh aplikasi Gate
Komunitas
Bahasa Indonesia
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)