第1課

Pengantar Pemungutan Suara Terdesentralisasi dan IDE Remix

Selamat datang di pelajaran pertama kursus kami tentang membangun sistem pemungutan suara yang terdesentralisasi. Dalam pelajaran ini, kita akan mengeksplorasi konsep pemungutan suara yang terdesentralisasi dan memahami manfaat yang dihasilkannya dalam proses pemungutan suara. Kami juga akan memperkenalkan Anda pada Remix IDE, alat canggih yang digunakan untuk mengembangkan dan menerapkan kontrak pintar Ethereum.

Pemungutan Suara Terdesentralisasi

Pemungutan suara terdesentralisasi mengacu pada sistem pemungutan suara yang beroperasi pada blockchain. Ide utamanya di sini adalah memanfaatkan transparansi, keamanan, dan kekekalan yang disediakan oleh teknologi blockchain untuk membangun sistem pemungutan suara yang sulit untuk dimanipulasi dan mudah diverifikasi.

Dalam sistem pemungutan suara yang terdesentralisasi, setiap suara merupakan transaksi di blockchain yang dapat dilihat oleh semua peserta namun hanya dapat diubah oleh pemilih hingga suara diberikan. Setelah pemungutan suara dilakukan, pemungutan suara tersebut dicatat di blockchain dan tidak dapat diubah, sehingga memberikan mekanisme pemungutan suara yang transparan dan anti gangguan.

Pengantar Remix IDE

Remix IDE (Integrated Development Environment) adalah alat sumber terbuka yang kuat yang dirancang khusus untuk pengembangan kontrak pintar Ethereum. Ini berjalan langsung di browser web Anda, jadi Anda tidak perlu menginstal apa pun di komputer Anda.

Anda dapat mengakses Remix IDE di https://remix.ethereum.org. Saat Anda membuka Remix di browser Anda, Anda akan menemukan tiga panel:

  1. Panel Kiri: Di sinilah Anda dapat membuat, mengimpor, dan mengelola file Soliditas Anda. Ini juga mencakup berbagai plugin untuk kompilasi, pengujian, debugging, dan penerapan kontrak Anda.

  2. Panel Pusat: Ini adalah editor kode Anda. Di sini Anda akan menulis dan mengedit kode Soliditas Anda.

  3. Panel Kanan: Panel ini menyediakan berbagai alat untuk mengkompilasi kontrak Anda, menyebarkannya di jaringan Ethereum (baik di jaringan Ethereum nyata atau simulasi JavaScript VM), dan berinteraksi dengan kontrak yang Anda terapkan.

Kontrak Cerdas Pertama Anda

Mari kita mulai dengan kontrak “Pemilih” yang sederhana. Kontrak ini akan melacak pemilih di sistem kami.

Di Remix IDE, buka “File Explorer” dan klik ikon “+” untuk membuat file baru. Beri nama Voter.sol.

Sekarang, mari kita mulai menulis kontrak kita:

