cách-tạo-và-khởi-chạy-subgraph
0 0
Read Time:7 Minute, 35 Second

Bài viết sẽ hướng dẫn bạn cách tạo và khởi chạy một subgraph cơ bản trên hệ thống dịch vụ hosting hiện có của The Graph Network

Giới thiệu

Mỗi subgraph là một cổng API mở để bạn có thể dùng ngôn ngữ truy vấn GraphQL để truy vấn dữ liệu mà subgraph đó theo dõi trên blockchain.

Tìm hiểu thêm về The Graph Network và subgraph.

Khi chúng ta tạo subgraph thì cũng giống tạo website, chúng ta cần 1 dịch vụ hosting để nó vận hành ở đó. Cụ thể chúng ta sẽ sử dụng dịch vụ hosting hiện có của The Graph Network.

I. Thiết lập tài khoản và thêm subgraph trên The Graph Explorer

Bước 1: Đăng nhập Thegraph.com

Để đăng nhập Thegraph.com, bạn dùng tài khoản Github. Nếu chưa có thì bạn tạo trước nhé.

Image for post

Sau đó bấm vào logo tài khoản của bạn ở góc đó luôn và chọn Dashboard

Image for post

Bước 2: Thêm trang Subgraph mới

Tại đây, bạn chọn “Add Subgraph”

Image for post

Trang tạo subgraph sẽ hiện ra với những thông tin để bạn điền vào.

Image for post

Trong đó:

  • Image: hình đại diện cho trang subgraph của bạn trên The Graph Explorer
  • Subgraph Name: Tên Subgraph của bạn. Lưu ý: Bạn sẽ không sửa được phần này.
  • Account: Bạn đã đăng nhập Github ở trên nên ở đây sẽ mặc định sử dụng account Github của bạn
  • Subtitle: Thêm 1 số thông miêu tả ngắn về Subgraph (Sẽ hiển thị lúc bạn tìm kiếm subgraph của mình trên The Graph Explorer). Lưu ý: Bạn sẽ không sửa được phần này.
  • Description: Phần này cũng là mô tả Subgraph nhưng dài hơn. Không có cũng không sao, bạn có thể chỉnh sửa/thêm bớt sau.
  • Github URL: Đường dẫn đến trang repo github chứa code subgraph của bạn. Bạn có thể tạo 1 trang repo sẵn trước bên Github để điền URL đó vào đây rồi bạn cập nhật code bên trang repo sau hoặc phần này không điền rồi cập nhật sau cũng được.

Tạo xong, bạn sẽ có 1 trang subgraph chưa được triển khai như hình.

Image for post

Phần “Access token” mình che đi trong hình là phần cần thiết để lát nữa bạn dùng để xác thực với dịch vụ được lưu trữ nên bạn lưu lại nhé (hoặc lát trở ra trang dashboard này để lấy cũng được)

II. Cài Đặt và triển khai Subgraph

Bước 1: Cài đặt Graph CLI

Mở Terminal lên và chạy lệnh cài đặt Graph CLI cho toàn cục máy bằng yarn hoặc npm như bên dưới:

$ npm install -g @graphprotocol/graph-cli$ yarn global add @graphprotocol/graph-cli

*Nếu chưa có npm hay yarn thì bạn phải cài trước nhé.

Bước 2: Khởi động The Graph

Để khới động graph, chạy lệnh sau trong terminal:

$ graph init

Terminal sẽ hỏi từng thông tin bên dưới, bạn gõ và enter từng cái để nhập thông tin nhé:

  • Subgraph Name: Đây là tên của subgraph. Bạn điền phần từ phía sau chữ “subgraph/” ở trang subgraph vừa tạo của bạn. Ví dụ trang subgraph mình vừa tạo trên là “https://thegraph.com/explorer/subgraph/rueisnax/zlot-finance-governance-staking” thì mình điền “rueisnax/zlot-finance-governance-staking” (bỏ dấu “” đi nhé)
  • Directory to create the subgraph in: Đây là tên thư mục chứa code subgraph. Điền luôn tên subgraph phía trên để cho tiện. Ví dụ: zlot-finance-governance-staking
  • Ethereum network: Mạng Graph hỗ trợ nhiều mạng ethereum như mainnet, kovan, rinkeby, ropsten, goerli và poa-core. Bạn đang theo dõi hợp đồng của dự án nào trên mạng nào thì điền mạng ấy. Ví dụ mình đang theo dõi hợp đồng staking của zLot Finance trên mạng chính Ethereum thì mình chọn mainnet.
  • Contract Address: Nhập địa chỉ hợp đồng bạn muốn theo dõi.

Sau khi bạn nhập các thông tin trên, hệ thống sẽ lấy ABI từ etherscan, kết quả cuối cùng sẽ như sau:

Image for post

Bước 3: Chỉnh sửa file

