Hướng dẫn này dành cho người mới bắt đầu để tiếp cận được thế giới khó hiểu của web3. Nếu bạn vẫn chưa biết web3 là gì thì hãy tham khảo bài viết trước đó của 200Lab nhé.
Hiện nay, hầu hết mọi người đều nói về web3 và có rất nhiều tiền đang được chảy vào công nghệ này. Tham gia với tư cách là một developer vào công nghệ mới này là điều tốt nhất mà bạn nên bắt đầu ngay.
Vì công nghệ web3 tương đối mới nên không có nhiều tài nguyên và rất nhiều trong số đó chưa được cập nhật (outdated). Vì vậy, chúng tôi đã biên soạn một danh sách các tài nguyên và hướng dẫn để tạo ra lộ trình A-Z cho người mới bắt đầu để học web3 và Solidity tốt nhất.
1. Các nguyên tắc cơ bản về Blockchain
Điều đầu tiên bạn cần tìm hiểu để trở thành một nhà phát triển web3 là blockchain. Điều này sẽ giúp bạn dễ dàng kiến trúc được kiến thức và tối ưu hóa các smart contracts (chúng ta sẽ nói về vấn đề này sau). Hãy cùng xem blockchain là gì và nó hoạt động như thế nào.
Blockchain là một cơ sở dữ liệu bất biến, công khai và phi tập trung do người dùng sở hữu. Dữ liệu được lưu trữ dưới dạng khối, do đó nó có tên là “Blockchain”. Để liên kết các khối với nhau, mỗi khối cần chứa dữ liệu của nó, hàm băm của nó và hàm băm của khối trước đó.
Hàm băm (the hash) là một chuỗi duy nhất được tính toán từ dữ liệu. Hàm băm thay đổi dựa trên thông tin. Bạn có thể đã bắt gặp điều này khi triển khai token JWT trong NodeJS.
Nếu ai đó giả mạo một trong các khối, hàm băm sẽ tự thay đổi và các khối tiếp theo sẽ trở nên không hợp lệ vì chuỗi đã bị phá vỡ. Sau đó, người đó sẽ phải tính toán lại tất cả các khối trong chuỗi, điều này sẽ mất một khoảng thời gian rất dài (10 phút / khối).
Bản sao của các blockchain được lưu trữ trên các máy tính trên toàn thế giới, được gọi là các nút (nodes). Vì vậy, bạn cũng sẽ cần quyền truy cập vào phần lớn máy tính và lặp lại quá trình này. Rất khó để một máy tính có thể thực hiện tất cả những điều này đủ nhanh để mạng không nhận thấy được và không cố gắng loại bỏ kẻ gian lận khỏi chuỗi khối.
Đây là một khóa học Udemy ngắn hạn đào sâu hơn vào các nguyên tắc cơ bản của blockchain: https://www.udemy.com/course/blockchain-and-bitcoin-fundamentals/
Ngoài ra 200Lab cũng có đã có chia sẻ một bộ 18 videos các vấn đề cơ bản về Blockchain, DeFi, GameFi, NFT tại đây:
2. Tìm hiểu về các ứng dụng phi tập trung (DApps)
DApps hoặc ứng dụng phi tập trung là các ứng dụng được xây dựng trên nền tảng của blockchain. Các công nghệ chính được sử dụng trong DApps là:
Frontend: JavaScript frameworks như React, Vue, Angular
Backend: Rust và Solana hoặc Solidity và Ethereum
Bây giờ, có thể bạn đang thắc mắc DApp được sử dụng ở đâu? Dưới đây là một số ngành DApps có thể cách mạng hóa:
- Ký quỹ (escrow) - Bất cứ khi nào bạn mua / bán một ngôi nhà, bạn cần phải tin tưởng người mua để có thể thanh toán đúng hạn, hoặc tiền được giữ bởi một công ty bên thứ ba. Điều gì sẽ xảy ra nếu người mua không thanh toán, hoặc bên thứ ba ôm tiền bỏ chạy? do đó DApps có thể đảm bảo việc chuyển tiền này một cách an toàn.
- Record - Khi một thứ khác được thêm vào blockchain, thì nó không thể chỉnh sửa hoặc loại bỏ. Điều này rất tiện dụng đối với duy trì hồ sơ nhà, hồ sơ y tế, v.v.
- Thanh toán (payments) - Tiền điện tử có thể được sử dụng để thanh toán dễ dàng và an toàn khi chuyển giá trị. Mặc dù hiện tại phí xăng khá cao nhưng tôi chắc chắn rằng chúng sẽ giảm trong tương lai.
3. Kiến thức cơ bản về phát triển Frontend Web
Như đã được đề cập trước đó, DApps có thể được công nghệ blockchain cung cấp năng lượng cho phần backend, nhưng frontend phải là JavaScript. Đây là những gì bạn cần học:
- HTML - Các tag HTML phổ biến
- CSS - Thuộc tính cơ bản, Flex, Grid
- CSS Frameworks [Tùy chọn] - Bootstrap, Semantic UI, Tailwind, v.v.
- JavaScript - Biến, Hàm, Classes, ES6, v.v.
- JavaScript Frameworks [Khuyến nghị] - React / Vue / Angular
Tôi cũng khuyên bạn nên học phần backend web2, như một phương án dự phòng trong trường hợp web3 không hoạt động. Đây là những gì bạn nên học cho chương trình backend:
- Nguyên tắc cơ bản về NodeJS - Event loop, I / O
- API Framework - Express
- Cơ sở dữ liệu (database) - MongoDB, SQL, PostgreSQL
Đây là một khóa học tuyệt vời về phát triển web của Colt Steele: https://www.udemy.com/course/the-web-developer-bootcamp/
4. Các nguyên tắc cơ bản của Ethereum
Ethereum là một blockchain xử lý các hợp đồng thông minh (smart contracts). Ethereum cho đến nay là blockchain phổ biến nhất để tạo các smart contract trong năm 2022. Solidity là ngôn ngữ được sử dụng để phát triển các smart contract. Tài liệu chính thức dưới đây là một nơi tuyệt vời để bắt đầu tìm hiểu thêm về Ethereum.
5. Smart contracts
Smart contracts là mã bất biến trên blockchain được thực thi trên hợp đồng. Smart contracts tương tự như các lớp trong JavaScript. Chúng được sử dụng để cung cấp cho DApps.
Chỉ hiểu khái niệm về smart conctract là không đủ, bạn còn phải phát triển chúng. Đây là nơi mà Solidity xuất hiện. Solidity là một ngôn ngữ lập trình hướng đối tượng (ish) cấp cao, được tạo ra đặc biệt để dễ dàng xây dựng các smart contract.
Tuy nhiên, vì Solidity còn rất mới nên có rất ít tài nguyên để tìm hiểu về nó. Cách tốt nhất để học là xây dựng các dự án và giải quyết các vấn đề bạn gặp phải bằng cách tham khảo tài liệu. Hãy xem xét một số tài nguyên theo mô hình tương tự.
5.1 Buildspace
Buildspace là một nền tảng học tập dựa trên flatform và nó là một trong những tài nguyên tốt nhất để học Web3. Bạn có thể xây dựng DApps, bộ sưu tập NFT, trò chơi trình duyệt NFT, DAO và hơn thế nữa là với Solana, Polygon và Ethereum.
Bạn cũng sẽ nhận được một NFT miễn phí khi hoàn thành một dự án, điều này thật tuyệt vời! Bạn có quyền truy cập vào bảng công việc độc quyền của họ, nơi mà các công ty Web3 lớn nhất đang tuyển dụng.
5.2 LearnWeb3DAO
Tìm hiểu Web3 DAO là một tài nguyên tuyệt vời khác của Web3. Nó có 4 cấp độ khác nhau - Freshman, Sophomore, Junior, Senior dành cho các developer với các cấp độ kỹ năng khác nhau. Bạn học cách xây dựng DApps, bộ sưu tập NFT, token ICO, DAO, giao thức DeFi và hơn thế nữa.
Và tôi đã nói điều này vì chi phí cao $0/tháng? Không phải vậy, bạn sẽ phải xây dựng các dự án cùng với hàng nghìn developer khác, tham gia hackathons và có thể liên kết với nhau xuyên suốt!
5.3 CryptoZombies
Bạn có thích trò chơi điện tử? Nếu có, bạn sẽ thích điều này. CrytoZombies là một khóa học lập trình trò chơi, nơi bạn có thể xây dựng một nhà máy sản xuất zombie bằng cách sử dụng các smart contract. Bạn nên học hỏi từ một trong những tài nguyên khác và thực hành các kỹ năng của mình bằng cách sử dụng CrytoZombies.
5.4 Nader Dabit
Nader Dabit gồm:
- React
- Web3
- Serverless
- Blockchain
- DeFi
Bạn nên đăng ký kênh youtube của kênh ở đây nếu bạn quan tâm đến việc phát triển web hoặc web3.
5.5 FreeCodeCamp
FreeCodeCamp đã phát hành khóa học MIỄN PHÍ 16 giờ về Solidity. Bạn sẽ được tìm hiểu tất cả về Solidity, Blockchain và các Smart contract.
Khóa học này sẽ cung cấp cho bạn phần giới thiệu đầy đủ về tất cả các khái niệm cốt lõi trong blockchain, smart contract, solidity, NFTs / ERC721s, ERC20s, Coding Decentralized Finance (DeFi), python và solidity, Chainlink, Ethereum, ngoài ra còn có smart contract có thể được nâng cấp và đầy đủ phát triển blockchain.
5.6 Kết nối giữa Smart Contract với Frontend
Có thể bây giờ bạn đã biết cách phát triển các smart contract, bạn cần thực sự sử dụng chúng. Có hai thư viện chính để thực hiện việc này - web3.js hoặc ethers.js. Hãy xem tại sao ethers.js lại tốt hơn web3:
- Kích thước nhỏ hơn
- Ít lỗi hơn
- Tài liệu tốt hơn
- Phổ biến hơn
- Dễ dàng hơn cho người mới
- Có các tính năng bổ sung
Đây là một trong những hướng dẫn tuyệt vời về ethers.js:
Ngoài ra, bạn cũng nên học thêm về web3.js, vì một số cơ sở mã có thể sử dụng nó. Đây là khóa học về sự cố trên web3.js:
Có thể xem thêm repo ở đây để biết thêm - https://github.com/adrianmcli/web3-vs-ethers
5.7 Alchemy
Alchemy là một bộ công cụ dành cho developer để tạo mẫu, gỡ lỗi và vận chuyển sản phẩm nhanh hơn. Alchemy hỗ trợ các chuỗi khác nhau như - Ethereum, Polygon, Starknet, Flow và hơn thế nữa. Nó có một API NFT tuyệt vời cho phép bạn thiết lập và chạy bộ sưu tập NFT của mình một cách dễ dàng. Ngoài ra, nó còn hỗ trợ thông báo đẩy web3.0 và có một api blockchain siêu tăng áp!
5.8 Remix
Remix là một IDE trình duyệt được tạo riêng để xây dựng Ethereum smart contract bằng Solidity. Không cần thiết lập, bạn cũng có thể bắt đầu viết mã ngay lập tức.
Nó biên dịch code của bạn cho bạn và giúp bạn dễ dàng kiểm tra được nó. Không chỉ vậy, bạn cũng có thể dễ dàng triển khai smart contract của mình.
5.9 Hardhat
Mặc dù Remix rất tuyệt vời nhưng đôi khi vẫn chưa đủ và bỏ lỡ thiết lập VS Code với tất cả 42 tiện ích mở rộng của mình. Bạn sẽ cần một môi trường Ethereum cục bộ nếu bạn đang sử dụng VS Code. Đây là lúc HardHat phát huy tác dụng.
Hardhat giúp bạn dễ dàng triển khai hợp đồng, chạy thử nghiệm và gỡ lỗi code Solidity. Bạn có thể triển khai hợp đồng của mình trên nhiều mạng khác nhau như Ropsten, Rinkeby, Mainnet,... và nó cũng hỗ trợ trên TypeScript 🤩
Tôi muốn xây dựng và kiểm tra chức năng của các smart contract của mình trên Remix, sau đó chuyển nó sang VS Code khi hoàn tất.
Đây sẽ là hướng dẫn về Hardhat:
5.10 Truffle
Truffle là công cụ phát triển sắp tới cho các smart contract. Nó giúp bạn dễ dàng biên dịch các smart contract của mình và sử dụng nó trong frontend code của bạn. Ganache cũng được đi kèm với Truffle, công cụ này mô phỏng một blockchain, thêm tài khoản thử nghiệm,... Nó thực sự hữu ích khi dùng cho việc tránh viết sẵn.
Bạn cũng có thể tham khảo thêm khoá học về lập trình Blockchain NFT, Web3 của 200Lab.
Obaotrinh
Thích ăn nho (nho xanh hoặc không hột)
Bài viết liên quan
Web2 là gì? Web3 là gì? So sánh Web 2.0 & Web 3.0
Sep 25, 2023 • 10 min read
DeFi là gì? Tìm hiểu về Tài Chính Phi Tập Trung
Sep 08, 2023 • 13 min read
STO là gì? Kiến thức cơ bản về Security Token Offering
Sep 08, 2023 • 15 min read
Ví Bitcoin là gì? 9 ví Bitcoin hàng đầu bạn cần biết
Sep 02, 2023 • 11 min read
Blockchain là gì? Ưu & nhược điểm của các ứng dụng Blockchain
Aug 23, 2023 • 17 min read
DAPP LÀ GÌ? DAPP HAY NHƯNG CÓ HOÀN HẢO
Apr 06, 2023 • 8 min read