Урок 1

Giới thiệu về IDE phối hợp và bỏ phiếu phi tập trung

Chào mừng bạn đến với bài học đầu tiên trong khóa học của chúng tôi về xây dựng hệ thống bỏ phiếu phi tập trung. Trong bài học này, chúng ta sẽ khám phá khái niệm bỏ phiếu phi tập trung và hiểu những lợi ích mà nó mang lại cho quá trình bỏ phiếu. Chúng tôi cũng sẽ giới thiệu cho bạn Remix IDE, một công cụ mạnh mẽ được sử dụng để phát triển và triển khai các hợp đồng thông minh Ethereum.

Bỏ phiếu phi tập trung

Bỏ phiếu phi tập trung đề cập đến một hệ thống bỏ phiếu hoạt động trên blockchain. Ý tưởng chính ở đây là tận dụng tính minh bạch, bảo mật và tính bất biến do công nghệ blockchain cung cấp để xây dựng một hệ thống bỏ phiếu khó thao túng và dễ xác minh.

Trong hệ thống bỏ phiếu phi tập trung, mỗi phiếu bầu là một giao dịch trên blockchain mà tất cả người tham gia có thể nhìn thấy nhưng chỉ cử tri mới có thể sửa đổi cho đến khi phiếu bầu được bỏ. Sau khi bỏ phiếu, nó sẽ được ghi lại trên blockchain và không thể thay đổi, cung cấp cơ chế bỏ phiếu minh bạch và chống giả mạo.

Giới thiệu về Remix IDE

Remix IDE (Môi trường phát triển tích hợp) là một công cụ mã nguồn mở mạnh mẽ được thiết kế dành riêng cho phát triển hợp đồng thông minh Ethereum. Nó chạy trực tiếp trong trình duyệt web của bạn, vì vậy bạn không cần phải cài đặt bất cứ thứ gì trên máy tính của mình.

Bạn có thể truy cập Remix IDE tại https://remix.ethereum.org. Khi mở Remix trong trình duyệt, bạn sẽ thấy ba bảng:

  1. Bảng điều khiển bên trái: Đây là nơi bạn có thể tạo, nhập và quản lý các tệp Solidity của mình. Nó cũng bao gồm nhiều plugin khác nhau để biên dịch, thử nghiệm, gỡ lỗi và triển khai hợp đồng của bạn.

  2. Bảng điều khiển trung tâm: Đây là trình soạn thảo mã của bạn. Tại đây bạn sẽ viết và chỉnh sửa mã Solidity của mình.

  3. Bảng bên phải: Bảng này cung cấp nhiều công cụ khác nhau để biên dịch hợp đồng của bạn, triển khai chúng trên mạng Ethereum (trên mạng Ethereum thực hoặc mô phỏng máy ảo JavaScript) và tương tác với các hợp đồng đã triển khai của bạn.

Hợp đồng thông minh đầu tiên của bạn

Hãy bắt đầu với một hợp đồng “Cử tri” đơn giản. Hợp đồng này sẽ theo dõi cử tri trong hệ thống của chúng tôi.

Trong Remix IDE, hãy đi tới “File Explorer” và nhấp vào biểu tượng “+” để tạo tệp mới. Đặt tên là Voter.sol.

Bây giờ, hãy bắt đầu viết hợp đồng của chúng ta:

