Chào mừng bạn đến với repository chứa các bài tập thực hành (Challenges) cho môn học Công Nghệ Blockchain. Repository này bao gồm các dự án nhỏ được xây dựng dựa trên Scaffold-ETH 2, giúp bạn làm quen với việc phát triển ứng dụng phi tập trung (DApp) trên Ethereum.
Dưới đây là danh sách các bài tập có trong repository này:
| Thư mục | Tên Bài Tập | Mô Tả Ngắn |
|---|---|---|
challenge-1 |
🥩 Decentralized Staking App | Xây dựng dApp cho phép người dùng staking ETH vào một quỹ chung. |
challenge-2 |
🏵️ Token Vendor | Tạo token ERC20 và máy bán hàng tự động (Vendor) để mua/bán token bằng ETH. |
challenge-3 |
🎲 Dice Game | Tấn công một contract game xúc xắc bằng cách dự đoán số ngẫu nhiên. |
challenge-4 |
⚖️ Build a DEX | Xây dựng sàn giao dịch phi tập trung (DEX) đơn giản với cơ chế AMM (Automated Market Maker). |
challenge-5 |
💳 Over-Collateralized Lending | Xây dựng nền tảng vay và cho vay thế chấp (Lending/Borrowing) với tài sản đảm bảo. |
challlenge-6 |
💰 MyUSD Stablecoin | Xây dựng stablecoin phi tập trung (MyUSD) được đảm bảo bằng tài sản thế chấp (ETH) để giữ giá $1. |
Lưu ý: Thư mục của Challenge 6 hiện được đặt tên là
challlenge-6(thừa một chữ 'l').
Trước khi bắt đầu, hãy đảm bảo máy tính của bạn đã cài đặt các công cụ sau:
Mỗi challenge là một dự án Scaffold-ETH 2 riêng biệt. Để chạy một bài tập bất kỳ, bạn hãy làm theo các bước sau:
Mở terminal và di chuyển đến thư mục của challenge bạn muốn chạy (ví dụ: Challenge 1).
cd challenge-1Chạy lệnh sau để cài đặt các gói cần thiết:
yarn installBạn cần mở 3 cửa sổ terminal riêng biệt để chạy các thành phần của dự án:
yarn chainyarn deploy(Lưu ý: Nếu bạn sửa đổi smart contract, hãy chạy lại lệnh này. Sử dụng yarn deploy --reset nếu muốn reset lại từ đầu)
yarn startSau khi khởi chạy thành công, mở trình duyệt và truy cập: http://localhost:3000 để tương tác với ứng dụng.
Hầu hết các challenge đều tuân theo cấu trúc monorepo của Scaffold-ETH 2:
packages/hardhat: Chứa Smart Contracts, scripts deploy và test.contracts/: Nơi bạn viết code Solidity.deploy/: Script để đưa contract lên mạng blockchain.
packages/nextjs: Chứa mã nguồn Frontend (React/Next.js).app/: Các trang giao diện người dùng.scaffold.config.ts: Cấu hình mạng và ví.
