4.2.1. Vấn đề được giải quyết bằng The Graph
Cho đến nay, tính minh bạch của cơng nghệ blockchain thường nhận được rất nhiều lời khen ngợi. Nhưng, cho dù chúng chứa rất nhiều dữ liệu hữu ích, việc truy vấn chúng để tìm dữ liệu đặc biệt khơng phải điều dễ dàng, việc đó giống như “Web mà khơng có
Google”.
Hiện tại đã có rất nhiều cơng cụ phân tích có thể lấy các thơng tin hữu ích từ dữ liệu blockchain. Tuy nhiên các ứng dụng này thường hoạt động theo cách tập trung và có thể
mất hàng tháng để phát triển.
Từ đó The Graph ra đời, tự coi mình khơng phải là đối thủ cạnh tranh với các công cụ trên, mà là ứng dụng hỗ trợ cho chúng.
Có thể coi The Graph như một lớp dữ liệu mở trong hệ sinh thái blockchain.
4.2.2. Giải pháp của The Graph
The Graph xây dựng một giao thức cho phép người sử dụng có thể truy cập để xây dựng các API (còn được gọi là các Sub-Graph)
The Graph sẽ lấy dữ liệu từ network blockchain( bước đầu với Ethereum) và tổ chức lại theo một cấu trúc riêng.
Việc truy xuất dữ liệu được áp dụng theo phương thức GraphQL, một phương thức phổ biến được rất nhiều ông lớn sử dụng như Facebook, Pinterest, Shopify…
Hình 4.2. Các hệ thống sử dụng GraphQL
Ngoài ra, The Graph hướng đến việc xây dựng nền tảng gồm nhiều Node, trong đó người sử dụng có thể đăng ký xây dựng The Graph Node, nó giúp cho rút ngắn thời gian truy xuất dữ liệu, tiện lợi hơn cho cộng đồng.
4.2.3. Hệ sinh thái của The Graph
▪ Indexers là các node operators trong mạng lưới The Graph. Indexers sẽ stake token GRT để cung cấp cho dụng vụ Indexing và Query Processing. Indexers sẽ nhận được Query fees và các Inflation reward.
▪ Curators là các Sub-Graph developers, data consumers hoặc là những thành viên cộng đồng. Họ sắp xếp dữ liệu và báo hiệu cho Indexers những API nào nên được lập chỉ mục bởi mạng lưới The Graph. Từ việc này, họ có thể kiếm được token GRT.
▪ Delegators là các cá nhân muốn đóng góp vào việc bảo mật mạng The Graph nhưng họ có thể khơng muốn hoặc khơng rành code để làm Curators hay Indexers. Họ có thể ủy quyền token GRT của mình cho các Indexers để được share phần thưởng.
▪ Consumers là người dùng cuối của The Graph. Họ dùng dịch vụ query data được cung cấp từ Indexers, phí này được share theo tỷ lệ cho các Indexers, Curators, Delegators.
4.3. Token GRT
GRT là Token trong hệ sinh thái The Graph, được dùng với mục đích:
▪ Query fees: Phí do người tiêu dùng trả cho các Indexers, Curators và Delegators. Giống như phí chúng ta trả cho các dịch vụ đám mây.
▪ Inflation reward: Phần thưởng lạm phát sẽ được chia sẻ cho Indexers, Curators và Delegators dựa trên số Token GRT mà họ stake.
▪ Protocol Sink & Burns: Một phần Query fees được đốt cháy, dự kiến sẽ bắt đầu ở mức ~1% tổng phí truy vấn giao thức và có thể thay đổi tỉ lệ trong tương lai.
4.4. Một số thông tin cơ bản về token GRT
▪ Token name: GRT Token
▪ Ticker: GRT
▪ Blockchain: Ethereum
▪ Token Standard: ERC-20
▪ Total Initial Token Supply: 10 tỷ
▪ Lộ trình phát hành mới: Bắt đầu từ ~ 3% hàng năm, tùy thuộc vào quản trị kỹ thuật.
▪ Maximum Token supply: 10 tỷ in + Số token phát hành mới – Số token được đốt
▪ Market cap: $232,287,329
▪ Khoảng 1% phí quy vấn mà người dùng phải trả cho hệ thống The Graph sẽ được đốt.
Hình 4.3. Sơ đồ phân bổ GRT
Token GRT được phân bổ như sau:
▪ Graph Foundation: 58%
▪ Educational Programs: 6%
▪ Curator Program Grant:9%
▪ Testnet Indexer Rewards: 9%
▪ Bug Bounties: 1%
▪ Public GRT Sale: 12%
▪ Strategic GRT Sale: 6%
4.4.2. Public sale
▪ Token Ticker: GRT (ERC20 Token)
▪ Ngày: Thứ 5 ngày 22/10/2020 lúc 23h đêm
▪ Nơi bán: thegraph.com, Ethereum Blockchain
▪ Đóng đăng ký từ: 15/10/2020
▪ Tổng cung: 10,000,000,000 GRT
▪ Tổng Token bán: 400,000,000 preGRT (Converting to 400,000,000 GRT)
▪ Giá: $0.03/preGRT
▪ Thanh toán bằng: ETH
▪ Cá nhân: $1,000-$5,000 chỉ được mua trong khoảng này.
▪ Khóa: Khóa tới khi khởi chạy
▪ Quốc gia được phép mua: Ngoài những người dùng tại Hoa Kỳ và một số khu vực
pháp lý nghiệm ngặt thì cịn lại đều có thể tham gia được.
4.4.3. Đội ngũ phát triển dự án
Hình 4.4. Đội ngũ phát triển
Team The Graph khá chất lượng với sự tham gia của các tên tuổi trong làng Dev Blockchain.
Hình 4.5. Các tổ chức hỗ trợ và sử dụng sản phẩm
Đội ngũ nhà đầu tư của The Graph cũng khá ấn tượng, được rất nhiều tổ chức đứng sau hỗ trợ và sử dụng sản phẩm. Có thể kể đến những cái tên như: Coinbase Venture, DCG,…
4.4.5. Cách kiếm và sở hữu GRT Token
Hiện tại bạn có thể sở hữu GRT token bằng những cách sau:
▪ Tham gia vào hệ sinh thái The Graph. Bất kỳ ai cũng có thể là Indexer, Curator hoặc Delegator.
▪ Staking.
▪ Chương trình Bug Bounty để giúp tìm ra các lỗ hổng bảo mật.
▪ Tham gia các cuộc thi hackathon.
4.4.6. Sàn giao dịch GRT Token
Tính đến thời điểm hiện tại, bạn có thể giao dịch token GRT trên Uniswap, Okex, Huobi, Binance và Coinbase.
4.4.7. Ví lưu trữ token GRT
▪ Metamask
▪ Myetherwallet
▪ Trust Wallet
4.5. Tương lai của GRT Token
The Graph giúp q trình xây dựng các Dapp nhanh chóng hơn thơng qua việc truy xuất Data trên Blockchain Ethereum nhanh hơn.
Cùng với sự phát triển của hệ sinh thái Ethereum thì mình tin The Graph cũng sẽ phát triển theo.
PHẦN 5: MƠ TẢ QUY TRÌNH TRIỂN KHAI ỨNG DỤNG
5.1. Mục tiêu
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 các tài khoản trong trạng thái Ethereum.
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
✓ 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 tồ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
✓ 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
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
✓ 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
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
TÀI LIỆU THAM KHẢO https://coin98.net/the-graph-grt https://coin68.com/the-graph-la-gi/ https://www.mitrade.com/vn/forex/cryptocurrency/ethereum/Ethereum-ETH-la- gi#linkTo-article-para2 https://blogtienao.com/ethereum/#ftoc-heading-26 https://www.slideshare.net/CngthngtinTininT/ethereum-la-gi-nhung-khai-niem- xung-quanh-ethereum-eth-ma-ban-nen-biet-137466881 https://kgold.vn/blockchain-la-gi.html https://www.mitrade.com/vn/forex/cryptocurrency/cryptocurrency-la-gi/cong-nghe- blockchain https://bytesoft.vn/cong-nghe-blockchain-1-0-la-gi https://ethereum.stackexchange.com/questions/32233/how-to-install-truffle-3-x- current-release-is-truffle-4-0?rq=1 https://github.com/Sudhanmanoharan/MarketPlace-BlockChain https://reactjs.org/ https://www.youtube.com/watch?v=ctLFWAanxcI https://www.trufflesuite.com/docs/truffle/getting-started/interacting-with-your- contracts https://web3js.readthedocs.io/en/v1.3.4/ https://docs.soliditylang.org/en/v0.8.4/