Урок 3

Membuat dan Mengelola Kontrak Cerdas di Vyper

Anda telah menciptakan dasar yang kuat untuk pemrograman blockchain dengan Vyper dengan menyelesaikan kursus ini. Anda sekarang memiliki pemahaman yang kuat tentang Ethereum, kontrak pintar, dan cara membuatnya di Remix IDE dengan Vyper. Pemahaman ini memberikan banyak peluang untuk mengembangkan aplikasi terdesentralisasi dan berpartisipasi dalam ekosistem blockchain.

Pengantar

Selamat datang di Pelajaran 3! Dalam pelajaran ini, kita akan fokus pada penerapan konsep dan sintaksis yang telah kita pelajari dari pelajaran sebelumnya untuk mengembangkan kontrak pintar Ethereum menggunakan Vyper dengan Remix IDE. Kami akan membuat, menerapkan, dan berinteraksi dengan kontrak pintar sederhana, memberi Anda pengalaman langsung dengan Vyper dan Ethereum. Kontrak pertama akan menjadi kontrak penyimpanan data sederhana, sedangkan kontrak kedua akan mensimulasikan sistem pemungutan suara dasar.

SimpleStorage: Pengantar Kontrak Cerdas

Kontrak pertama yang akan kami terapkan adalah SimpleStorage. Kontrak ini, seperti namanya, adalah kontrak penyimpanan data sederhana yang menyimpan satu nomor. SimpleStorage terdiri dari storedData, dan dua fungsi, set dan get. Fungsi set memungkinkan pengguna untuk menyimpan nomor, dan fungsi get memungkinkan siapa saja mengambil nomor ini.

Menerapkan dan Berinteraksi dengan SimpleStorage

Kami akan melalui langkah-langkah untuk menerapkan dan berinteraksi dengan kontrak SimpleStorage di blockchain Ethereum. Menyebarkan kontrak ke blockchain Ethereum adalah proses transmisi bytecode kontrak dan ABI ke jaringan Ethereum, tempat kontrak tersebut dapat dipanggil dan dieksekusi. Setelah kontrak diterapkan, kontrak tersebut menerima alamat unik yang dapat dihubungi.

Berikut kode untuk SimpleStorage:

Python 
 # @title SimpleStorage 
 StoredData: int128 

 @external 
 def set(x: int128): 
 self.storedData = x 

 @external 
 def get() -> int128: 
 return self.storedData

Dalam kontrak ini, kita mendefinisikan variabel bilangan bulat storedData, fungsi publik set(x: int128) untuk menetapkan storedData, dan fungsi konstanta publik get() -> int128 untuk mengambil storedData saat ini.

Berikut panduan langkah demi langkah tentang cara menerapkan kontrak ini menggunakan Remix:

  1. Buka browser web Anda dan navigasikan ke Remix Ethereum IDE.

  2. Aktifkan Plugin Vyper

  3. Alihkan lingkungan ke Injected Web3 di bagian Deploy & Run Transactions . Ini akan menghubungkan Remix ke dompet MetaMask Anda.

  4. Di bagian File Explorer , klik ikon + untuk membuat file baru. Beri nama SimpleStorage.vy.

  5. Tempelkan kode kontrak SimpleStorage ke dalam file baru ini.

  6. Sekarang buka tab VyperCompile dan pilih kontrak SimpleStorage .

  7. Beralih ke tab Deploy & Run Transactions , lalu klik tombol Deploy .

  8. MetaMask akan membuka popup konfirmasi transaksi. Konfirmasikan transaksi.

  9. Setelah transaksi dikonfirmasi, Anda akan melihat kontrak SimpleStorage yang diterapkan di bagian Deployed Contracts .

  10. Anda sekarang dapat berinteraksi dengan kontrak. Misalnya, untuk menyimpan nomor, masukkan nomor di fungsi set dan klik transact. Untuk mengambil nomor yang disimpan, klik get.

SimpleVoting: Kontrak yang Lebih Kompleks

Setelah kita menguasai SimpleStorage, kita akan beralih ke sesuatu yang sedikit lebih kompleks: SimpleVoting. Kontrak SimpleVoting akan mensimulasikan sistem pemungutan suara sederhana. Kami akan memiliki daftar kandidat, masing-masing direpresentasikan sebagai string. Pengguna akan dapat memilih kandidat ini, dan kami akan melacak jumlah suara yang diterima setiap kandidat. Kontrak tersebut akan memberikan fungsi untuk menambah calon, memilih calon, dan mendapatkan total suara yang diterima seorang calon.

