Lección 1

Tổng quan về Thị trường phi tập trung và Remix IDE

Trong bài học này, trước tiên chúng ta sẽ tìm hiểu về thị trường phi tập trung là gì và nó hoạt động như thế nào. Sau đó, chúng ta sẽ làm quen với Remix IDE và viết một hợp đồng Solidity đơn giản.

Hiểu thị trường phi tập trung

Trong các thị trường thương mại điện tử truyền thống, như Amazon và eBay, cơ quan trung ương tạo điều kiện thuận lợi cho các giao dịch giữa người mua và người bán. Cơ quan trung ương này kiểm soát các giao dịch, duy trì danh sách sản phẩm và quản lý việc giải quyết tranh chấp. Mặc dù mô hình tập trung này có những ưu điểm nhưng nó cũng có một số nhược điểm, bao gồm rủi ro kiểm duyệt, phí cao và sự phụ thuộc vào niềm tin.

Mặt khác, thị trường phi tập trung tận dụng công nghệ blockchain để cho phép giao dịch ngang hàng mà không cần qua trung gian. Nó loại bỏ nhu cầu tin tưởng vì các giao dịch đều minh bạch và có thể kiểm chứng được bởi tất cả những người tham gia trên blockchain. Ví dụ về các thị trường phi tập trung bao gồm OpenBazaar và Origin Protocol.

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 vững chắc đầu tiên của bạn: Hợp đồng “mặt hàng”

Trong phần này, chúng ta sẽ viết hợp đồng Solidity đầu tiên. Hợp đồng này sẽ đại diện cho một “Mặt hàng” cơ bản trên thị trường của chúng tôi.

Để bắt đầu, hãy tạo một tệp mới trong Remix bằng cách nhấp vào biểu tượng thứ hai từ trên xuống trong bảng điều khiển bên trái (biểu tượng tệp). Một hộp thoại mới sẽ xuất hiện trên bảng điều khiển trung tâm. Nhập Item.sol làm tên tệp và nhấp vào “OK”.

Bây giờ, chúng ta có thể bắt đầu viết hợp đồng của mình:

Độ rắn 
 // SPDX-Mã định danh giấy phép: MIT 
 độ rắn pragma ^0.8.6; 

 hợp đồng Item { 
 // Xác định một sự kiện sẽ được kích hoạt khi một mục mới được tạo 
 sự kiện NewItem(uint itemId, string itemName, uint itemPrice); 

 // Mỗi Item có một id, một tên và một mức giá 
 struct ItemStruct {
        string name;
        uint price;
    }

    // Mảng chứa tất cả các item 
 ItemStruct[] public items; 

 // Hàm tạo một mục mới 
 hàm createItem(string bộ nhớ _name, uint _price) public {
        items.push(ItemStruct(_name, _price));
        emit NewItem(items.length - 1, _name, _price);
    }
}

Hãy giải thích các phần khác nhau của hợp đồng này:

  1. Mã định danh giấy phép SPDX: Đây là cách tiêu chuẩn để thể hiện giấy phép của hợp đồng. Dòng // SPDX-License-Identifier: MIT cho biết rằng hợp đồng của chúng tôi sử dụng giấy phép MIT cho phép.

  2. Chỉ thị thực dụng: pragma solidity ^0.8.6; chỉ định rằng hợp đồng được viết bằng phiên bản Solidity 0.8.6. Biểu tượng ^ có nghĩa là nó cũng sẽ tương thích với mọi phiên bản mới hơn nhưng không bao gồm phiên bản 0.9.0.

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

  4. Định nghĩa sự kiện: event NewItem(uint itemId, string itemName, uint itemPrice); xác định một sự kiện mà chúng ta có thể phát ra bất cứ khi nào một mục mới được tạo. Sự kiện là một cách để hợp đồng thông minh ghi lại hoạt động mà các bên bên ngoài có thể lắng nghe.

  5. Định nghĩa cấu trúc: struct ItemStruct {...} xác định kiểu dữ liệu mới ItemStruct, đại diện cho một Item có nameprice.

  6. Biến trạng thái: ItemStruct[] public items; khai báo một biến trạng thái items chứa một mảng ItemStructs. Từ khóa public tự động tạo một hàm getter cho phép mọi người truy cập vào danh sách các mục.

  7. Định nghĩa hàm: function createItem(string memory _name, uint _price) public {...} xác định một hàm public mà bất kỳ ai cũng có thể gọi để tạo một mục mới. Hàm này lấy tên và giá, tạo ItemStruct mới, thêm nó vào mảng items và phát ra sự kiện NewItem .
    Để biên soạn hợp đồng này, hãy chuyển đến bảng bên phải và nhấp vào biểu tượng thứ ba từ trên xuống (logo Solidity). Ở đây bạn có thể biên soạn hợp đồng. Nhấp vào nút “Biên dịch” và nếu không có lỗi, hợp đồng của bạn sẽ được biên dịch thành công.

