CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI 1.1 Lý do chọn đề tài NFT là tài sản mật mã được tạo trên công nghệ blockchain có mã nhận dạng duy nhất và siêu dữ liệu, giúp chúng có thể phân biệt, khác biệt và hoàn toàn duy nhất. NFT là tài sản kỹ thuật số đại diện cho các tài sản trong thế giới thực như nghệ thuật, âm nhạc, vật phẩm trong trò chơi và video được liên kết với bằng chứng quyền sở hữu. Vì vậy NFT Marketplace ra đời để có thể người dùng có thể tạo, mua hoặc bán NFT. Thị trường này cũng được sử dụng để lưu trữ, hiển thị hoặc hiển thị giao dịch và tạo mã thông báo NFT hoặc bất kỳ tài sản kỹ thuật số nào.
Đối với người dùng, trải nghiệm thị trường NFT thuận tiện như một sàn giao dịch tiền điện tử.2 Yêu cầu của đề tài - Nắm được các kiến thức cơ bản về smart contract, cách deploy một smart contract,. -Tạo ra một sàn giao dịch NFT có các chức năng cơ bản như:cửa sổ mua sắm, ví, đăng ký tài khoản, tìm kiếm,.1 Guest: - Khách viếng thăm - Xem thông tin sản phẩm cũng như các tin tức khác - Đăng ký để kết nối với ví Metamask 1.2 User: - Đã có tài khoản kết nối với ví Metamask - Đặt mua sản phẩm - Bán sản phẩm 1.4 Phạm vi ứng dụng Người dùng có nhu cầu tạo, thu thập, sưu tầm, mua và bán các NFT để thu lợi nhuận.5 Đặc điểm Website được thiết kế với - Giao diện hài hoà, thân thiện, giúp người dùng dễ dàng sử dụng. - Trang chủ sẽ hiển thị danh sách các sản phẩm được bán. - Khách hàng có thể dễ dàng tìm thấy thông tin chi tiết các sản phẩm mà họ quan tâm.
- Khách hàng có thể tìm kiếm sản phẩm. - Có chức năng đăng ký và liên kết với ví Metamask 5 TIEU LUAN MOI download : skknchat@gmail.M21- Các công nghệ nền | Nhóm 4 1.1 Module sản phẩm Các NFT được liệt kê trên thị trường phải hiển thị tất cả thông tin quan trọng theo cách tối ưu hóa nhất: tên, giá, mô tả, chủ sở hữu, phương thức thanh toán, v.2 Module đăng nhập Đăng nhập bằng cách liên kết với ví Metamask hiện có của khách hàng vào NFT Marketplace.3 Module tìm kiếm sản phẩm Các sản phẩm tại trang chủ có thể được tìm kiếm để hiển thị ra sản phẩm phù hợp nhất với yêu cầu khách hàng.4 Module quản lý sản phẩm Người dùng có thể cập nhật những sản phẩm mình đã mua và đã bán trong danh mục sản phẩm của mình.7 Công cụ triển khai - IDE: Visual Studio Code - Quản lý code: Github - Quản lý công việc: Excel - Trao đổi, liên lạc: Microsoft Team, Facebook 6 TIEU LUAN MOI download : skknchat@gmail.M21- Các công nghệ nền | Nhóm 4 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT Tech stack: ● Programing Language - Solidity ● Blockchain Platform - Polygon (MATIC) ● NFT Standards EERC-721 ● Front-end Frameworks ● Web application framework - Next.js ● CSS framework - CSS Tailwind ● Storage Platforms - IPFS ● Ethereum Web Client Library - Ethers.1 Ngôn ngữ lập trình Solidity Solidity được biết đến là một ngôn ngữ lập trình hướng contract, được sử dụng hầu hết trong smart contract (nâng cấp và tạo lập) thuộc hệ sinh thái Ethereum. Solidity có các cú pháp và câu lệnh gần giống với các ngôn ngữ lập trình phổ biến hiện nay (Java, C++, C#. Ngôn ngữ Solidity có những ứng dụng vô cùng quan trọng đối với công nghệ Blockchain.
Một ví dụ điển hình của công nghệ Blockchain hiện nay chính là tiền điện tử. Nhờ có sự ra đời của ngôn ngữ lập trình Solidity, các nhà lập trình có thể dễ dàng ứng dụng công nghệ Blockchain này vào các lĩnh vực kinh tế và đời sống.2 Nền tảng Blockchain – Polygon (MATIC) - Polygon (MATIC) là một platform hỗ trợ phát triển cơ sở hạ tầng và giúp Ethereum mở rộng quy mô hay còn gọi là layer 2. Polygon (MATIC) hỗ trợ tất cả các công cụ Ethereum hiện có cùng với các giao dịch nhanh hơn và rẻ hơn. Polygon (MATIC) cố gắng giải quyết các vấn đề về khả năng mở rộng và khả năng sử dụng trong khi không ảnh hưởng đến phân quyền, bảo mật và tận dụng cộng đồng nhà phát triển, hệ sinh thái hiện có.
Polygon là một giải pháp mở rộng off/side chain cho các nền tảng hiện có để cung cấp khả năng mở rộng và trải nghiệm người dùng vượt trội cho DApps/ chức năng người dùng. - Tính năng chính và điểm nổi bật: - Khả năng mở rộng: giao dịch nhanh, chi phí thấp và an toàn trên các sidechain Polygon với độ chính xác đạt được trên chuỗi chính và Ethereum là layer 1 base chain tương thích đầu tiên. - Thông lượng cao: đạt được lên đến 10.000 TPS trên một single sidechain trên testnet nội bộ. Nhiều chuỗi sẽ được thêm vào để mở rộng quy mô theo chiều ngang.
7 TIEU LUAN MOI download : skknchat@gmail.M21- Các công nghệ nền | Nhóm 4 - Trải nghiệm người dùng: mượt mà và dễ sử dụng từ chain chính đến Polygon, ứng dụng di động gốc và SDK có hỗ trợ Wallet Connect. - Bảo mật: những người vận hành Polygon chain, chính họ là những người đóng vai trò quan trọng trong hệ thống PoS. - Public Sidechains: Polygon sidechain về bản chất là công khai (so với chuỗi DApp riêng lẻ), không được phép và có khả năng hỗ trợ nhiều giao thức. - Kiến trúc Polygon Gồm 4 layer có thể kết hợp: Execution layer, Polygon networks layer, Security layer, Ethereum layer.1 Kiến trúc 4 lớp của Polygon - Execution layer Layer này diễn giải và thực hiện các giao dịch đã được thỏa thuận và đưa vào các blockchain của mạng Polygon (MATIC).
Nó bao gồm hai lớp con: ● Môi trường thực thi (triển khai máy ảo có thể cắm được) ● Logic thực thi (chức năng chuyển đổi trạng thái của mạng Polygon, thường được viết dưới dạng hợp đồng thông minh Ethereum) - Polygon networks layer Một tập hợp của các mạng blockchain có chủ quyền. Mỗi mạng phục vụ cộng đồng tương ứng của nó, duy trì các chức năng như: ● Đối chiếu giao dịch ● Sự đồng thuận của nội bộ ● Sản xuất khối 8 TIEU LUAN MOI download : skknchat@gmail.M21- Các công nghệ nền | Nhóm 4 Các mạng có thể sử dụng giao thức Polygon (MATIC) để kết nối với nhau và trao đổi thông tin tùy ý. - Security layer Một layer chuyên biệt, không bắt buộc phải quản lý một tập hợp các trình xác thực và có thể kiểm tra định kỳ tính hợp lệ của bất kỳ chuỗi Polygon (MATIC) nào với một khoản phí. Lớp này có thể được triển khai như một siêu blockchain chạy song song với Ethereum, phụ trách các chức năng như: ● Quản lý trình xác thực (đăng ký/ hủy đăng ký, phần thưởng…) ● Xác thực Polygon Chain Lớp bảo mật là fully abstract và có thể có nhiều trường hợp, được thực hiện bởi các thực thể khác nhau, có các đặc điểm khác nhau.
Nó cũng có thể được thực hiện trực tiếp trên Ethereum, trong trường hợp đó, các thợ đào Ethereum thực hiện việc xác nhận. - Ethereum layer Polygon chain có thể sử dụng Ethereum, blockchain lập trình an toàn nhất trên thế giới, để lưu trữ và thực hiện bất kỳ thành phần quan trọng nào trong logic của chúng. Layer này được triển khai dưới dạng một tập hợp các hợp đồng thông minh Ethereum, phụ trách các chức năng như: ● Tính chất cuối cùng/điểm kiểm tra ● Staking ● Giải quyết tranh chấp ● Chuyển tiếp thông tin 2.3 Tiêu chuẩn ERC-721 Tiêu chuẩn non-fungible token ERC-721 được viết bằng ngôn ngữ Solidity trên chuỗi khối Ethereum và nó cho phép các nhà phát triển mã hóa quyền sở hữu bất kỳ dữ liệu tùy ý nào. Đặc biệt, tiêu chuẩn này nhằm mục đích tạo ra các mã thông báo có thể hoán đổi cho nhau.
Một ví dụ về hợp đồng ER-721 là của OpenZeppelin, cho phép các nhà phát triển theo dõi các vật phẩm trong trò chơi của họ. 9 TIEU LUAN MOI download : skknchat@gmail.M21- Các công nghệ nền | Nhóm 4 Hình 2.js là một framework dùng để phát triển các ứng dụng React. React là một framework của javascript để xây dựng frontend với nhiều ưu điểm như chia nhỏ các phần của web, module hoá css, xử lý sự kiện…Tuy nhiên, react chỉ phù hợp để render dữ liệu phía client, việc này ảnh hưởng rất lớn đến SEO của website khi mà hầu hết những data mà google đánh index đều phải được render ở server. - Phân biệt giữa Serverside Rendering và Clientside Rendering Serverside Rendering Clientside Rendering Server trả về cho browser file CSR trả về file HTML gần như trống cùng với HTML của trang đã được link tới file JS rendered Nội dung file HTML đã hoàn Đối với CSR, ta sẽ cần chờ tới khi tất cả các quá chỉnh và được hiển thị ngay khi trình xây dựng Virtual DOM và gắn các sự kiện nó được load về máy hoàn thành đến khi Virtual DOM được chuyển vào browser DOM để website có thể xem được.1 So sánh Serverside rendering và Clientside rendering 10 TIEU LUAN MOI download : skknchat@gmail.M21- Các công nghệ nền | Nhóm 4 - Để hỗ trợ việc render ở phía server cho React, các nhà phát triển đã tạo ra Next.js tích hợp nhiều tính năng như: - Pre-rendering, cả static generation (SSG) và server-side rendering (SSR), - Tách mã tự động để tải trang nhanh hơn, mỗi page chỉ load những gì cần thiết cho page đó.
Ví dụ khi render trang chủ thì những page khác sẽ không được khởi tạo, như vậy trang chủ sẽ được load nhanh cho dù website của bạn có cả 100 page - Hỗ trợ refresh page nhanh chóng ở môi trường development - Hoàn toàn có thể mở rộng 2.2 CSS Tailwind Tailwind là một CSS framework giúp ta có thể nhanh chóng xây dựng giao diện người dùng. Tailwind giúp xây dựng website một cách nhanh chóng nhất với các thuộc tính CSS đã được gán thành những class riêng và khi dùng ta chỉ việc gọi ra sử dụng.5 Ethereum Development Environment – Hardhat - Hardhat là một môi trường để biên dịch, triển khai, test và debug dapp ethereum được phát triển trên nền tảng javascript. - Một số điểm tính năng nổi bật của Hardhat - Tích hợp mạng local Hardhat, dễ dàng chạy và debug code ngay trên local. - Debug dễ dàng hơn: Với Hardhat, chúng ta có thể debug code Solidity dễ dàng hơn khi có thể console.log ra các biến (Solidity vốn ko hỗ trợ console.