Menerapkan dan Berinteraksi dengan SimpleVoting

Kontrak SimpleVoting sedikit lebih rumit daripada SimpleStorage. Di SimpleVoting, kita akan memiliki daftar kandidat, masing-masing diwakili oleh sebuah string.

Berikut kode untuk SimpleVoting:

Python 
 # Kontrak Pemungutan Suara Vyper 

 # Deklarasikan variabel status `suara` sebagai HashMap untuk menyimpan suara setiap kandidat.
suara: HashMap[bytes32, uint256] 

 @external 
 suara pasti (kandidat: bytes32): 
 """ 
 Memberikan suara untuk seorang kandidat.

    Argumen: 
 kandidat: bytes32 - Pengidentifikasi kandidat yang akan dipilih.
    """ 
 # Menambah penghitungan suara untuk kandidat yang ditentukan.
    self.votes[kandidat] += 1 

 @external 
 @view 
 def get_votes(kandidat: bytes32) -> uint256: 
 """ 
 Dapatkan jumlah total suara untuk seorang kandidat.

    Argumen: 
 kandidat: bytes32 - Pengidentifikasi kandidat yang akan diambil suaranya.

    Pengembalian: 
 uint256 - Jumlah total suara yang diterima kandidat.
    """ 
 mengembalikan self.votes[kandidat]

Kontrak ini cukup mendasar, tanpa adanya tindakan pencegahan terhadap pemungutan suara ganda atau tidak sah. Dalam praktiknya, Anda perlu memasukkan prosedur untuk mencegah kesulitan ini, seperti pendaftaran pemilih dan pemeriksaan untuk memastikan bahwa setiap alamat hanya dapat memberikan suara satu kali.

Kesimpulan dan Langkah Selanjutnya

Anda telah menciptakan dasar yang kuat untuk pemrograman blockchain dengan Vyper dengan menyelesaikan kursus ini. Anda sekarang memiliki pemahaman yang kuat tentang Ethereum, kontrak pintar, dan cara membuatnya di Remix IDE dengan Vyper. Pemahaman ini memberikan banyak peluang untuk mengembangkan aplikasi terdesentralisasi dan berpartisipasi dalam ekosistem blockchain.

Untuk lebih meningkatkan keterampilan dan pengetahuan Anda, pertimbangkan untuk menjelajahi bidang-bidang berikut:

  1. Pemrograman Soliditas Tingkat Lanjut: Soliditas adalah bahasa pemrograman populer lainnya untuk kontrak pintar Ethereum. Mempelajari Soliditas akan memperluas kemampuan Anda untuk bekerja dengan kontrak yang ada dan berkontribusi pada komunitas Ethereum. Periksa kursus kami di sini: [masukkan Tautan kursus Soliditas saat online]

  2. Pengembangan Aplikasi Terdesentralisasi (DApp): Selidiki lebih dalam pembuatan aplikasi terdesentralisasi yang lengkap dengan menggabungkan kontrak pintar dengan pengembangan front-end menggunakan kerangka kerja seperti Web3.js, React, atau Vue.js. Ini akan memungkinkan Anda membuat antarmuka pengguna interaktif yang berinteraksi dengan kontrak pintar Anda.

  3. Keamanan dan Audit: Jelajahi praktik terbaik untuk mengamankan kontrak pintar dan melakukan audit kode secara menyeluruh. Memahami potensi kerentanan dan mitigasi risiko akan memastikan keandalan dan keamanan kontrak pintar Anda.

  4. Interoperabilitas Blockchain: Selidiki integrasi berbagai jaringan dan protokol blockchain. Pelajari tentang komunikasi lintas rantai dan pengembangan kontrak pintar yang dapat dioperasikan dan berinteraksi dengan banyak blockchain.
    Ingat, teknologi blockchain terus berkembang, dan sangat penting untuk selalu mengikuti perkembangan terkini. Terlibat dengan komunitas blockchain, berpartisipasi aktif dalam diskusi, dan jelajahi konsep dan teknologi baru agar tetap mendapat informasi dan terkini.

Відмова від відповідальності
* Криптоінвестиції пов'язані зі значними ризиками. Дійте обережно. Курс не є інвестиційною консультацією.
* Курс створений автором, який приєднався до Gate Learn. Будь-яка думка, висловлена автором, не є позицією Gate Learn.
Каталог
Урок 3