Một câu hỏi có thể xuất hiện ở Bảng điều khiển bên trái:

Câu hỏi về Swarm hoặc IPFS là về phương thức Remix sẽ sử dụng để lưu trữ siêu dữ liệu trong hợp đồng của bạn. Chúng ta hãy đi qua chúng:

  1. IPFS: Hệ thống tệp liên hành tinh (IPFS) là một giao thức được thiết kế để tạo ra một trang web vĩnh viễn và phi tập trung. Nó giống như một nhóm BitTorrent duy nhất, trao đổi các đối tượng trong một kho lưu trữ Git.

  2. Swarm: Swarm là một nền tảng lưu trữ phân tán và dịch vụ phân phối nội dung có nguồn gốc từ ngăn xếp Ethereum web3. Nó cho phép một mạng lưới các đồng nghiệp lưu trữ và phân phối dữ liệu.
    Khi bạn biên dịch hợp đồng, trình biên dịch Solidity sẽ tạo tệp JSON chứa Giao diện nhị phân ứng dụng (ABI) và mã byte của nó, cùng với các thông tin khác. Đây được gọi là siêu dữ liệu của hợp đồng. Việc lưu trữ siêu dữ liệu này trên mạng lưu trữ phi tập trung đảm bảo rằng siêu dữ liệu này có sẵn vĩnh viễn và có thể hữu ích cho việc xác minh mã nguồn của hợp đồng.

Tuy nhiên, vì mục đích học tập của bạn và nếu bạn không định xác minh hợp đồng trên Etherscan hoặc bất kỳ trình khám phá khối nào khác, bạn có thể chọn Swarm hoặc IPFS hoặc bạn có thể chỉ cần bỏ qua nó và chuyển sang các bước học tập tiếp theo. Hãy nhớ rằng trọng tâm chính ở giai đoạn này là hiểu cách viết, biên dịch và triển khai hợp đồng.

Descargo de responsabilidad
* La inversión en criptomonedas implica riesgos significativos. Proceda con precaución. El curso no pretende ser un asesoramiento de inversión.
* El curso ha sido creado por el autor que se ha unido a Gate Learn. Cualquier opinión compartida por el autor no representa a Gate Learn.
Catálogo
Lección 1

Tổng quan về Thị trường phi tập trung và Remix IDE

Trong bài học này, trước tiên chúng ta sẽ tìm hiểu về thị trường phi tập trung là gì và nó hoạt động như thế nào. Sau đó, chúng ta sẽ làm quen với Remix IDE và viết một hợp đồng Solidity đơn giản.

Hiểu thị trường phi tập trung

Trong các thị trường thương mại điện tử truyền thống, như Amazon và eBay, cơ quan trung ương tạo điều kiện thuận lợi cho các giao dịch giữa người mua và người bán. Cơ quan trung ương này kiểm soát các giao dịch, duy trì danh sách sản phẩm và quản lý việc giải quyết tranh chấp. Mặc dù mô hình tập trung này có những ưu điểm nhưng nó cũng có một số nhược điểm, bao gồm rủi ro kiểm duyệt, phí cao và sự phụ thuộc vào niềm tin.

Mặt khác, thị trường phi tập trung tận dụng công nghệ blockchain để cho phép giao dịch ngang hàng mà không cần qua trung gian. Nó loại bỏ nhu cầu tin tưởng vì các giao dịch đều minh bạch và có thể kiểm chứng được bởi tất cả những người tham gia trên blockchain. Ví dụ về các thị trường phi tập trung bao gồm OpenBazaar và Origin Protocol.

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 vững chắc đầu tiên của bạn: Hợp đồng “mặt hàng”

Trong phần này, chúng ta sẽ viết hợp đồng Solidity đầu tiên. Hợp đồng này sẽ đại diện cho một “Mặt hàng” cơ bản trên thị trường của chúng tôi.

Để bắt đầu, hãy tạo một tệp mới trong Remix bằng cách nhấp vào biểu tượng thứ hai từ trên xuống trong bảng điều khiển bên trái (biểu tượng tệp). Một hộp thoại mới sẽ xuất hiện trên bảng điều khiển trung tâm. Nhập Item.sol làm tên tệp và nhấp vào “OK”.

Bây giờ, chúng ta có thể bắt đầu viết hợp đồng của mình:

Độ rắn 
 // SPDX-Mã định danh giấy phép: MIT 
 độ rắn pragma ^0.8.6; 

 hợp đồng Item { 
 // Xác định một sự kiện sẽ được kích hoạt khi một mục mới được tạo 
 sự kiện NewItem(uint itemId, string itemName, uint itemPrice); 

 // Mỗi Item có một id, một tên và một mức giá 
 struct ItemStruct {
        string name;
        uint price;
    }

    // Mảng chứa tất cả các item 
 ItemStruct[] public items; 

 // Hàm tạo một mục mới 
 hàm createItem(string bộ nhớ _name, uint _price) public {
        items.push(ItemStruct(_name, _price));
        emit NewItem(items.length - 1, _name, _price);
    }
}

Hãy giải thích các phần khác nhau của hợp đồng này:

  1. Mã định danh giấy phép SPDX: Đây là cách tiêu chuẩn để thể hiện giấy phép của hợp đồng. Dòng // SPDX-License-Identifier: MIT cho biết rằng hợp đồng của chúng tôi sử dụng giấy phép MIT cho phép.

  2. Chỉ thị thực dụng: pragma solidity ^0.8.6; chỉ định rằng hợp đồng được viết bằng phiên bản Solidity 0.8.6. Biểu tượng ^ có nghĩa là nó cũng sẽ tương thích với mọi phiên bản mới hơn nhưng không bao gồm phiên bản 0.9.0.

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

  4. Định nghĩa sự kiện: event NewItem(uint itemId, string itemName, uint itemPrice); xác định một sự kiện mà chúng ta có thể phát ra bất cứ khi nào một mục mới được tạo. Sự kiện là một cách để hợp đồng thông minh ghi lại hoạt động mà các bên bên ngoài có thể lắng nghe.

  5. Định nghĩa cấu trúc: struct ItemStruct {...} xác định kiểu dữ liệu mới ItemStruct, đại diện cho một Item có nameprice.

  6. Biến trạng thái: ItemStruct[] public items; khai báo một biến trạng thái items chứa một mảng ItemStructs. Từ khóa public tự động tạo một hàm getter cho phép mọi người truy cập vào danh sách các mục.

  7. Định nghĩa hàm: function createItem(string memory _name, uint _price) public {...} xác định một hàm public mà bất kỳ ai cũng có thể gọi để tạo một mục mới. Hàm này lấy tên và giá, tạo ItemStruct mới, thêm nó vào mảng items và phát ra sự kiện NewItem .
    Để biên soạn hợp đồng này, hãy chuyển đến bảng bên phải và nhấp vào biểu tượng thứ ba từ trên xuống (logo Solidity). Ở đây bạn có thể biên soạn hợp đồng. Nhấp vào nút “Biên dịch” và nếu không có lỗi, hợp đồng của bạn sẽ được biên dịch thành công.

Một câu hỏi có thể xuất hiện ở Bảng điều khiển bên trái:

Câu hỏi về Swarm hoặc IPFS là về phương thức Remix sẽ sử dụng để lưu trữ siêu dữ liệu trong hợp đồng của bạn. Chúng ta hãy đi qua chúng:

  1. IPFS: Hệ thống tệp liên hành tinh (IPFS) là một giao thức được thiết kế để tạo ra một trang web vĩnh viễn và phi tập trung. Nó giống như một nhóm BitTorrent duy nhất, trao đổi các đối tượng trong một kho lưu trữ Git.

  2. Swarm: Swarm là một nền tảng lưu trữ phân tán và dịch vụ phân phối nội dung có nguồn gốc từ ngăn xếp Ethereum web3. Nó cho phép một mạng lưới các đồng nghiệp lưu trữ và phân phối dữ liệu.
    Khi bạn biên dịch hợp đồng, trình biên dịch Solidity sẽ tạo tệp JSON chứa Giao diện nhị phân ứng dụng (ABI) và mã byte của nó, cùng với các thông tin khác. Đây được gọi là siêu dữ liệu của hợp đồng. Việc lưu trữ siêu dữ liệu này trên mạng lưu trữ phi tập trung đảm bảo rằng siêu dữ liệu này có sẵn vĩnh viễn và có thể hữu ích cho việc xác minh mã nguồn của hợp đồng.

Tuy nhiên, vì mục đích học tập của bạn và nếu bạn không định xác minh hợp đồng trên Etherscan hoặc bất kỳ trình khám phá khối nào khác, bạn có thể chọn Swarm hoặc IPFS hoặc bạn có thể chỉ cần bỏ qua nó và chuyển sang các bước học tập tiếp theo. Hãy nhớ rằng trọng tâm chính ở giai đoạn này là hiểu cách viết, biên dịch và triển khai hợp đồng.

Descargo de responsabilidad
* La inversión en criptomonedas implica riesgos significativos. Proceda con precaución. El curso no pretende ser un asesoramiento de inversión.
* El curso ha sido creado por el autor que se ha unido a Gate Learn. Cualquier opinión compartida por el autor no representa a Gate Learn.