Độ rắn 
 // SPDX-Mã định danh giấy phép: GPL-3.0 
 độ rắn pragma >=0.7.0 <0.9.0; 

 hợp đồng Cử tri { 
 // Cấu trúc đại diện cho một người 
 cấu trúc Người {
        bool voted;  // if true, that person already voted
        uint vote;   // index of the voted proposal
    }

    // Ánh xạ để theo dõi tất cả cử tri 
 ánh xạ(địa chỉ => Người) cử tri công khai; 

 // Hàm đăng ký cử tri 
 hàm registerVoter() public {
        voters[msg.sender].voted = false;
    }
}
  1. Mã định danh giấy phép SPDX: Dòng // SPDX-License-Identifier: GPL-3.0 cho biết rằng hợp đồng của chúng tôi sử dụng Giấy phép Công cộng GNU v3.0. Đây là giấy phép phần mềm miễn phí thường được sử dụng để đảm bảo cho người dùng cuối quyền tự do chạy, nghiên cứu, chia sẻ và sửa đổi phần mềm.

  2. Chỉ thị thực dụng: pragma solidity >=0.7.0 &lt;0.9.0; tuyên bố chỉ rõ rằng hợp đồng được viết bằng phiên bản Solidity lớn hơn hoặc bằng 0.7.0 và nhỏ hơn 0.9.0. Nó giúp ngăn hợp đồng được biên dịch bằng phiên bản trình biên dịch mới hơn, không tương thích.

  3. Định nghĩa hợp đồng: Khối contract Voter {...} xác định một hợp đồng mới có tên Voter. Đây là nơi chúng tôi chỉ định các biến trạng thái và chức năng của hợp đồng.

  4. Định nghĩa Cấu trúc: Bên trong hợp đồng, chúng tôi xác định một Person có cấu trúc đại diện cho một người trong hệ thống bỏ phiếu của chúng tôi. Mỗi Person có một boolean voted cho biết họ đã bỏ phiếu hay chưa và một số nguyên vote bầu để theo dõi đề xuất mà họ đã bỏ phiếu.

  5. Biến trạng thái: mapping(address => Person) public voters; tuyên bố khai báo một biến trạng thái voters tạo ra một liên kết giữa địa chỉ Ethereum và cấu trúc Person . Điều này sẽ cho phép chúng tôi theo dõi xem ai đủ điều kiện bỏ phiếu trong hệ thống và phiếu bầu của họ là gì. Từ khóa public tự động tạo hàm getter cho voters.

  6. Định nghĩa hàm: Khối function registerVoter() public {...} xác định một hàm public cho phép người dùng tự đăng ký làm cử tri trong hệ thống. voters[msg.sender].voted = false; tuyên bố đặt trạng thái voted của cử tri mới thành false.
    Đó là tất cả cho hợp đồng này! Khi chúng tôi tiến bộ trong khóa học, chúng tôi sẽ mở rộng hợp đồng này bằng cách bổ sung thêm nhiều chức năng hơn cho quy trình bỏ phiếu. Hãy nhớ thường xuyên biên dịch và kiểm tra mã của bạn để đảm bảo rằng mọi thứ đều hoạt động như mong đợi. Trong Remix IDE, bạn có thể biên dịch hợp đồng của mình bằng cách nhấp vào biểu tượng trình biên dịch Solidity trên thanh bên trái (biểu tượng thứ ba từ trên xuống) rồi nhấp vào nút “Biên dịch”.

Trong bài học tiếp theo, chúng ta sẽ tìm hiểu cách cho phép cử tri đã đăng ký bỏ phiếu và triển khai logic cho hệ thống bỏ phiếu. Nhưng hiện tại, hãy xem xét hợp đồng và làm quen với môi trường Remix. Bạn vừa thực hiện bước đầu tiên vào thế giới phát triển hợp đồng thông minh!

Отказ от ответственности
* Криптоинвестирование сопряжено со значительными рисками. Будьте осторожны. Курс не является инвестиционным советом.
* Курс создан автором, который присоединился к Gate Learn. Мнение автора может не совпадать с мнением Gate Learn.
Каталог
Урок 1

Giới thiệu về IDE phối hợp và bỏ phiếu phi tập trung

Chào mừng bạn đến với bài học đầu tiên trong khóa học của chúng tôi về xây dựng hệ thống bỏ phiếu phi tập trung. Trong bài học này, chúng ta sẽ khám phá khái niệm bỏ phiếu phi tập trung và hiểu những lợi ích mà nó mang lại cho quá trình bỏ phiếu. Chúng tôi cũng sẽ giới thiệu cho bạn Remix IDE, một công cụ mạnh mẽ được sử dụng để phát triển và triển khai các hợp đồng thông minh Ethereum.

Bỏ phiếu phi tập trung

Bỏ phiếu phi tập trung đề cập đến một hệ thống bỏ phiếu hoạt động trên blockchain. Ý tưởng chính ở đây là tận dụng tính minh bạch, bảo mật và tính bất biến do công nghệ blockchain cung cấp để xây dựng một hệ thống bỏ phiếu khó thao túng và dễ xác minh.

Trong hệ thống bỏ phiếu phi tập trung, mỗi phiếu bầu là một giao dịch trên blockchain mà tất cả người tham gia có thể nhìn thấy nhưng chỉ cử tri mới có thể sửa đổi cho đến khi phiếu bầu được bỏ. Sau khi bỏ phiếu, nó sẽ được ghi lại trên blockchain và không thể thay đổi, cung cấp cơ chế bỏ phiếu minh bạch và chống giả mạo.

Giới thiệu về Remix IDE

Remix IDE (Môi trường phát triển tích hợp) là một công cụ mã nguồn mở mạnh mẽ được thiết kế dành riêng cho phát triển hợp đồng thông minh Ethereum. Nó chạy trực tiếp trong trình duyệt web của bạn, vì vậy bạn không cần phải cài đặt bất cứ thứ gì trên máy tính của mình.

Bạn có thể truy cập Remix IDE tại https://remix.ethereum.org. Khi mở Remix trong trình duyệt, bạn sẽ thấy ba bảng:

  1. Bảng điều khiển bên trái: Đây là nơi bạn có thể tạo, nhập và quản lý các tệp Solidity của mình. Nó cũng bao gồm nhiều plugin khác nhau để biên dịch, thử nghiệm, gỡ lỗi và triển khai hợp đồng của bạn.

  2. Bảng điều khiển trung tâm: Đây là trình soạn thảo mã của bạn. Tại đây bạn sẽ viết và chỉnh sửa mã Solidity của mình.

  3. Bảng bên phải: Bảng này cung cấp nhiều công cụ khác nhau để biên dịch hợp đồng của bạn, triển khai chúng trên mạng Ethereum (trên mạng Ethereum thực hoặc mô phỏng máy ảo JavaScript) và tương tác với các hợp đồng đã triển khai của bạn.