Membuat dan Mengelola Kontrak Cerdas di Vyper

Anda telah menciptakan dasar yang kuat untuk pemrograman blockchain dengan Vyper dengan menyelesaikan kursus ini. Anda sekarang memiliki pemahaman yang kuat tentang Ethereum, kontrak pintar, dan cara membuatnya di Remix IDE dengan Vyper. Pemahaman ini memberikan banyak peluang untuk mengembangkan aplikasi terdesentralisasi dan berpartisipasi dalam ekosistem blockchain.

Pengantar

Selamat datang di Pelajaran 3! Dalam pelajaran ini, kita akan fokus pada penerapan konsep dan sintaksis yang telah kita pelajari dari pelajaran sebelumnya untuk mengembangkan kontrak pintar Ethereum menggunakan Vyper dengan Remix IDE. Kami akan membuat, menerapkan, dan berinteraksi dengan kontrak pintar sederhana, memberi Anda pengalaman langsung dengan Vyper dan Ethereum. Kontrak pertama akan menjadi kontrak penyimpanan data sederhana, sedangkan kontrak kedua akan mensimulasikan sistem pemungutan suara dasar.

SimpleStorage: Pengantar Kontrak Cerdas

Kontrak pertama yang akan kami terapkan adalah SimpleStorage. Kontrak ini, seperti namanya, adalah kontrak penyimpanan data sederhana yang menyimpan satu nomor. SimpleStorage terdiri dari storedData, dan dua fungsi, set dan get. Fungsi set memungkinkan pengguna untuk menyimpan nomor, dan fungsi get memungkinkan siapa saja mengambil nomor ini.

Menerapkan dan Berinteraksi dengan SimpleStorage

Kami akan melalui langkah-langkah untuk menerapkan dan berinteraksi dengan kontrak SimpleStorage di blockchain Ethereum. Menyebarkan kontrak ke blockchain Ethereum adalah proses transmisi bytecode kontrak dan ABI ke jaringan Ethereum, tempat kontrak tersebut dapat dipanggil dan dieksekusi. Setelah kontrak diterapkan, kontrak tersebut menerima alamat unik yang dapat dihubungi.

Berikut kode untuk SimpleStorage:

Python 
 # @title SimpleStorage 
 StoredData: int128 

 @external 
 def set(x: int128): 
 self.storedData = x 

 @external 
 def get() -> int128: 
 return self.storedData

Dalam kontrak ini, kita mendefinisikan variabel bilangan bulat storedData, fungsi publik set(x: int128) untuk menetapkan storedData, dan fungsi konstanta publik get() -> int128 untuk mengambil storedData saat ini.

Berikut panduan langkah demi langkah tentang cara menerapkan kontrak ini menggunakan Remix:

  1. Buka browser web Anda dan navigasikan ke Remix Ethereum IDE.

  2. Aktifkan Plugin Vyper

  3. Alihkan lingkungan ke Injected Web3 di bagian Deploy & Run Transactions . Ini akan menghubungkan Remix ke dompet MetaMask Anda.

  4. Di bagian File Explorer , klik ikon + untuk membuat file baru. Beri nama SimpleStorage.vy.

  5. Tempelkan kode kontrak SimpleStorage ke dalam file baru ini.

  6. Sekarang buka tab VyperCompile dan pilih kontrak SimpleStorage .

  7. Beralih ke tab Deploy & Run Transactions , lalu klik tombol Deploy .

  8. MetaMask akan membuka popup konfirmasi transaksi. Konfirmasikan transaksi.

  9. Setelah transaksi dikonfirmasi, Anda akan melihat kontrak SimpleStorage yang diterapkan di bagian Deployed Contracts .

  10. Anda sekarang dapat berinteraksi dengan kontrak. Misalnya, untuk menyimpan nomor, masukkan nomor di fungsi set dan klik transact. Untuk mengambil nomor yang disimpan, klik get.

SimpleVoting: Kontrak yang Lebih Kompleks

Setelah kita menguasai SimpleStorage, kita akan beralih ke sesuatu yang sedikit lebih kompleks: SimpleVoting. Kontrak SimpleVoting akan mensimulasikan sistem pemungutan suara sederhana. Kami akan memiliki daftar kandidat, masing-masing direpresentasikan sebagai string. Pengguna akan dapat memilih kandidat ini, dan kami akan melacak jumlah suara yang diterima setiap kandidat. Kontrak tersebut akan memberikan fungsi untuk menambah calon, memilih calon, dan mendapatkan total suara yang diterima seorang calon.