Hiện tại, sẽ có 1 số file và thư mục xuất hiện trong thư mục “zlot-finance-governance-staking” bạn vừa tạo trên kia. Dưới đây là 3 file quan trọng bạn cần chú ý:

  • Schema.graphQL: Bạn sẽ cần xác định các thực thể (entity) để truy vấn và thuộc tính của chúng trong tệp này.
  • Subgraph.yaml: Tệp này bao gồm tất cả thông tin liên quan đến dự án của bạn, như mạng (network), địa chỉ hợp đồng (contract address), block khởi động, trình xử lý sự kiện (event handlers), trình xử lý lệnh gọi (call handlers), trình xử lý khối (block handlers) và nguồn dữ liệu.
  • mapping.ts (Nằm trong thư mục “src”): Trong tệp này, bạn tạo logic để xử lý sự kiện, xử lý khối và xử lý lệnh gọi. Tức là tệp này sẽ quy định những thông tin sơ cấp từ blockchain gửi về sẽ được xử lý thế nào.

3 file trên có thể nói là cốt lõi của 1 subgraph. Việc tạo và triển khai 1 subgraph không có nhiều chức năng thì rất dễ nhưng “ăn tiền” hay subgraph chất lượng và có ích cho người dùng hay không thì được quyết định khá lớn ở 3 file này, bạn cần đầu tư chất xám cả về code và về business để hiểu dự án bạn đang theo dõi có thông tin gì để truy vấn nghiên cứu để lập ra dudwwoojc schema và cơ chế mapping phù hợp tại đây.

Sau khi chỉnh sửa xong những file trên, bạn truy cập thư mục subgraph trong terminal rồi chạy lệnh sau để cập nhật file

$ yarn codegen

Terminal hiện ra như hình bên dưới là được. Nếu báo “error Couldn’t find…” tức là bạn đang không ở trong thư mục subgraph đó. Bạn cần dùng lệnh “cd <tên thư mục>” để chạy tới thư mục đó nếu bạn đang ở thư mục mẹ.

Image for post

Sau đó chạy lệnh sau để lưu lại

$ yarn build

Terminal hiện ra như hình bên dưới là hoàn tất

Image for post

Bước 4: Triển khai (Deploy) subgraph:

Để triển khai subgraph thì bạn cần quay lại lấy cái “Access Token” mình có nói ở trên.

Sau đó chạy lệnh:

$ graph auth https://api.thegraph.com/deploy/ <Access Token của bạn>

Ví dụ mã Access Token của bạn là “xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx” thì bạn gõ

$ graph auth https://api.thegraph.com/deploy/ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Nhớ là có khoảng cách ở sau chỗ “…deploy/” rồi mới đến cái mã Access Token nhé.

Image for post

Kết quả Terminal báo ra như hình trên là được

Lưu ý: Nếu Kết quả báo “No access token provided” thì bạn gõ lệnh

$ cd ..

Để ra ngoài thư mục mẹ chứa thư mục subgraph trước rồi hẵn gõ lệnh graph auth kia nhé

Sau khi xác thực “Access Token” thành công thì bạn chạy vào thư mục subgraph lại

$ cd <thư mục>

Cuối cùng, chạy lệnh sau để triển khai subgraph

$ yarn deploy

Kết quả như hình bên dưới sẽ báo ra cụ thể địa chỉ subgraph trên Graph Explorer và endpoints của mình:

Image for post

Bên dưới là hình ảnh trang subgraph của mình trên The Graph Explorer đã được đồng bộ (synced) vào hệ thống

Image for post

Tiến độ đồng bộ cũng sẽ được xem trên thanh màu ngay dưới ô “Syned” đó. Nếu đang để “syncing” thì là đang đồng bộ. 1 số trạng thái khác bao gồm “undeployed” là chưa được triển khai và “failed” là đồng bộ thất bại (có thể vì lỗi gì đó trong bộ source code của bạn).

Bước 5: Cập nhật subgraph (nếu có)

Nếu bạn có thay đổi gì trong các file của subgraph thì bạn có thể triển khai lại (redeploy) subgraph với cùng 1 endpoint bằng cách dùng lệnh sau sau khi đã sửa code:

$ yarn deploy

Khi một subgraph được triển khai lần đầu tiên, nó sẽkhông có phiên bản. Tuy nhiên, khi nó được cập nhật, nó tồn tại ở hai trạng thái. Phiên bản hiện tại giữ trạng thái ban đầu của subgraph. Trong khi phiên bản cập nhật / đồng bộ hóa thuộc danh mục phiên bản đang chờ xử lý.

III. Truy vấn thông tin từ Subgraph

Để truy vấn thử thông tin từ subgraph, bạn có thể viết lệnh truy vấn bằng ngôn ngữ GraphQL ở phần Playground của trang subgraph trên Graph Explorer.

Ngoài ra bạn có thể xem bài viết chi tiết hướng dẫn truy vấn thông tin blockchain Ethereum thông qua The Graph Network bằng Python của mình tại đây.

Kết luận

Qua bài viết này, hi vọng bạn đã biết cách triển khai 1 subgraph theo từng bước một thông qua dịch vụ lưu trữ của The Graph.

Chúc bạn sẽ tạo được subgraph bổ ích.

Xem thêm các bài viết khác về The Graphtrên trang chủ medium của mình nhé.

Liên hệ dự án

Website

Discord

Telegram

Twitter

Everest.link

Happy
Happy
0 %
Sad
Sad
0 %
Excited
Excited
0 %
Sleepy
Sleepy
0 %
Angry
Angry
0 %
Surprise
Surprise
0 %

Average Rating

5 Star
0%
4 Star
0%
3 Star
0%
2 Star
0%
1 Star
0%

Leave a Reply

Your email address will not be published. Required fields are marked *