Soliditas 
 // Pengenal Lisensi SPDX: GPL-3.0 
 pragma soliditas >=0.7.0 <0.9.0; 

 contract Voter { 
 // Sebuah struct untuk mewakili seseorang 
 struct Person {
        bool voted;  // if true, that person already voted
        uint vote;   // index of the voted proposal
    }

    // Sebuah pemetaan untuk melacak semua pemilih 
 pemetaan(alamat => Orang) pemilih publik; 

 // Fungsi untuk mendaftarkan pemilih 
 fungsi registerVoter() public {
        voters[msg.sender].voted = false;
    }
}
  1. Pengidentifikasi Lisensi SPDX: Baris // SPDX-License-Identifier: GPL-3.0 menunjukkan bahwa kontrak kami menggunakan GNU General Public License v3.0. Ini adalah lisensi perangkat lunak bebas yang umum digunakan yang menjamin kebebasan pengguna akhir untuk menjalankan, mempelajari, berbagi, dan memodifikasi perangkat lunak.

  2. Petunjuk Pragma: pragma solidity >=0.7.0 &lt;0.9.0; pernyataan menetapkan bahwa kontrak ditulis dalam versi Soliditas yang lebih besar atau sama dengan 0.7.0 dan kurang dari 0.9.0. Ini membantu mencegah kontrak dikompilasi dengan versi kompiler yang lebih baru dan tidak kompatibel.

  3. Definisi Kontrak: Blok contract Voter {...} mendefinisikan kontrak baru bernama Voter. Di sinilah kita menentukan variabel status dan fungsi kontrak.

  4. Definisi Struktur: Di dalam kontrak, kami mendefinisikan struct Person yang mewakili seseorang dalam sistem pemungutan suara kami. Setiap Person memiliki boolean voted yang menunjukkan apakah mereka sudah memilih dan bilangan bulat vote yang melacak proposal yang mereka pilih.

  5. Variabel Negara: mapping(address => Person) public voters; pernyataan mendeklarasikan variabel negara voters yang membuat tautan antara alamat Ethereum dan struct Person . Hal ini akan memungkinkan kami untuk melacak siapa yang berhak memilih dalam sistem dan berapa jumlah suara mereka. Kata kunci public secara otomatis menciptakan fungsi pengambil bagi voters.

  6. Definisi Fungsi: Blok function registerVoter() public {...} mendefinisikan fungsi publik yang memungkinkan pengguna mendaftarkan diri sebagai pemilih dalam sistem. voters[msg.sender].voted = false; pernyataan menetapkan status voted pemilih baru menjadi false.
    Itu saja untuk kontrak ini! Seiring kemajuan kami dalam kursus ini, kami akan memperluas kontrak ini dengan menambahkan lebih banyak fungsi untuk proses pemungutan suara. Ingatlah untuk mengkompilasi dan menguji kode Anda secara rutin untuk memastikan semuanya berfungsi sesuai harapan. Di Remix IDE, Anda dapat mengkompilasi kontrak Anda dengan mengklik ikon kompiler Soliditas di sidebar kiri (yang ketiga dari atas) dan kemudian mengklik tombol “Kompilasi”.

Pada pelajaran berikutnya, kita akan mempelajari cara mengizinkan pemilih terdaftar untuk memberikan suara dan menerapkan logika sistem pemungutan suara. Namun untuk saat ini, bermain-mainlah dengan kontrak dan biasakan diri Anda dengan lingkungan Remix. Anda baru saja mengambil langkah pertama ke dunia pengembangan kontrak pintar!

免責聲明
* 投資有風險,入市須謹慎。本課程不作為投資理財建議。
* 本課程由入駐Gate Learn的作者創作,觀點僅代表作者本人,絕不代表Gate Learn讚同其觀點或證實其描述。
目錄
第1課

Pengantar Pemungutan Suara Terdesentralisasi dan IDE Remix

Selamat datang di pelajaran pertama kursus kami tentang membangun sistem pemungutan suara yang terdesentralisasi. Dalam pelajaran ini, kita akan mengeksplorasi konsep pemungutan suara yang terdesentralisasi dan memahami manfaat yang dihasilkannya dalam proses pemungutan suara. Kami juga akan memperkenalkan Anda pada Remix IDE, alat canggih yang digunakan untuk mengembangkan dan menerapkan kontrak pintar Ethereum.

Pemungutan Suara Terdesentralisasi

Pemungutan suara terdesentralisasi mengacu pada sistem pemungutan suara yang beroperasi pada blockchain. Ide utamanya di sini adalah memanfaatkan transparansi, keamanan, dan kekekalan yang disediakan oleh teknologi blockchain untuk membangun sistem pemungutan suara yang sulit untuk dimanipulasi dan mudah diverifikasi.

Dalam sistem pemungutan suara yang terdesentralisasi, setiap suara merupakan transaksi di blockchain yang dapat dilihat oleh semua peserta namun hanya dapat diubah oleh pemilih hingga suara diberikan. Setelah pemungutan suara dilakukan, pemungutan suara tersebut dicatat di blockchain dan tidak dapat diubah, sehingga memberikan mekanisme pemungutan suara yang transparan dan anti gangguan.

Pengantar Remix IDE

Remix IDE (Integrated Development Environment) adalah alat sumber terbuka yang kuat yang dirancang khusus untuk pengembangan kontrak pintar Ethereum. Ini berjalan langsung di browser web Anda, jadi Anda tidak perlu menginstal apa pun di komputer Anda.

Anda dapat mengakses Remix IDE di https://remix.ethereum.org. Saat Anda membuka Remix di browser Anda, Anda akan menemukan tiga panel:

  1. Panel Kiri: Di sinilah Anda dapat membuat, mengimpor, dan mengelola file Soliditas Anda. Ini juga mencakup berbagai plugin untuk kompilasi, pengujian, debugging, dan penerapan kontrak Anda.

  2. Panel Pusat: Ini adalah editor kode Anda. Di sini Anda akan menulis dan mengedit kode Soliditas Anda.

  3. Panel Kanan: Panel ini menyediakan berbagai alat untuk mengkompilasi kontrak Anda, menyebarkannya di jaringan Ethereum (baik di jaringan Ethereum nyata atau simulasi JavaScript VM), dan berinteraksi dengan kontrak yang Anda terapkan.