Menerapkan dan Berinteraksi dengan SimpleVoting

Kontrak SimpleVoting sedikit lebih rumit daripada SimpleStorage. Di SimpleVoting, kita akan memiliki daftar kandidat, masing-masing diwakili oleh sebuah string.

Berikut kode untuk SimpleVoting:

Python 
 # Kontrak Pemungutan Suara Vyper 

 # Deklarasikan variabel status `suara` sebagai HashMap untuk menyimpan suara setiap kandidat.
suara: HashMap[bytes32, uint256] 

 @external 
 suara pasti (kandidat: bytes32): 
 """ 
 Memberikan suara untuk seorang kandidat.

    Argumen: 
 kandidat: bytes32 - Pengidentifikasi kandidat yang akan dipilih.
    """ 
 # Menambah penghitungan suara untuk kandidat yang ditentukan.
    self.votes[kandidat] += 1 

 @external 
 @view 
 def get_votes(kandidat: bytes32) -> uint256: 
 """ 
 Dapatkan jumlah total suara untuk seorang kandidat.

    Argumen: 
 kandidat: bytes32 - Pengidentifikasi kandidat yang akan diambil suaranya.

    Pengembalian: 
 uint256 - Jumlah total suara yang diterima kandidat.
    """ 
 mengembalikan self.votes[kandidat]

Kontrak ini cukup mendasar, tanpa adanya tindakan pencegahan terhadap pemungutan suara ganda atau tidak sah. Dalam praktiknya, Anda perlu memasukkan prosedur untuk mencegah kesulitan ini, seperti pendaftaran pemilih dan pemeriksaan untuk memastikan bahwa setiap alamat hanya dapat memberikan suara satu kali.

Kesimpulan dan Langkah Selanjutnya

Anda telah menciptakan dasar yang kuat untuk pemrograman blockchain dengan Vyper dengan menyelesaikan kursus ini. Anda sekarang memiliki pemahaman yang kuat tentang Ethereum, kontrak pintar, dan cara membuatnya di Remix IDE dengan Vyper. Pemahaman ini memberikan banyak peluang untuk mengembangkan aplikasi terdesentralisasi dan berpartisipasi dalam ekosistem blockchain.

Untuk lebih meningkatkan keterampilan dan pengetahuan Anda, pertimbangkan untuk menjelajahi bidang-bidang berikut:

  1. Pemrograman Soliditas Tingkat Lanjut: Soliditas adalah bahasa pemrograman populer lainnya untuk kontrak pintar Ethereum. Mempelajari Soliditas akan memperluas kemampuan Anda untuk bekerja dengan kontrak yang ada dan berkontribusi pada komunitas Ethereum. Periksa kursus kami di sini: [masukkan Tautan kursus Soliditas saat online]

  2. Pengembangan Aplikasi Terdesentralisasi (DApp): Selidiki lebih dalam pembuatan aplikasi terdesentralisasi yang lengkap dengan menggabungkan kontrak pintar dengan pengembangan front-end menggunakan kerangka kerja seperti Web3.js, React, atau Vue.js. Ini akan memungkinkan Anda membuat antarmuka pengguna interaktif yang berinteraksi dengan kontrak pintar Anda.

  3. Keamanan dan Audit: Jelajahi praktik terbaik untuk mengamankan kontrak pintar dan melakukan audit kode secara menyeluruh. Memahami potensi kerentanan dan mitigasi risiko akan memastikan keandalan dan keamanan kontrak pintar Anda.

  4. Interoperabilitas Blockchain: Selidiki integrasi berbagai jaringan dan protokol blockchain. Pelajari tentang komunikasi lintas rantai dan pengembangan kontrak pintar yang dapat dioperasikan dan berinteraksi dengan banyak blockchain.
    Ingat, teknologi blockchain terus berkembang, dan sangat penting untuk selalu mengikuti perkembangan terkini. Terlibat dengan komunitas blockchain, berpartisipasi aktif dalam diskusi, dan jelajahi konsep dan teknologi baru agar tetap mendapat informasi dan terkini.

Відмова від відповідальності
* Криптоінвестиції пов'язані зі значними ризиками. Дійте обережно. Курс не є інвестиційною консультацією.
* Курс створений автором, який приєднався до Gate Learn. Будь-яка думка, висловлена автором, не є позицією Gate Learn.