Bài 2: Tạo và chạy Smart Contract đầu tiên trong Ethereum Blockchain

bài 1 các bạn đã biết cách sử dụng công cụ Remix IDE để lập trình Smart Contract trong Ethereum Blockchain. Trong bài này Tui sẽ hướng dẫn cách tạo 1 Smart Contract đầu tiên và biên dịch, deploy nó như thế nào.

Muốn thay đổi thế giới thì trước tiên Bạn phải xin chào thế giới, vì vậy ta tạo một workspace tên là “HelloWorld” như dưới đây: (Thực ra ta không thể đổi được thế giới này đâu, hồi còn trẻ trâu Tui cũng muốn đổi này đổi kia, nhưng từ khi cưới Vợ và đặc biệt lúc có Em Bé, Tui còn không có cơ hội đổi kênh Youtube huống chi đòi đổi thế giới, thay đổi được chính bản thân mình cho nó tốt lên là may lắm rồi).

Ta đặt tên như hình dưới đây rồi bấm nút OK:

Sau khi bấm nút OK ta có kết quả:

Mặc định Remix Ethereum IDE sẽ tạo cho bạn cấu trúc thư mục và các tập tin Contract mẫu như trên.

Bây giờ ta tạo 1 file .sol (Contract viết bằng ngôn ngữ lập trình Solidity).

Đặt tên là FirstSmartContract nó tự ra đuôi FirstSmartContract.sol:

Kết quả sau khi nhấn phím Enter:

Bây giờ ta code như sau, cách code Solidity nó tương tự như java, python…. dĩ nhiên có những điểm khác vì nó chuyên biệt cho Smart Contract. Tui sẽ sắp xếp thời gian viết các blog hướng dẫn về Solidity ở các bài tiếp theo để phục vụ tốt cho việc viết các dự án liên quan tới Smart Contract.

Ở bài này thì cứ làm theo như Tui viết cho nó có cảm giác trước đã

Mã lệnh Contract của FirstSmartContract ở trên gồm có thuộc tính balance và các phương thức setBalance để thay đổi giá trị của balance, phương thức getBalance để truy suất giá trị của balance.

Coding như sau:

pragma solidity >=0.7.0 <0.9.0;
contract FirstSmartContract
{
    uint256 balance;
    
    function setBalance(uint256 x) public {
        balance = x;
    }
    function getBalance() public view returns(uint256){
        return balance;
    }
}

Khi ta viết sai cú pháp thì chương trình sẽ tự động báo lỗi, lúc này ta sẽ không biết dịch được, ví dụ Tui cố tình sửa 1 xíu cho nó báo lỗi thì bạn sẽ thấy hình ảnh sau:

Ở trên không có biến x2 nhưng Tui vẫn khai báo, dãna tới nó bị lỗi có nút màu đỏ. lúc này không biên dịch được.

OK, giờ bạn sửa lại cho nó đúng để chúng ta vào bước biên dịch:

Theo hình trên, để biên dịch ta làm theo cá bước:

1. Chọn Solidity compiler

2. Chọn compiler mới nhất

3. Chọn ngôn ngữ lập trình là Solidity

4. Chọn Ethereum Virtual Machine (EVM), để mặc định

5. Nhấn compile FirstSmartContract.sol

Ta xem kế quả:

Sau khi biên dịch thành công, ta vào mục Deploy & Run transactions như hình dưới đây:

Như vậy các bạn cần làm các bước trong mục Deploy & run transactions như sau:

1. Chọn Deploy & Run transactions

2. Chọn Enviroment là JavaScript VM (London). ở đây có 1 danh sách tùy chọn

3. Chọn Account Ethereum, cũng có nhiều tùy chọn

4. Chọn Gas limit

5. Chọn Contract mà mình muốn deploy, khi biên dịch nhiều contract thì nó hiển thị danh sách ở đây

6. Nhấn Deploy

Sau khi nhấn Deploy ta xem kết quả:

Khi nhấn vào mũi tên để xem chi tiết, ta có màn hình dưới đây, các phương thức (các giao tác) được hiển thị để cho ta tương tác:

Ví dụ bây giờ ta setBalance là 500000000, chi tiết thao tác xem hình:

Bước 1: nhập giá trị cho giao tác setBalance

Bước 2: nhấn nút setBalance

Bước 3: chi tiết transaction thực hiện, ta có thể xem

Tiếp theo để kiểm tra giao tác setBalance có làm thay đổi giá trị của balance hay không, ta thử nghiệm giao tác getBalance:

Như vậy là tới đây ta đã hoàn tất việc Code một Smart Contract cũng như cách biên dịch và deploy, run nó như thế nào.

Bài tiếp theo Tui sẽ hướng dẫn các bạn đồng bộ những gì mình lập trình trên Remix Ethereum IDE về máy local của mình để lưu trữu cũng như bảo trì code.

Code FirstSmartContract.so tải ở đây:

https://www.mediafire.com/file/b0vix0rrt44qygn/FirstSmartContract.sol/file

Chúc các bạn thành công

Leave a Reply