
July 04, 2025
Học blockchain P4
Học blockchain P4
💻 GIAI ĐOẠN 4: XÂY THỬ dAPP THỰC TẾ
Sau khi đã nắm vững Blockchain cơ bản (Giai đoạn 1), Solidity (Giai đoạn 2) và Ethers.js (Giai đoạn 3), thì bước này là thực chiến: tự triển khai các dự án nhỏ để gom kỹ năng lại thành sản phẩm hoàn chỉnh.
1. Voting dApp – Ứng dụng bỏ phiếu phi tập trung
Kỹ năng học được:
- Thiết kế smart contract với logic minh bạch và không thể sửa kết quả.
- Tạo UI kết nối và tương tác với contract.
- Dùng event để cập nhật kết quả theo thời gian thực.
Các bước chính:
-
Viết smart contract
Voting.sol
:- Struct
Candidate
, mappingvotes
. - Hàm
vote()
chỉ cho phép vote 1 lần.
- Struct
-
Deploy trên Remix.
-
Tạo frontend (React + Ethers.js) để hiển thị danh sách ứng viên và số phiếu.
-
Kết nối MetaMask, gửi vote, nhận event
Voted
.
2. Todo List on-chain – CRUD dữ liệu trên blockchain
Kỹ năng học được:
- Tạo, đọc, cập nhật, xóa dữ liệu trực tiếp trên chain.
- Quản lý mapping và array trong Solidity.
- Hiểu rõ chi phí gas của từng thao tác CRUD.
Các bước chính:
-
Smart contract:
- Struct
Task { string content; bool completed; }
- Hàm
createTask
,updateTask
,deleteTask
.
- Struct
-
Frontend:
- Form thêm task mới.
- Checkbox đánh dấu hoàn thành.
- Render danh sách task từ blockchain.
3. NFT Minter – Tạo và mint NFT
Kỹ năng học được:
- Chuẩn ERC-721.
- Upload metadata + hình ảnh lên IPFS (Pinata, NFT.storage).
- Mint NFT và hiển thị trong ví MetaMask.
Các bước chính:
- Smart contract kế thừa
ERC721URIStorage
. - Upload ảnh + JSON metadata lên IPFS → lấy URI.
- Gọi hàm
mintNFT(address to, string memory tokenURI)
. - Frontend hiển thị danh sách NFT đã mint.
4. Token (ERC20) Faucet – Phát token miễn phí
Kỹ năng học được:
- Tạo token ERC20.
- Viết faucet contract phân phối token miễn phí.
- Giới hạn số token mỗi ví nhận (anti-spam).
Các bước chính:
- Triển khai contract ERC20.
- Viết
Faucet.sol
với hàmrequestToken()
. - Kết nối frontend để user click → nhận token vào ví.
- Test token trong MetaMask bằng cách add custom token.
5. NFT Marketplace đơn giản
Kỹ năng học được:
- Mua/bán NFT bằng ETH.
- Dùng chữ ký số (signature) để xác thực giao dịch.
- Thực hiện logic định giá, rút tiền.
Các bước chính:
-
Contract:
- Mapping
tokenId → price
. - Hàm
listNFT
,buyNFT
. - Sự kiện
NFTListed
,NFTSold
.
- Mapping
-
Frontend:
- Danh sách NFT đang bán.
- Form nhập giá bán, nút mua.
- Lắng nghe event cập nhật UI.
📌 Tips khi làm dự án thực tế:
- Bắt đầu từ dự án nhỏ rồi nâng cấp dần.
- Dùng testnet (Goerli, Sepolia) để tiết kiệm phí.
- Ghi chú lại bug gặp phải → rút kinh nghiệm.
- Code contract ngắn gọn, bảo mật, luôn test kỹ.
Learn blockchain part4
Learn blockchain part4
💻 GIAI ĐOẠN 4: XÂY THỬ dAPP THỰC TẾ
Sau khi đã nắm vững Blockchain cơ bản (Giai đoạn 1), Solidity (Giai đoạn 2) và Ethers.js (Giai đoạn 3), thì bước này là thực chiến: tự triển khai các dự án nhỏ để gom kỹ năng lại thành sản phẩm hoàn chỉnh.
1. Voting dApp – Ứng dụng bỏ phiếu phi tập trung
Kỹ năng học được:
- Thiết kế smart contract với logic minh bạch và không thể sửa kết quả.
- Tạo UI kết nối và tương tác với contract.
- Dùng event để cập nhật kết quả theo thời gian thực.
Các bước chính:
-
Viết smart contract
Voting.sol
:- Struct
Candidate
, mappingvotes
. - Hàm
vote()
chỉ cho phép vote 1 lần.
- Struct
-
Deploy trên Remix.
-
Tạo frontend (React + Ethers.js) để hiển thị danh sách ứng viên và số phiếu.
-
Kết nối MetaMask, gửi vote, nhận event
Voted
.
2. Todo List on-chain – CRUD dữ liệu trên blockchain
Kỹ năng học được:
- Tạo, đọc, cập nhật, xóa dữ liệu trực tiếp trên chain.
- Quản lý mapping và array trong Solidity.
- Hiểu rõ chi phí gas của từng thao tác CRUD.
Các bước chính:
-
Smart contract:
- Struct
Task { string content; bool completed; }
- Hàm
createTask
,updateTask
,deleteTask
.
- Struct
-
Frontend:
- Form thêm task mới.
- Checkbox đánh dấu hoàn thành.
- Render danh sách task từ blockchain.
3. NFT Minter – Tạo và mint NFT
Kỹ năng học được:
- Chuẩn ERC-721.
- Upload metadata + hình ảnh lên IPFS (Pinata, NFT.storage).
- Mint NFT và hiển thị trong ví MetaMask.
Các bước chính:
- Smart contract kế thừa
ERC721URIStorage
. - Upload ảnh + JSON metadata lên IPFS → lấy URI.
- Gọi hàm
mintNFT(address to, string memory tokenURI)
. - Frontend hiển thị danh sách NFT đã mint.
4. Token (ERC20) Faucet – Phát token miễn phí
Kỹ năng học được:
- Tạo token ERC20.
- Viết faucet contract phân phối token miễn phí.
- Giới hạn số token mỗi ví nhận (anti-spam).
Các bước chính:
- Triển khai contract ERC20.
- Viết
Faucet.sol
với hàmrequestToken()
. - Kết nối frontend để user click → nhận token vào ví.
- Test token trong MetaMask bằng cách add custom token.
5. NFT Marketplace đơn giản
Kỹ năng học được:
- Mua/bán NFT bằng ETH.
- Dùng chữ ký số (signature) để xác thực giao dịch.
- Thực hiện logic định giá, rút tiền.
Các bước chính:
-
Contract:
- Mapping
tokenId → price
. - Hàm
listNFT
,buyNFT
. - Sự kiện
NFTListed
,NFTSold
.
- Mapping
-
Frontend:
- Danh sách NFT đang bán.
- Form nhập giá bán, nút mua.
- Lắng nghe event cập nhật UI.
📌 Tips khi làm dự án thực tế:
- Bắt đầu từ dự án nhỏ rồi nâng cấp dần.
- Dùng testnet (Goerli, Sepolia) để tiết kiệm phí.
- Ghi chú lại bug gặp phải → rút kinh nghiệm.
- Code contract ngắn gọn, bảo mật, luôn test kỹ.