Kontrak Cerdas Pertama Anda

Mari kita mulai dengan kontrak “Pemilih” yang sederhana. Kontrak ini akan melacak pemilih di sistem kami.

Di Remix IDE, buka “File Explorer” dan klik ikon “+” untuk membuat file baru. Beri nama Voter.sol.

Sekarang, mari kita mulai menulis kontrak kita:

Soliditas 
 // Pengenal Lisensi SPDX: GPL-3.0 
 pragma soliditas >=0.7.0 <0.9.0; 

 contract Voter { 
 // Sebuah struct untuk mewakili seseorang 
 struct Person {
        bool voted;  // if true, that person already voted
        uint vote;   // index of the voted proposal
    }

    // Sebuah pemetaan untuk melacak semua pemilih 
 pemetaan(alamat => Orang) pemilih publik; 

 // Fungsi untuk mendaftarkan pemilih 
 fungsi registerVoter() public {
        voters[msg.sender].voted = false;
    }
}
  1. Pengidentifikasi Lisensi SPDX: Baris // SPDX-License-Identifier: GPL-3.0 menunjukkan bahwa kontrak kami menggunakan GNU General Public License v3.0. Ini adalah lisensi perangkat lunak bebas yang umum digunakan yang menjamin kebebasan pengguna akhir untuk menjalankan, mempelajari, berbagi, dan memodifikasi perangkat lunak.

  2. Petunjuk Pragma: pragma solidity >=0.7.0 &lt;0.9.0; pernyataan menetapkan bahwa kontrak ditulis dalam versi Soliditas yang lebih besar atau sama dengan 0.7.0 dan kurang dari 0.9.0. Ini membantu mencegah kontrak dikompilasi dengan versi kompiler yang lebih baru dan tidak kompatibel.

  3. Definisi Kontrak: Blok contract Voter {...} mendefinisikan kontrak baru bernama Voter. Di sinilah kita menentukan variabel status dan fungsi kontrak.

  4. Definisi Struktur: Di dalam kontrak, kami mendefinisikan struct Person yang mewakili seseorang dalam sistem pemungutan suara kami. Setiap Person memiliki boolean voted yang menunjukkan apakah mereka sudah memilih dan bilangan bulat vote yang melacak proposal yang mereka pilih.

  5. Variabel Negara: mapping(address => Person) public voters; pernyataan mendeklarasikan variabel negara voters yang membuat tautan antara alamat Ethereum dan struct Person . Hal ini akan memungkinkan kami untuk melacak siapa yang berhak memilih dalam sistem dan berapa jumlah suara mereka. Kata kunci public secara otomatis menciptakan fungsi pengambil bagi voters.

  6. Definisi Fungsi: Blok function registerVoter() public {...} mendefinisikan fungsi publik yang memungkinkan pengguna mendaftarkan diri sebagai pemilih dalam sistem. voters[msg.sender].voted = false; pernyataan menetapkan status voted pemilih baru menjadi false.
    Itu saja untuk kontrak ini! Seiring kemajuan kami dalam kursus ini, kami akan memperluas kontrak ini dengan menambahkan lebih banyak fungsi untuk proses pemungutan suara. Ingatlah untuk mengkompilasi dan menguji kode Anda secara rutin untuk memastikan semuanya berfungsi sesuai harapan. Di Remix IDE, Anda dapat mengkompilasi kontrak Anda dengan mengklik ikon kompiler Soliditas di sidebar kiri (yang ketiga dari atas) dan kemudian mengklik tombol “Kompilasi”.

Pada pelajaran berikutnya, kita akan mempelajari cara mengizinkan pemilih terdaftar untuk memberikan suara dan menerapkan logika sistem pemungutan suara. Namun untuk saat ini, bermain-mainlah dengan kontrak dan biasakan diri Anda dengan lingkungan Remix. Anda baru saja mengambil langkah pertama ke dunia pengembangan kontrak pintar!

免責聲明
* 投資有風險,入市須謹慎。本課程不作為投資理財建議。
* 本課程由入駐Gate Learn的作者創作,觀點僅代表作者本人,絕不代表Gate Learn讚同其觀點或證實其描述。