5.2. Mô hình Use-case 5.3. Sơ đồ lớp
5.4. Sơ đồ Sequence Diagram
5.5. Các bước để xây dựng một project
✓ Bước 1: Xây dựng Smart Contract (dBank) với các chức năng cơ bản Deposit, Withdraw, Borrow, Payoff bằng Solidity.
- Giới thiệu về Solidity:
Solidity là một ngôn ngữ cấp cao, hướng đối tượng để thực hiện các hợp đồng thông minh. Hợp đồng thông minh là các chương trình điều chỉnh hành vi của
Solidity được thiết kế để nhắm mục tiêu Máy ảo Ethereum (EVM).
Với Solidity, bạn có thể tạo các hợp đồng để sử dụng như bỏ phiếu, huy động vốn từ cộng đồng, đấu giá và ví nhiều chữ ký.
Khi triển khai hợp đồng, bạn nên sử dụng phiên bản Solidity được phát hành mới nhất. Điều này là do các thay đổi đột phá cũng như các tính năng mới và bản sửa lỗi được giới thiệu thường xuyên.
https://docs.soliditylang.org/en/v0.8.4/#solidity - Tạo Contract dBank với Solidity
✓ Bước 2: Cài đặt Ganache (Mạng Ethereum local).
- Giới thiệu về Genache:
Ganache là một blockchain cá nhân để phát triển ứng dụng phân tán Ethereum và Corda nhanh chóng. Bạn có thể sử dụng Ganache trong toàn bộ chu kỳ phát triển; cho phép bạn phát triển, triển khai và thử nghiệm các dApp của mình trong một môi trường an toàn và xác định.
Ganache có hai phiên bản: UI và CLI. Ganache UI là một ứng dụng dành cho máy tính để bàn hỗ trợ cả công nghệ Ethereum và Corda. Công cụ dòng lệnh, ganache-cli (trước đây được gọi là TestRPC), có sẵn để phát triển Ethereum https://www.trufflesuite.com/ganache
- Giao diện:
✓ Bước 3: Triển khai Smart Contract lên mạng Ethereum local bằng Truffle.
- Giới thiệu về Truffle:
Truffle là một môi trường phát triển đẳng cấp thế giới, khung thử nghiệm và đường ống tài sản cho các blockchain sử dụng Máy ảo Ethereum (EVM), nhằm mục đích làm cho cuộc sống của một nhà phát triển trở nên dễ dàng hơn.
▪ Tích hợp hợp đồng thông minh biên dịch, liên kết, triển khai và quản lý nhị phân.
▪ Kiểm tra hợp đồng tự động để phát triển nhanh chóng.
▪ Khung triển khai và di chuyển có thể mở rộng và có thể tập lệnh.
▪ Quản lý mạng để triển khai cho bất kỳ số lượng mạng công cộng và riêng tư.
▪ Quản lý gói với EthPM & NPM, sử dụng tiêu chuẩn ERC190.
▪ Bảng điều khiển tương tác để giao tiếp hợp đồng trực tiếp.
https://www.trufflesuite.com/docs/truffle/getting-started/compiling-contracts - Xây dựng Folder chứa các file cấu hình để triển khai hợp đồng thông minh:
- Mỗi file được định nghĩa các hàm để triển khai hợp đồng thông minh lên mạng Ethereum.
- Để thiết lập Truffle
▪ Cài đặt npm install –g truffle
▪ Khởi tạo truffle init
- File truffle.js định nghĩa hợp đồng sẽ được triển khai trực tiếp lên mạng nào.
Ở đây là http://127.0.0.1:7545 ( mạng Ethereum local mà Ganache đã start trước đó)
Triển khai hợp đồng thông minh lên Ethereum bằng lệnh “truffle migrate -- network development” , nếu không chỉ định network, truffle sẽ tự động lấy network đầu tiên.
- Sau khi compile, hợp đồng thông minh sẽ được biên dịch thành các file json.
Mỗi file sẽ chứa các thông tin về hợp đồng và các meta-data khác:
▪ Contract name: Tên của hợp đồng
▪ abi: thông tin các chức năng cũng như thuộc tính, được miêu tả rõ ràng input và output
▪ metadata: các metadata khác của hợp đồng
Sau khi đã biên dịch thành công, hợp đồng sẽ được truffle triển khai lên Ethereum và tạo các giao dịch tương ứng.
Ganache sẽ ghi giao dịch cũng như tự động thêm các block vào trong mạng Ethereum hiện tại
Danh sách Block
Thông tin chi tiết block
✓ Bước 4: Sử dụng web3 để tương tác với Smart Contract.
- web3.js là một tập hợp các thư viện cho phép bạn tương tác với một nút ethereum cục bộ hoặc từ xa bằng cách sử dụng HTTP, IPC hoặc WebSocket.
https://github.com/ChainSafe/web3.js#readme
✓ Bước 5: Xây dựng Service.
5.6. Danh sách màn hình 5.7. Nhận xét và kết luận
BẢNG PHÂN CHIA CÔNG VIỆC
STT MSSV Công việc được giao Mức độ hoàn thành
(%)
1 18521510
- Tìm hiểu Smart contract
- Tìm hiểu Reactjs thiết kế lại giao diện
- Tìm hiểu blockchain
- Thử nghiệm smart contract trên Metamask
100
2 17521062
- Tìm hiểu blockchain - Tìm hiểu Solidity - Dựng format báo cáo - Mô tả quy trình triển khai - Hỗ trợ tìm hiểu & xây dựng
service để build project
100
3 19522536
- Tìm hiểu GRT - Tìm hiểu Ethereum - Tìm hiểu blockchain
- Thử nghiệm smart contract trên Metamask
100