Hợp đồng thông minh đầu tiên của bạn

Hãy bắt đầu với một hợp đồng “Cử tri” đơn giản. Hợp đồng này sẽ theo dõi cử tri trong hệ thống của chúng tôi.

Trong Remix IDE, hãy đi tới “File Explorer” và nhấp vào biểu tượng “+” để tạo tệp mới. Đặt tên là Voter.sol.

Bây giờ, hãy bắt đầu viết hợp đồng của chúng ta:

Độ rắn 
 // SPDX-Mã định danh giấy phép: GPL-3.0 
 độ rắn pragma >=0.7.0 <0.9.0; 

 hợp đồng Cử tri { 
 // Cấu trúc đại diện cho một người 
 cấu trúc Người {
        bool voted;  // if true, that person already voted
        uint vote;   // index of the voted proposal
    }

    // Ánh xạ để theo dõi tất cả cử tri 
 ánh xạ(địa chỉ => Người) cử tri công khai; 

 // Hàm đăng ký cử tri 
 hàm registerVoter() public {
        voters[msg.sender].voted = false;
    }
}
  1. Mã định danh giấy phép SPDX: Dòng // SPDX-License-Identifier: GPL-3.0 cho biết rằng hợp đồng của chúng tôi sử dụng Giấy phép Công cộng GNU v3.0. Đây là giấy phép phần mềm miễn phí thường được sử dụng để đảm bảo cho người dùng cuối quyền tự do chạy, nghiên cứu, chia sẻ và sửa đổi phần mềm.

  2. Chỉ thị thực dụng: pragma solidity >=0.7.0 &lt;0.9.0; tuyên bố chỉ rõ rằng hợp đồng được viết bằng phiên bản Solidity lớn hơn hoặc bằng 0.7.0 và nhỏ hơn 0.9.0. Nó giúp ngăn hợp đồng được biên dịch bằng phiên bản trình biên dịch mới hơn, không tương thích.

  3. Định nghĩa hợp đồng: Khối contract Voter {...} xác định một hợp đồng mới có tên Voter. Đây là nơi chúng tôi chỉ định các biến trạng thái và chức năng của hợp đồng.

  4. Định nghĩa Cấu trúc: Bên trong hợp đồng, chúng tôi xác định một Person có cấu trúc đại diện cho một người trong hệ thống bỏ phiếu của chúng tôi. Mỗi Person có một boolean voted cho biết họ đã bỏ phiếu hay chưa và một số nguyên vote bầu để theo dõi đề xuất mà họ đã bỏ phiếu.

  5. Biến trạng thái: mapping(address => Person) public voters; tuyên bố khai báo một biến trạng thái voters tạo ra một liên kết giữa địa chỉ Ethereum và cấu trúc Person . Điều này sẽ cho phép chúng tôi theo dõi xem ai đủ điều kiện bỏ phiếu trong hệ thống và phiếu bầu của họ là gì. Từ khóa public tự động tạo hàm getter cho voters.

  6. Định nghĩa hàm: Khối function registerVoter() public {...} xác định một hàm public cho phép người dùng tự đăng ký làm cử tri trong hệ thống. voters[msg.sender].voted = false; tuyên bố đặt trạng thái voted của cử tri mới thành false.
    Đó là tất cả cho hợp đồng này! Khi chúng tôi tiến bộ trong khóa học, chúng tôi sẽ mở rộng hợp đồng này bằng cách bổ sung thêm nhiều chức năng hơn cho quy trình bỏ phiếu. Hãy nhớ thường xuyên biên dịch và kiểm tra mã của bạn để đảm bảo rằng mọi thứ đều hoạt động như mong đợi. Trong Remix IDE, bạn có thể biên dịch hợp đồng của mình bằng cách nhấp vào biểu tượng trình biên dịch Solidity trên thanh bên trái (biểu tượng thứ ba từ trên xuống) rồi nhấp vào nút “Biên dịch”.

Trong bài học tiếp theo, chúng ta sẽ tìm hiểu cách cho phép cử tri đã đăng ký bỏ phiếu và triển khai logic cho hệ thống bỏ phiếu. Nhưng hiện tại, hãy xem xét hợp đồng và làm quen với môi trường Remix. Bạn vừa thực hiện bước đầu tiên vào thế giới phát triển hợp đồng thông minh!

Отказ от ответственности
* Криптоинвестирование сопряжено со значительными рисками. Будьте осторожны. Курс не является инвестиционным советом.
* Курс создан автором, который присоединился к Gate Learn. Мнение автора может не совпадать с мнением Gate Learn.